/* =========================================================
   NOTRE REFUGE V27
   Refonte visuelle globale — palette, rythme, profondeur et mouvement
   ========================================================= */

:root{
  --ink:#302637;
  --muted:#756a78;
  --paper:#fbf6f0;
  --paper-2:#f4ebe7;
  --paper-3:#eadfde;

  --night:#12101c;
  --night-2:#1d192c;
  --night-3:#31263c;

  --rose:#c47791;
  --rose-deep:#9f5872;
  --peach:#d98f78;
  --lavender:#8a79b7;
  --lavender-soft:#d9d2ec;
  --gold:#d0aa6c;
  --sage:#7d998b;
  --blue:#7696b7;

  --line:rgba(72,50,69,.10);
  --line-light:rgba(255,255,255,.11);
  --glass:rgba(255,250,246,.72);

  --serif:Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --ease:cubic-bezier(.2,.72,.2,1);
  --shadow:0 30px 90px rgba(60,38,54,.12);
  --shadow-soft:0 16px 45px rgba(60,38,54,.08);
  --shadow-dark:0 36px 110px rgba(5,4,11,.34);

  --radius-xl:34px;
  --radius-lg:24px;
  --radius-md:16px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.locked,body.book30-open,body.content-editor-open{overflow:hidden}
button,input{font:inherit}
button{touch-action:manipulation}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
[hidden]{display:none!important}
::selection{background:rgba(196,119,145,.25)}

.site{position:relative;z-index:1}
.section{
  --section-shift:0;
  --section-visible:0;
  position:relative;
  padding:118px clamp(18px,5.5vw,88px);
  isolation:isolate;
}
.section::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:460px;height:460px;
  right:-250px;top:18%;
  border-radius:50%;
  pointer-events:none;
  opacity:calc(.08 + var(--section-visible)*.08);
  transform:translateY(calc(var(--section-shift)*-38px));
  transition:opacity .5s ease;
  background:radial-gradient(circle,rgba(196,119,145,.16),transparent 68%);
  filter:blur(4px);
}
.section.is-current-section::after{opacity:.18}

.eyebrow{
  margin:0 0 12px;
  color:#a77a55;
  font-size:.57rem;
  font-weight:850;
  letter-spacing:.19em;
}
.section-title{
  width:min(1370px,100%);
  margin:0 auto 52px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(260px,.48fr);
  gap:64px;
  align-items:end;
}
.section-title>div{position:relative}
.section-title>div::after{
  content:"";
  display:block;
  width:0;height:1px;
  margin-top:24px;
  background:linear-gradient(90deg,var(--rose),transparent);
  transition:width 1.15s var(--ease);
}
.section-title.is-visible>div::after{width:min(330px,55%)}
.section-title h2{
  margin:0;
  color:var(--ink);
  font:500 clamp(3.8rem,6.2vw,7.2rem)/.86 var(--serif);
  letter-spacing:-.058em;
  text-wrap:balance;
}
.section-title h2 em{
  color:var(--rose-deep);
  font-weight:500;
}
.section-title>p{
  margin:0;
  max-width:500px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.82;
}
.section-title--dark h2,.section-title--light h2{color:#fff8f5}
.section-title--dark h2 em,.section-title--light h2 em{color:#f0bccd}
.section-title--dark>p,.section-title--light>p{color:#d6ccd7}
.section-title--dark .eyebrow,.section-title--light .eyebrow{color:#dfbb7c}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  font-size:.66rem;
  font-weight:850;
  transform:translate(var(--mag-x,0),var(--mag-y,0));
  transition:transform .18s ease,background .25s ease,box-shadow .25s ease;
}
.button--light{
  color:#332735;
  background:#fff8f4;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
}
.button--glass{
  color:white;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(12px);
}
.button:hover{box-shadow:0 14px 34px rgba(0,0,0,.16)}

.grain{
  position:fixed;
  z-index:9998;
  inset:0;
  pointer-events:none;
  opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
.reading-progress{
  position:fixed;
  z-index:1000;
  left:0;top:0;
  width:100%;height:2px;
  transform:scaleX(0);
  transform-origin:left;
  background:linear-gradient(90deg,var(--lavender),var(--rose),var(--gold));
  box-shadow:0 0 10px rgba(196,119,145,.28);
}
.cursor-aura-v15{
  position:fixed;
  z-index:850;
  left:0;top:0;
  width:180px;height:180px;
  margin:-90px 0 0 -90px;
  border-radius:50%;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(circle,rgba(223,164,186,.12),transparent 68%);
  transition:opacity .25s ease;
  mix-blend-mode:screen;
}
.cursor-aura-v15.is-visible{opacity:1}
.floating-hearts-v15{position:fixed;z-index:900;inset:0;pointer-events:none}
.floating-hearts-v15 span{
  position:absolute;
  color:#e0a1b6;
  font:600 1rem var(--serif);
  opacity:0;
  animation:heartBurst 1.08s ease-out var(--delay,0ms) forwards;
}
@keyframes heartBurst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  18%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot)) scale(1.18)}
}
.ambient-v13{
  position:fixed;
  z-index:0;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  opacity:.22;
}
.ambient-v13 i{
  position:absolute;
  width:4px;height:4px;
  border-radius:50%;
  background:#ffe8c4;
  box-shadow:0 0 18px rgba(255,229,190,.5);
  animation:ambientFloat 16s ease-in-out infinite;
}
.ambient-v13 i:nth-child(1){left:7%;top:18%;animation-delay:-2s}
.ambient-v13 i:nth-child(2){left:28%;top:74%;animation-delay:-8s}
.ambient-v13 i:nth-child(3){left:51%;top:29%;animation-delay:-4s}
.ambient-v13 i:nth-child(4){left:74%;top:67%;animation-delay:-10s}
.ambient-v13 i:nth-child(5){left:91%;top:38%;animation-delay:-5s}
.ambient-v13 i:nth-child(6){left:44%;top:88%;animation-delay:-12s}
@keyframes ambientFloat{50%{transform:translate(18px,-30px);opacity:.34}}

/* =========================================================
   PASSWORD GATE
   ========================================================= */
.gate{
  position:fixed;
  z-index:1500;
  inset:0;
  display:grid;
  place-items:center;
  padding:22px;
  overflow:hidden;
  color:white;
  background:#0d0c16;
  transition:opacity .55s ease,transform .55s var(--ease);
}
.gate.is-leaving{opacity:0;transform:scale(1.015)}
.gate__image{
  position:absolute;
  inset:-3%;
  background:url("../images/scene-galaxy.svg") center/cover no-repeat;
  filter:saturate(.9) brightness(.58);
  animation:gateDrift 18s ease-in-out infinite alternate;
}
@keyframes gateDrift{to{transform:scale(1.045) translate(-.4%,.3%)}}
.gate__veil{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 72% 18%,rgba(197,111,145,.18),transparent 27%),
    radial-gradient(circle at 22% 75%,rgba(134,119,184,.12),transparent 24%),
    linear-gradient(90deg,rgba(11,9,19,.94),rgba(22,17,34,.56));
}
.gate__content{
  position:relative;
  width:min(560px,100%);
  text-align:center;
}
.seal{
  width:90px;height:90px;
  margin:0 auto 28px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,232,222,.24);
  border-radius:50%;
  color:#f2d4dd;
  background:rgba(255,255,255,.035);
  box-shadow:0 0 60px rgba(198,118,148,.13);
  font:500 1.55rem var(--serif);
  letter-spacing:.08em;
}
.seal b{color:var(--gold)}
.gate h1{
  margin:0;
  font:500 clamp(4.3rem,9vw,7.3rem)/.83 var(--serif);
  letter-spacing:-.06em;
}
.gate__content>p:not(.eyebrow):not(.hint){
  color:#d6ced8;
  line-height:1.72;
}
.gate .eyebrow{color:#dfbd83}
.gate form{margin-top:28px;text-align:left}
.gate label{
  display:block;
  margin-bottom:7px;
  color:#b8adb9;
  font-size:.56rem;
  font-weight:700;
}
.gate__row{
  display:flex;
  padding:5px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(14px);
}
.gate__row input{
  flex:1;min-width:0;
  border:0;outline:0;
  padding:0 15px;
  color:white;
  background:transparent;
}
.gate__row button{
  border:0;
  border-radius:999px;
  padding:12px 20px;
  color:#352836;
  background:#f5e6e1;
  cursor:pointer;
  font-weight:850;
}
#gate-error{
  display:block;
  min-height:17px;
  margin-top:7px;
  color:#e8abb9;
}
.bare-btn{
  margin-top:14px;
  border:0;
  background:transparent;
  color:#c1b4be;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:4px;
}
.hint{color:#d4c9d3!important;font-size:.7rem}

/* =========================================================
   MENU V29 — navigation directe, aucun popup
   ========================================================= */
.nav29{
  position:fixed;
  z-index:400;
  top:14px;
  left:50%;
  translate:-50% 0;
  width:min(1240px,calc(100% - 28px));
  min-height:64px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:7px 9px 7px 10px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  color:white;
  background:rgba(20,16,31,.62);
  box-shadow:0 16px 50px rgba(9,7,15,.17);
  backdrop-filter:blur(20px) saturate(1.18);
  transition:background .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease;
}
.nav29.is-scrolled{
  color:var(--ink);
  border-color:rgba(255,255,255,.82);
  background:rgba(251,247,242,.93);
  box-shadow:0 15px 48px rgba(52,33,48,.12);
}
.nav29-brand{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:max-content;
}
.nav29-brand>span{
  width:40px;height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.1);
  border-radius:13px;
  color:#f3cbd7;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.04));
  font:600 .8rem var(--serif);
}
.nav29.is-scrolled .nav29-brand>span{
  color:#985970;
  border-color:rgba(72,50,69,.05);
  background:#efe4e4;
}
.nav29-brand small{
  display:block;
  opacity:.45;
  font-size:.35rem;
  font-weight:850;
  letter-spacing:.15em;
}
.nav29-brand strong{
  display:block;
  margin-top:1px;
  font:500 .96rem var(--serif);
}

.nav29-rail{
  min-width:0;
  display:flex;
  align-items:center;
  gap:3px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scrollbar-width:none;
  mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);
  padding:2px 18px;
}
.nav29-rail::-webkit-scrollbar{display:none}
.nav29-link{
  position:relative;
  flex:1 0 auto;
  min-width:76px;
  min-height:44px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:1px;
  padding:5px 8px;
  border-radius:13px;
  color:inherit;
  opacity:.58;
  transition:opacity .22s ease,background .22s ease,transform .22s var(--ease);
}
.nav29-link::after{
  content:"";
  position:absolute;
  left:14px;right:14px;bottom:3px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--lavender),var(--rose),var(--gold));
  transform:scaleX(0);
  transition:transform .28s var(--ease);
}
.nav29-link span{
  font-size:.34rem;
  font-weight:850;
  letter-spacing:.1em;
  opacity:.58;
}
.nav29-link strong{
  font:600 .56rem var(--sans);
  white-space:nowrap;
}
.nav29-link:hover{
  opacity:.9;
  background:rgba(255,255,255,.075);
  transform:translateY(-1px);
}
.nav29.is-scrolled .nav29-link:hover{background:#f0e7e6}
.nav29-link.is-current{
  opacity:1;
  background:rgba(255,255,255,.095);
}
.nav29.is-scrolled .nav29-link.is-current{background:#efe5e4}
.nav29-link.is-current::after{transform:scaleX(1)}
.nav29-link.is-current span{color:#e7c88f;opacity:1}
.nav29.is-scrolled .nav29-link.is-current span{color:#a36b45}

.nav29-lock{
  flex:0 0 auto;
  width:40px;height:40px;
  border:0;
  border-radius:13px;
  color:inherit;
  background:rgba(255,255,255,.06);
  cursor:pointer;
}
.nav29.is-scrolled .nav29-lock{background:#efe5e4}
.nav29-progress{
  position:absolute;
  left:10px;right:10px;bottom:0;
  height:2px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.05);
}
.nav29.is-scrolled .nav29-progress{background:rgba(72,50,69,.045)}
.nav29-progress i{
  display:block;
  width:11.11%;height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--lavender),var(--rose),var(--gold));
  transition:width .55s var(--ease);
}

.mobile29{display:none}

@media(max-width:1100px){
  .nav29{
    width:calc(100% - 22px);
    grid-template-columns:auto minmax(0,1fr) auto;
  }
  .nav29-brand>div{display:none}
  .nav29-link{min-width:70px}
}

@media(max-width:760px){
  .nav29{
    top:9px;
    width:calc(100% - 18px);
    min-height:52px;
    grid-template-columns:1fr auto;
    padding:6px 8px;
    border-radius:18px;
  }
  .nav29-brand>span{width:38px;height:38px;border-radius:11px}
  .nav29-brand>div{display:block}
  .nav29-brand strong{font-size:.9rem}
  .nav29-rail{display:none}
  .nav29-lock{width:38px;height:38px;border-radius:11px}
  .nav29-progress{left:8px;right:8px}

  .mobile29{
    position:fixed;
    z-index:430;
    left:9px;right:9px;bottom:9px;
    min-height:62px;
    display:flex;
    align-items:center;
    gap:4px;
    padding:5px 7px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x proximity;
    scroll-behavior:smooth;
    scrollbar-width:none;
    border:1px solid rgba(255,255,255,.8);
    border-radius:19px;
    background:rgba(251,247,243,.94);
    box-shadow:0 15px 45px rgba(31,20,35,.17);
    backdrop-filter:blur(18px);
  }
  .mobile29::-webkit-scrollbar{display:none}
  .mobile29 a{
    position:relative;
    flex:0 0 76px;
    height:50px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:1px;
    scroll-snap-align:center;
    border-radius:14px;
    color:#766875;
    opacity:.55;
    transition:.22s ease;
  }
  .mobile29 a span{
    font-size:.34rem;
    font-weight:850;
    letter-spacing:.1em;
  }
  .mobile29 a strong{
    max-width:70px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.5rem;
  }
  .mobile29 a.is-current{
    opacity:1;
    color:#4d3e4b;
    background:#eee4e3;
    box-shadow:inset 0 -2px 0 var(--rose);
  }
  .mobile29 a.is-current span{color:#a36478}
}

/* =========================================================
   HERO / REFUGE
   ========================================================= */
.hero{
  --mx:0;--my:0;--hero-scroll:0;
  position:relative;
  min-height:100svh;
  padding:150px clamp(20px,6vw,96px) 190px;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:white;
  background:#11101b;
}
.hero__bg{
  position:absolute;
  inset:-5%;
  background:url("../images/scene-galaxy.svg") center/cover no-repeat;
  filter:saturate(.92) brightness(.7);
  animation:heroBreathe 18s ease-in-out infinite alternate;
}
@keyframes heroBreathe{
  to{transform:scale(1.06) translate(.6%,.4%);filter:saturate(1.04) brightness(.77)}
}
.hero__nebula{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 76% 18%,rgba(199,113,148,.2),transparent 29%),
    radial-gradient(circle at 52% 82%,rgba(132,113,184,.14),transparent 24%),
    radial-gradient(circle at 18% 22%,rgba(208,170,108,.07),transparent 24%),
    linear-gradient(90deg,rgba(12,10,20,.94),rgba(22,17,35,.46) 62%,rgba(18,14,28,.58));
}
.hero__content{
  position:relative;
  z-index:5;
  width:min(760px,62%);
  transform:translateY(calc(var(--hero-scroll)*14px));
}
.hero .eyebrow{color:#e0bc7f}
.hero h1{
  margin:0;
  font:500 clamp(5.2rem,9.2vw,9.2rem)/.78 var(--serif);
  letter-spacing:-.068em;
  text-wrap:balance;
}
.hero h1 em{color:#efc4d1;font-weight:500}
.hero__lead{
  max-width:620px;
  margin:24px 0 0;
  color:#ddd4df;
  font-size:.9rem;
  line-height:1.82;
}
.hero__buttons{
  display:flex;
  gap:9px;
  margin-top:26px;
}
.hero-constellation{
  position:absolute;
  z-index:3;
  right:6.5%;top:21%;
  width:min(590px,45vw);
  height:200px;
  transform:translate(calc(var(--mx)*12px),calc(var(--my)*8px + var(--hero-scroll)*-20px));
  transition:transform .12s linear;
}
.hero-constellation svg{position:absolute;inset:0;width:100%;height:100%}
.const-line{
  fill:none;
  stroke:rgba(241,201,213,.4);
  stroke-width:1;
  stroke-dasharray:8 7;
  animation:constFlow 9s linear infinite;
}
@keyframes constFlow{to{stroke-dashoffset:-30}}
.hero-person{
  position:absolute;
  top:50%;
  translate:0 -50%;
  display:grid;
  justify-items:center;
  gap:5px;
}
.hero-person--p{left:0}.hero-person--l{right:0}
.hero-person b{
  width:62px;height:62px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,239,234,.24);
  border-radius:50%;
  color:#fff8f3;
  background:rgba(255,255,255,.065);
  backdrop-filter:blur(10px);
  box-shadow:0 0 30px rgba(215,154,178,.06);
  font:600 1.55rem var(--serif);
}
.hero-person span{
  color:#cfc4d0;
  font-size:.48rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.const-star{
  position:absolute;
  width:8px;height:8px;
  border-radius:50%;
  background:#ffe5b2;
  box-shadow:0 0 24px rgba(255,226,175,.78);
  animation:starPulse 3.3s ease-in-out infinite;
}
.cs1{left:28%;top:38%}.cs2{left:49%;top:66%;animation-delay:-1s}.cs3{left:72%;top:32%;animation-delay:-2s}
@keyframes starPulse{50%{transform:scale(1.55);opacity:.42}}
.hero-portals{
  position:absolute;
  z-index:2;
  right:6.5%;bottom:13%;
  width:400px;height:280px;
  transform:translate(calc(var(--mx)*-8px),calc(var(--my)*-5px + var(--hero-scroll)*-26px));
  transition:transform .14s linear;
}
.portal{
  position:absolute;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:24px;
  box-shadow:var(--shadow-dark);
  transform:rotate(var(--r));
  transition:transform .5s var(--ease);
}
.hero:hover .portal--one{transform:rotate(-4deg) translateY(-4px)}
.hero:hover .portal--two{transform:rotate(3deg) translateY(4px)}
.portal img{width:100%;height:100%;object-fit:cover}
.portal--one{--r:-7deg;left:0;top:47px;width:215px;height:164px}
.portal--two{--r:6deg;right:0;top:0;width:194px;height:224px}
.hero__metrics{
  position:absolute;
  z-index:6;
  left:clamp(20px,6vw,96px);
  right:clamp(20px,6vw,96px);
  bottom:34px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.hero__metrics article{
  position:relative;
  min-height:84px;
  padding:15px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  border-radius:19px;
  background:rgba(27,21,42,.42);
  backdrop-filter:blur(16px);
  transition:transform .28s var(--ease),background .28s ease;
}
.hero__metrics article:hover{
  transform:translateY(-3px);
  background:rgba(36,28,53,.56);
}
.hero__metrics strong{
  display:block;
  color:#edca92;
  font:500 1.85rem var(--serif);
}
.hero__metrics span,.hero__metrics small{
  display:block;
  color:#cfc4d0;
  font-size:.51rem;
}
.metric-reunion strong{color:#efb9ca!important}
.metric-reunion::after{
  content:"";
  position:absolute;
  width:75px;height:75px;
  right:-27px;top:-34px;
  border:1px solid rgba(239,185,202,.15);
  border-radius:50%;
  animation:metricOrbit 5s ease-in-out infinite;
}
@keyframes metricOrbit{50%{transform:translate(-8px,8px) scale(1.08);opacity:.45}}
.scroll-hint{
  position:absolute;
  z-index:6;
  left:50%;bottom:130px;
  translate:-50% 0;
  display:grid;
  justify-items:center;
  gap:6px;
  color:#a99cab;
  font-size:.47rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.scroll-hint span{
  width:1px;height:34px;
  background:linear-gradient(#e4c4ce,transparent);
  animation:scrollHint 2s ease-in-out infinite;
}
@keyframes scrollHint{50%{transform:scaleY(.55);opacity:.55;transform-origin:top}}
.shooting{
  position:absolute;
  z-index:2;
  width:125px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,232,203,.65),transparent);
  rotate:-18deg;
  animation:shoot 9s linear infinite;
}
.shooting--1{left:65%;top:16%}.shooting--2{left:35%;top:34%;animation-delay:-5s}
@keyframes shoot{
  0%,74%{opacity:0;transform:translate(0,0)}
  80%{opacity:1}
  100%{opacity:0;transform:translate(230px,94px)}
}

/* =========================================================
   REUNION STRIP
   ========================================================= */
.reunion-quick-v17{
  position:relative;
  padding:42px clamp(18px,5vw,78px);
  overflow:hidden;
  color:white;
  background:
    radial-gradient(circle at 82% 0%,rgba(200,116,148,.16),transparent 32%),
    radial-gradient(circle at 10% 100%,rgba(133,116,183,.08),transparent 30%),
    linear-gradient(180deg,#151221,#282039);
}
.reunion-quick-v17::after{
  content:"";
  position:absolute;
  left:8%;right:8%;top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,229,234,.2),transparent);
}
.reunion-quick__inner{
  width:min(1370px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:.92fr .74fr 1.45fr;
  gap:14px;
  align-items:stretch;
}
.reunion-quick__intro{
  padding:18px 10px 18px 0;
  align-self:center;
}
.reunion-quick__intro h2{
  margin:0;
  color:#fff8f4;
  font:500 clamp(2.6rem,4vw,4.5rem)/.88 var(--serif);
  letter-spacing:-.045em;
}
.reunion-quick__intro h2 em{color:#efbdcb;font-weight:500}
.reunion-quick__intro>p:not(.eyebrow){
  max-width:380px;
  color:#cfc5d1;
  font-size:.7rem;
  line-height:1.72;
}
.big-event-mini{
  margin-top:17px;
  width:min(340px,100%);
  display:grid;
  grid-template-columns:38px 1fr;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:15px;
  background:rgba(255,255,255,.045);
}
.big-event-mini__icon{
  width:38px;height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#e0bb7b;
  background:rgba(208,170,108,.11);
  animation:bigStar 3.4s ease-in-out infinite;
}
@keyframes bigStar{50%{transform:rotate(10deg) scale(1.08)}}
.big-event-mini small{display:block;color:#9f93a5;font-size:.42rem;letter-spacing:.12em}
.big-event-mini strong{color:#ebc98f;font:600 1rem var(--serif)}
.big-event-mini div>span{margin-left:6px;color:#d0c4cf;font-size:.54rem}
.reunion-countdown-card{
  position:relative;
  min-height:176px;
  display:grid;
  grid-template-columns:96px 1fr;
  gap:15px;
  align-items:center;
  padding:21px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  border-radius:25px;
  background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));
  box-shadow:0 22px 60px rgba(0,0,0,.1);
}
.reunion-countdown-card__orb{
  width:92px;height:92px;
  display:grid;
  place-items:center;
  align-content:center;
  border:1px solid rgba(235,184,202,.24);
  border-radius:50%;
  background:radial-gradient(circle,rgba(194,111,143,.17),rgba(100,75,110,.08) 62%,transparent 63%);
  box-shadow:0 0 38px rgba(194,111,143,.08);
}
.reunion-countdown-card__orb span{color:#f1c7d4;font:500 2.4rem/.9 var(--serif)}
.reunion-countdown-card__orb small{color:#a99dac;font-size:.43rem;letter-spacing:.1em;text-transform:uppercase}
.reunion-countdown-card__copy>small{color:#d6b47a;font-size:.45rem;letter-spacing:.14em}
.reunion-countdown-card__copy strong{display:block;margin:6px 0 4px;color:#fff7f2;font:500 1.6rem var(--serif)}
.reunion-countdown-card__copy span{color:#bcb0bd;font-size:.59rem}
.reunion-countdown-card__pulse{
  position:absolute;
  width:145px;height:145px;
  left:-28px;top:50%;
  translate:0 -50%;
  border:1px solid rgba(232,178,196,.08);
  border-radius:50%;
  animation:ringPulse 3.2s ease-out infinite;
}
@keyframes ringPulse{0%{transform:scale(.7);opacity:0}30%{opacity:.8}100%{transform:scale(1.2);opacity:0}}
.reunion-upcoming-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:7px;
}
.reunion-upcoming-item{
  min-height:80px;
  display:grid;
  grid-template-columns:51px 1fr;
  gap:10px;
  align-items:center;
  padding:11px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:16px;
  background:rgba(255,255,255,.032);
  transition:transform .22s ease,background .22s ease;
}
.reunion-upcoming-item:hover{transform:translateY(-2px);background:rgba(255,255,255,.065)}
.reunion-upcoming-item.is-next{border-color:rgba(238,190,205,.17);background:rgba(255,255,255,.065)}
.reunion-upcoming-item__line{display:grid;justify-items:center;gap:4px}
.reunion-upcoming-item__line i{
  width:31px;height:5px;
  border-radius:999px;
  background:var(--lavender);
  box-shadow:0 0 12px currentColor;
}
.route-l .reunion-upcoming-item__line i{background:var(--peach)}
.reunion-upcoming-item__line span{color:#ddd2dd;font-size:.43rem;font-weight:850}
.reunion-upcoming-item strong{display:block;color:#fff6f2;font:500 1rem var(--serif)}
.reunion-upcoming-item small{display:block;margin-top:2px;color:#a99ead;font-size:.49rem}
.reunion-empty-v17{
  grid-column:1/-1;
  display:grid;
  place-items:center;
  min-height:165px;
  border:1px dashed rgba(255,255,255,.1);
  border-radius:18px;
  color:#a99dac;
  font:500 1.05rem var(--serif);
}

/* =========================================================
   DIVIDERS — one visual language
   ========================================================= */
.chapter-divider{
  position:relative;
  min-height:140px;
  padding:22px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:12px;
  overflow:hidden;
  background:var(--paper);
}
.chapter-divider::before{
  content:"";
  position:absolute;
  width:420px;height:120px;
  left:50%;top:50%;
  translate:-50% -50%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(196,119,145,.06),transparent 70%);
}
.chapter-divider p{
  position:relative;
  margin:0;
  color:#827681;
  font:500 1.12rem var(--serif);
  text-align:center;
}
.divider-art,.train-line,.heart-line,.page-turn,.ribbon-line,.firefly-field,.constellation-divider__stars,.archive-book-divider__line{
  position:relative;
  width:min(440px,76vw);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.divider-art i,.train-line i,.heart-line i,.page-turn i,.ribbon-line i,.constellation-divider__stars i,.archive-book-divider__line i{
  flex:1;height:1px;
  background:linear-gradient(90deg,transparent,rgba(173,106,131,.33));
}
.divider-art i:last-child,.heart-line i:last-child,.page-turn i:last-child,.ribbon-line i:last-child,.constellation-divider__stars i:last-child,.archive-book-divider__line i:last-child{transform:scaleX(-1)}
.divider-art span,.heart-line span,.ribbon-line span,.constellation-divider__stars span,.archive-book-divider__line span{color:var(--rose)}
.tiny-train{color:#967986;font-size:.8rem}
.firefly-field i{
  width:6px;height:6px;
  border-radius:50%;
  background:#e2b979;
  box-shadow:0 0 16px rgba(226,185,121,.5);
  animation:firefly 3.6s ease-in-out infinite;
}
.firefly-field i:nth-child(2){animation-delay:-1.1s}.firefly-field i:nth-child(3){animation-delay:-2.2s}
@keyframes firefly{50%{opacity:.25;transform:translateY(-4px)}}
.firefly-field b{color:var(--rose);font-weight:400}

/* =========================================================
   STORY
   ========================================================= */
.story-section{
  background:
    radial-gradient(circle at 10% 15%,rgba(196,119,145,.1),transparent 24%),
    linear-gradient(180deg,var(--paper),#f3e9e5);
}
.memory-stage{width:min(1330px,100%);margin:auto}
.memory-main{
  position:relative;
  min-height:690px;
  overflow:hidden;
  border-radius:var(--radius-xl);
  background:#252033;
  box-shadow:var(--shadow);
}
.memory-main>img{
  position:absolute;
  inset:-1%;
  width:102%;height:102%;
  object-fit:cover;
  animation:memoryDrift 14s ease-in-out infinite alternate;
}
@keyframes memoryDrift{to{transform:scale(1.05) translate(-.6%,-.3%)}}
.memory-main__veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(18,14,27,.91),rgba(29,22,41,.24) 76%),
    linear-gradient(0deg,rgba(17,13,25,.62),transparent 52%);
}
.memory-main__date{
  position:absolute;
  z-index:3;
  top:28px;left:30px;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  color:#f0d19a;
  background:rgba(22,17,31,.32);
  backdrop-filter:blur(12px);
  font-size:.58rem;
}
.memory-main__content{
  position:absolute;
  z-index:3;
  left:clamp(27px,5vw,74px);
  bottom:clamp(36px,7vw,92px);
  width:min(720px,76%);
  transition:opacity .28s ease,transform .28s ease;
}
.memory-main__content .eyebrow{color:#e0bb7c}
.memory-main__content h3{
  margin:0;
  color:#fff8f4;
  font:500 clamp(3.1rem,5vw,6.1rem)/.88 var(--serif);
  letter-spacing:-.045em;
}
.memory-main__content>p:last-child{
  max-width:620px;
  color:#d8d0d9;
  font-size:.8rem;
  line-height:1.78;
}
.memory-arrow{
  position:absolute;
  z-index:5;
  top:50%;
  translate:0 -50%;
  width:50px;height:50px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:50%;
  color:white;
  background:rgba(20,16,30,.34);
  backdrop-filter:blur(11px);
  cursor:pointer;
  transform:translate(var(--mag-x,0),var(--mag-y,0));
  transition:transform .18s ease,background .22s ease;
}
.memory-arrow:hover{background:rgba(255,255,255,.12)}
.memory-arrow--prev{left:18px}.memory-arrow--next{right:18px}
.memory-path{
  position:relative;
  margin-top:23px;
  padding-top:9px;
}
.memory-path__line{
  position:absolute;
  left:0;right:0;top:16px;
  height:1px;
  background:#d7c7cc;
}
.memory-dates{
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:4px;
}
.memory-date-btn{
  position:relative;
  padding:27px 8px 8px;
  border:0;
  color:#8d7e88;
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.memory-date-btn::before{
  content:"";
  position:absolute;
  left:8px;top:3px;
  width:10px;height:10px;
  border:2px solid #f6ece9;
  border-radius:50%;
  background:#b5a3ab;
  transition:.25s ease;
}
.memory-date-btn:hover::before{transform:scale(1.25)}
.memory-date-btn.is-active::before{
  background:var(--rose);
  box-shadow:0 0 0 6px rgba(196,119,145,.1),0 0 16px rgba(196,119,145,.15);
}
.memory-date-btn span{display:block;color:#6f626c;font-size:.52rem;font-weight:850}
.memory-date-btn strong{display:block;margin-top:3px;color:#9b8e96;font-size:.43rem;letter-spacing:.08em}
.memory-switching .memory-main__content{opacity:0;transform:translateY(14px)}

/* =========================================================
   CONSTELLATION — a distinct universe
   ========================================================= */
.constellation-divider{
  color:white;
  background:linear-gradient(180deg,#f3e9e5,#171322);
}
.constellation-divider p{color:#b9aebb}
.constellation-section{
  min-height:930px;
  overflow:hidden;
  color:white;
  background:
    radial-gradient(circle at 50% 38%,rgba(125,105,181,.14),transparent 25%),
    radial-gradient(circle at 74% 18%,rgba(194,105,141,.16),transparent 28%),
    linear-gradient(180deg,#171322,#0e0d16);
}
.constellation-title{margin-bottom:36px}
.constellation-universe{
  position:relative;
  width:min(1240px,100%);
  height:720px;
  margin:auto;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.07);
  border-radius:38px;
  background:
    radial-gradient(circle at 50% 50%,rgba(115,95,162,.15),transparent 19%),
    radial-gradient(circle at 27% 18%,rgba(198,118,145,.08),transparent 25%),
    radial-gradient(circle at 78% 74%,rgba(209,166,103,.07),transparent 25%),
    #11101b;
  box-shadow:var(--shadow-dark);
}
.constellation-universe::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.48;
  pointer-events:none;
  background-image:
    radial-gradient(circle at 14% 18%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 28% 74%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 43% 23%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 61% 31%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 85% 18%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 90% 64%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 70% 87%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 9% 56%,#fff 0 1px,transparent 1.5px);
}
.constellation-universe::after{
  content:"";
  position:absolute;
  width:320px;height:320px;
  left:50%;top:50%;
  translate:-50% -50%;
  border:1px solid rgba(255,255,255,.035);
  border-radius:50%;
  box-shadow:
    0 0 0 65px rgba(255,255,255,.015),
    0 0 0 135px rgba(255,255,255,.01);
  animation:constHalo 9s ease-in-out infinite;
}
@keyframes constHalo{50%{transform:scale(1.04);opacity:.6}}
.constellation-map-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.constellation-edge{stroke:rgba(255,255,255,.055);stroke-width:.16}
.constellation-spoke{stroke-width:.12;stroke-dasharray:.7 1.1;animation:spokeFlow 12s linear infinite}
.constellation-spoke.is-pierre{stroke:rgba(139,122,184,.27)}
.constellation-spoke.is-leonor{stroke:rgba(217,143,120,.25)}
@keyframes spokeFlow{to{stroke-dashoffset:-12}}
.constellation-center{
  position:absolute;
  z-index:3;
  left:50%;top:50%;
  translate:-50% -50%;
  width:155px;height:155px;
  display:grid;
  place-items:center;
  align-content:center;
  border:1px solid rgba(226,191,131,.22);
  border-radius:50%;
  background:radial-gradient(circle,rgba(208,170,108,.14),rgba(87,69,107,.08) 60%,transparent 62%);
  box-shadow:0 0 85px rgba(208,170,108,.08);
}
.constellation-center small{color:#aa9cac;font-size:.42rem;letter-spacing:.15em}
.constellation-center strong{color:#f1d3a3;font:500 2.15rem var(--serif)}
.constellation-center span{color:#cfc3cf;font-size:.52rem}
.constellation-center__rings i{
  position:absolute;
  left:50%;top:50%;
  translate:-50% -50%;
  border:1px solid rgba(255,255,255,.05);
  border-radius:50%;
  animation:orbitBreath 7s ease-in-out infinite;
}
.constellation-center__rings i:nth-child(1){width:190px;height:190px}
.constellation-center__rings i:nth-child(2){width:260px;height:260px;animation-delay:-2s}
.constellation-center__rings i:nth-child(3){width:340px;height:340px;animation-delay:-4s}
@keyframes orbitBreath{50%{transform:scale(1.04);opacity:.4}}
.constellation-node{
  position:absolute;
  z-index:5;
  left:var(--x);top:var(--y);
  translate:-50% -50%;
  width:44px;height:44px;
  border:0;
  border-radius:50%;
  color:white;
  background:transparent;
  cursor:pointer;
}
.constellation-node>i{
  position:absolute;
  left:50%;top:50%;
  translate:-50% -50%;
  width:11px;height:11px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 20px currentColor;
  transition:transform .28s ease,box-shadow .28s ease;
}
.constellation-node::before{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid currentColor;
  border-radius:50%;
  opacity:.15;
  transition:.28s ease;
}
.constellation-node span{
  position:absolute;
  left:50%;top:calc(100% - 3px);
  translate:-50% 0;
  color:#a99dac;
  font-size:.38rem;
  opacity:.7;
}
.constellation-node small{
  position:absolute;
  z-index:2;
  left:50%;top:50%;
  translate:-50% -50%;
  color:#16131f;
  font-size:.35rem;
  font-weight:900;
}
.constellation-node--pierre{color:#a092d0}
.constellation-node--leonor{color:#e49b84}
.constellation-node:hover>i,.constellation-node.is-active>i{
  transform:scale(1.55);
  box-shadow:0 0 38px currentColor;
}
.constellation-node.is-active::before{inset:-6px;opacity:.5}
.constellation-node:nth-child(3n)>i{animation:nodeTwinkle 3.4s ease-in-out infinite}
.constellation-node:nth-child(4n)>i{animation:nodeTwinkle 4.2s ease-in-out infinite -1.3s}
@keyframes nodeTwinkle{50%{opacity:.5;transform:scale(.72)}}
.constellation-letter{
  position:absolute;
  z-index:12;
  left:50%;bottom:28px;
  translate:-50% 25px;
  width:min(650px,calc(100% - 44px));
  padding:24px 26px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  color:white;
  background:rgba(30,25,44,.86);
  box-shadow:0 24px 80px rgba(0,0,0,.28);
  backdrop-filter:blur(18px);
  opacity:0;
  pointer-events:none;
  transition:.35s var(--ease);
}
.constellation-letter.is-open{opacity:1;translate:-50% 0;pointer-events:auto}
.constellation-letter.is-pierre{box-shadow:0 24px 80px rgba(80,66,126,.2)}
.constellation-letter.is-leonor{box-shadow:0 24px 80px rgba(159,83,93,.18)}
.constellation-letter>button{
  position:absolute;
  right:13px;top:13px;
  width:33px;height:33px;
  border:0;
  border-radius:50%;
  color:#d7ccd8;
  background:rgba(255,255,255,.07);
  cursor:pointer;
}
.constellation-letter__who{display:flex;align-items:center;gap:10px}
.constellation-letter__who>span{
  width:40px;height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#f3e6eb;
  background:rgba(255,255,255,.07);
  font:600 1rem var(--serif);
}
.constellation-letter__who small{display:block;color:#aa9daf;font-size:.42rem;letter-spacing:.13em}
.constellation-letter__who strong{display:block;margin-top:2px;color:#fff5f2;font-size:.62rem}
.constellation-letter blockquote{
  margin:19px 0;
  color:#fff7f3;
  font:500 clamp(1.35rem,2vw,2.1rem)/1.25 var(--serif);
  letter-spacing:-.02em;
}
.constellation-letter footer{
  min-height:0;
  padding:0;
  display:flex;
  justify-content:space-between;
  color:#a99dac;
  background:none;
}
.constellation-letter footer span{color:#b9adba;font:600 .5rem var(--sans)}
.constellation-letter footer i{color:#d8b479;font-style:normal}
.constellation-letter.is-arriving blockquote{animation:letterArrive .45s ease}
@keyframes letterArrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.constellation-whisper{
  position:absolute;
  left:50%;top:69%;
  translate:-50% 0;
  color:#756c7b;
  font-size:.43rem;
  letter-spacing:.15em;
  text-transform:uppercase;
}

/* =========================================================
   LITTLE THINGS
   ========================================================= */
.little-things{
  background:
    radial-gradient(circle at 83% 10%,rgba(139,122,184,.09),transparent 24%),
    radial-gradient(circle at 10% 86%,rgba(217,143,120,.07),transparent 26%),
    linear-gradient(180deg,#f6eeea,#ede4e5);
}
.little-grid{
  width:min(1370px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr .86fr .72fr;
  gap:12px;
}
.sky-card,.journey-card,.flip-note,.wish-card{
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.sky-card{
  position:relative;
  min-height:525px;
  color:white;
  background:#19182c;
}
.sky-real-image{position:absolute;inset:0}
.sky-real-image img{
  width:100%;height:100%;
  object-fit:cover;
  opacity:.74;
  animation:skyDrift 14s ease-in-out infinite alternate;
}
@keyframes skyDrift{to{transform:scale(1.055) translateX(-1%)}}
.sky-real-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(14,14,27,.91),rgba(23,20,37,.28)),
    linear-gradient(0deg,rgba(15,13,27,.58),transparent);
}
.sky-real-image__glow{
  position:absolute;
  width:240px;height:240px;
  right:-70px;top:-80px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(145,129,205,.16),transparent 70%);
  animation:skyGlow 6s ease-in-out infinite;
}
@keyframes skyGlow{50%{transform:scale(1.18);opacity:.5}}
.sky-card__content{
  position:relative;
  z-index:3;
  width:min(525px,76%);
  padding:33px;
}
.sky-card__content h3,.journey-card h3,.wish-card h3{
  margin:0;
  font:500 2.75rem/.94 var(--serif);
}
.sky-card__content>p:not(.eyebrow){
  color:#d8d0dc;
  font-size:.78rem;
  line-height:1.72;
}
.platform-pair{display:flex;gap:7px;margin-top:18px;flex-wrap:wrap}
.platform-pair span{
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  font-size:.55rem;
}
.store-links{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}
.store-links a{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 11px;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  font-size:.55rem;
  transition:.22s ease;
}
.store-links a:hover{transform:translateY(-2px);background:rgba(255,255,255,.13)}
.store-links small{display:block;color:#aaa0ae;font-size:.36rem}
.store-links strong{font-size:.58rem}
.journey-card{
  position:relative;
  min-height:525px;
  padding:30px;
  background:
    radial-gradient(circle at 85% 8%,rgba(255,255,255,.76),transparent 20%),
    linear-gradient(145deg,#fff8f4,#eee2e8 58%,#e5e0ef);
}
.journey-card__copy>p:not(.eyebrow){color:#746875;font-size:.71rem;line-height:1.72}
.journey-heading{display:flex;justify-content:space-between;align-items:end}
.journey-heading h3{color:#453748}
.journey-heart{color:var(--rose);font:500 2rem var(--serif);animation:journeyBeat 2.8s ease-in-out infinite}
@keyframes journeyBeat{50%{transform:scale(1.08)}}
.journey-route{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:8px;
  margin:25px 0 12px;
}
.route-person{
  width:42px;height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font:600 1rem var(--serif);
}
.route-person--p{color:#65558a;background:#e6e0f3}
.route-person--l{color:#9a5849;background:#f4ddd6}
.route-track{position:relative;height:22px}
.route-track::before{
  content:"";
  position:absolute;
  left:0;right:0;top:10px;
  height:2px;
  background:linear-gradient(90deg,var(--lavender),#bd9cac,var(--peach));
  background-size:200% 100%;
  animation:routeGlow 4s linear infinite;
}
@keyframes routeGlow{to{background-position:200% 0}}
.route-heart{
  position:absolute;
  left:50%;top:-2px;
  translate:-50% 0;
  color:#b76983;
  font-style:normal;
  animation:routeHeart 4s ease-in-out infinite;
}
@keyframes routeHeart{0%,100%{left:17%}50%{left:83%}}
.route-pulse{
  position:absolute;
  top:7px;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--lavender);
}
.route-pulse--p{left:4%}
.route-pulse--l{right:4%;background:var(--peach)}
.journey-key{
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  margin-bottom:12px;
  color:#706471;
  font-size:.5rem;
}
.journey-key span{display:flex;align-items:center;gap:5px}
.journey-key i{width:17px;height:6px;border-radius:99px;background:var(--lavender)}
.journey-key__l{background:var(--peach)!important}
.journey-toggle{
  width:100%;
  display:flex;
  justify-content:space-between;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  color:#4e414e;
  background:rgba(255,255,255,.72);
  cursor:pointer;
  font-size:.56rem;
  font-weight:800;
}
.journey-toggle i{font-style:normal;transition:.25s}
.journey-toggle.is-open i{transform:rotate(180deg)}
.journey-dates-panel{
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  transition:grid-template-rows .38s var(--ease),opacity .25s ease,margin .3s ease;
}
.journey-dates-panel.is-open{grid-template-rows:1fr;opacity:1;margin-top:8px}
.journey-dates-panel>.journey-dates{min-height:0;overflow:hidden}
.journey-dates{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}
.journey-date{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:7px 8px;
  border-radius:9px;
  font-size:.48rem;
}
.journey-date--p{background:#eae4f4}
.journey-date--l{background:#f7e5de}
.journey-date small{
  padding:2px 4px;
  border-radius:99px;
  color:white;
  background:#76629a;
  font-size:.38rem;
}
.journey-date--l small{background:#c8745e}
.flip-note{
  min-height:250px;
  perspective:1000px;
  background:transparent;
  cursor:pointer;
}
.flip-note__inner{
  position:relative;
  width:100%;height:100%;
  min-height:250px;
  transform-style:preserve-3d;
  transition:transform .68s var(--ease);
}
.flip-note.is-flipped .flip-note__inner{transform:rotateY(180deg)}
.flip-note__front,.flip-note__back{
  position:absolute;
  inset:0;
  padding:24px;
  backface-visibility:hidden;
  border-radius:28px;
}
.flip-note__front{
  display:grid;
  align-content:center;
  text-align:center;
  background:linear-gradient(145deg,#fff8f4,#eddee5);
}
.flip-note__front>span{color:var(--rose);font:500 2.5rem var(--serif)}
.flip-note__front h3{margin:5px 0;font:500 1.8rem var(--serif)}
.flip-note__front small{color:#8d7f88}
.flip-note__back{
  display:grid;
  align-content:center;
  color:white;
  background:linear-gradient(145deg,#3c2b3d,#6e4258);
  transform:rotateY(180deg);
}
.flip-note__back blockquote{margin:10px 0;font:500 1.55rem/1.25 var(--serif)}
.flip-note__back>span{color:#deb87f}
.wish-card{
  position:relative;
  min-height:260px;
  padding:25px;
  color:white;
  background:linear-gradient(145deg,#27203c,#4c4568 58%,#83576d);
}
.wish-sky span{
  position:absolute;
  width:4px;height:4px;
  border-radius:50%;
  background:#fff3dd;
  box-shadow:0 0 12px #ffe8bf;
  animation:wishTwinkle 3.5s ease-in-out infinite;
}
@keyframes wishTwinkle{50%{opacity:.3;transform:scale(.65)}}
.wish-sky span:nth-child(1){left:16%;top:18%}
.wish-sky span:nth-child(2){left:74%;top:22%;animation-delay:-1s}
.wish-sky span:nth-child(3){left:88%;top:55%;animation-delay:-2s}
.wish-sky span:nth-child(4){left:25%;top:73%;animation-delay:-.6s}
.wish-sky span:nth-child(5){left:55%;top:12%;animation-delay:-1.7s}
.wish-sky span:nth-child(6){left:63%;top:77%;animation-delay:-2.6s}
.wish-star{
  position:relative;
  z-index:2;
  width:56px;height:56px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  color:#f3cf91;
  background:rgba(255,255,255,.07);
  cursor:pointer;
  font-size:1.5rem;
  transition:.22s ease;
}
.wish-star:hover{transform:scale(1.07);box-shadow:0 0 30px rgba(243,207,145,.12)}
.wish-card h3{position:relative;z-index:2;margin-top:18px}
.wish-card>p:last-child{position:relative;z-index:2;color:#c8bdca;font-size:.66rem;line-height:1.6}
.wish-card.is-wishing .wish-star{animation:wishPop .65s ease}
@keyframes wishPop{50%{transform:scale(1.18) rotate(12deg)}}

/* =========================================================
   CALENDAR V28 — 24h exact, morning / afternoon split
   ========================================================= */
.calendar28-section{
  background:
    radial-gradient(circle at 86% 10%,rgba(196,119,145,.09),transparent 25%),
    linear-gradient(180deg,#ede4e5,#f8f1ec);
}
.calendar28-title h2 em{color:#a45a74}
.calendar28-shell{
  width:min(1420px,100%);
  margin:auto;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:31px;
  background:#fffaf6;
  box-shadow:var(--shadow);
}
.calendar28-header{
  min-height:84px;
  padding:14px 16px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:18px;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 76% 0%,rgba(196,119,145,.07),transparent 30%),
    linear-gradient(180deg,#fffaf7,#f8efec);
}
.calendar28-navigation{display:flex;align-items:center;gap:6px}
.calendar28-navigation button{
  min-width:41px;height:41px;padding:0 12px;border:0;border-radius:999px;
  color:#514451;background:#eee4e3;cursor:pointer;font-size:.64rem;font-weight:850;
  transform:translate(var(--mag-x,0),var(--mag-y,0));
}
.calendar28-period{text-align:center}
.calendar28-period small{display:block;color:#9b8c96;font-size:.48rem;font-weight:850;letter-spacing:.16em}
.calendar28-period strong{display:block;margin-top:3px;color:#3c303e;font:500 1.62rem var(--serif)}
.calendar28-header-actions{display:flex;align-items:center;gap:8px}
.calendar28-switcher{display:flex;gap:3px;padding:4px;border-radius:999px;background:#eee6e5}
.calendar28-switcher button{
  padding:8px 12px;border:0;border-radius:999px;color:#776a75;background:transparent;
  cursor:pointer;font-size:.58rem;font-weight:850
}
.calendar28-switcher button.is-active{color:#9d5870;background:#fffaf6;box-shadow:0 5px 16px rgba(70,45,61,.07)}
.calendar28-tools-toggle{
  height:39px;padding:0 13px;border:0;border-radius:999px;color:#fff7f2;background:#3d2e3e;
  cursor:pointer;font-size:.56rem;font-weight:850;transform:translate(var(--mag-x,0),var(--mag-y,0))
}
.calendar28-tools-toggle span{display:inline-block;margin-left:4px;transition:transform .25s ease}
.calendar28-tools-toggle.is-open span{transform:rotate(180deg)}

.calendar28-time-legend{
  min-height:43px;display:grid;grid-template-columns:55px minmax(0,1fr) 55px;align-items:center;
  padding:7px 16px;border-bottom:1px solid var(--line);color:#91838d;background:#f6eeeb;
  font-size:.46rem;font-weight:800
}
.calendar28-time-legend>span{display:flex;align-items:center;gap:5px}
.calendar28-time-legend>span:last-child{justify-content:flex-end}
.calendar28-time-legend>span i{width:5px;height:5px;border-radius:50%;background:#bcaeb4}
.calendar28-time-legend>div{
  position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;height:28px;
  overflow:hidden;border:1px solid rgba(67,46,64,.07);border-radius:999px;
  background:linear-gradient(90deg,rgba(138,121,183,.07) 0 50%,rgba(217,143,120,.075) 50% 100%)
}
.calendar28-time-legend>div::after{
  content:"12h";position:absolute;left:50%;top:50%;translate:-50% -50%;padding:0 4px;
  color:#8c7e87;background:#f6eeeb;font-size:.4rem
}
.calendar28-time-legend b{font-size:.43rem;letter-spacing:.08em;text-align:center}
.calendar28-time-legend em{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(67,46,64,.13)}

.calendar28-tools{
  display:grid;grid-template-columns:minmax(230px,1fr) auto auto;gap:12px;align-items:center;
  max-height:0;padding:0 16px;overflow:hidden;opacity:0;background:#f2e9e7;
  transition:max-height .4s var(--ease),padding .32s ease,opacity .25s ease
}
.calendar28-tools.is-open{max-height:112px;padding:13px 16px;opacity:1;border-bottom:1px solid var(--line)}
.calendar28-search{
  height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);
  border-radius:12px;background:#fffaf6
}
.calendar28-search span{color:#a09099}
.calendar28-search input{width:100%;border:0;outline:0;color:#463a47;background:transparent;font-size:.72rem}
.calendar28-filters{display:flex;flex-wrap:wrap;gap:5px}
.calendar28-filter{
  display:flex;align-items:center;gap:6px;padding:8px 10px;border:0;border-radius:999px;
  color:#837681;background:rgba(255,255,255,.55);cursor:pointer;opacity:.5;font-size:.56rem;font-weight:850
}
.calendar28-filter i{width:7px;height:7px;border-radius:50%;background:#aaa}
.calendar28-filter.is-active{opacity:1;color:#514451;background:#fffaf6;box-shadow:0 4px 13px rgba(65,43,57,.04)}
.calendar28-filter[data-cal28-filter="couple"] i{background:var(--rose)}
.calendar28-filter[data-cal28-filter="important"] i{background:var(--gold)}
.calendar28-filter[data-cal28-filter="holiday"] i{background:#a96f87}
.calendar28-filter[data-cal28-filter="organization"] i{background:var(--sage)}
.calendar28-filter[data-cal28-filter="school"] i{background:var(--blue)}
.calendar28-reset{border:0;color:#8d7f88;background:transparent;cursor:pointer;text-decoration:underline;text-underline-offset:4px;font-size:.54rem}

.calendar28-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:690px}
.calendar28-main{min-width:0;padding:14px;border-right:1px solid var(--line);background:linear-gradient(180deg,#fffdfa,#faf5f1)}
.calendar28-view{display:none}
.calendar28-view.is-active{display:block}

.calendar28-weekday-head{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.calendar28-weekday-head span{padding:6px 5px;color:#91848d;text-align:center;font-size:.62rem;font-weight:850;text-transform:uppercase}
.calendar28-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calendar28-day{
  min-height:158px;padding:8px;overflow:hidden;border:1px solid rgba(67,46,64,.075);border-radius:13px;
  color:#403441;background:#fffdf9;text-align:left;cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease
}
.calendar28-day:hover{transform:translateY(-2px);border-color:rgba(196,119,145,.22);box-shadow:0 11px 28px rgba(67,43,59,.07)}
.calendar28-day.is-out{opacity:.32;background:#f7f0ed}
.calendar28-day.is-selected{border-color:rgba(196,119,145,.5);box-shadow:inset 0 0 0 1px rgba(196,119,145,.14),0 10px 26px rgba(67,43,59,.05)}
.calendar28-day-head{min-height:26px;display:flex;justify-content:space-between;align-items:flex-start}
.calendar28-day-head>span{font-size:.76rem;font-weight:850}
.calendar28-day.is-today .calendar28-day-head>span{
  width:27px;height:27px;display:grid;place-items:center;margin:-3px 0 0 -3px;border-radius:50%;color:white;background:#3e3040
}
.calendar28-day-head small{padding:3px 6px;border-radius:999px;color:#887a83;background:#efe6e4;font-size:.46rem;font-weight:850}
.calendar28-half-hint{
  position:relative;display:grid;grid-template-columns:1fr 1fr;margin:1px 0 5px;color:#aa9da5;
  font-size:.34rem;font-weight:800
}
.calendar28-half-hint::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(67,46,64,.09)}
.calendar28-half-hint span:last-child{text-align:right}
.calendar28-day-all-day{min-height:27px;display:grid;gap:4px}
.calendar28-all-day-chip{
  min-width:0;min-height:25px;display:grid;grid-template-columns:5px minmax(0,1fr);gap:6px;align-items:center;
  padding:5px 6px;border-radius:7px
}
.calendar28-all-day-chip i{width:5px;height:15px;border-radius:999px;background:currentColor}
.calendar28-all-day-chip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.57rem;line-height:1.2}
.calendar28-day-timed{display:grid;gap:5px;margin-top:5px}
.calendar28-timed-label{
  display:block;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:currentColor;font-size:.47rem;font-weight:850
}
.calendar28-24h-track{
  position:relative;height:11px;overflow:hidden;border:1px solid rgba(67,46,64,.065);border-radius:999px;
  background:linear-gradient(90deg,rgba(138,121,183,.075) 0 50%,rgba(217,143,120,.08) 50% 100%)
}
.calendar28-noon{position:absolute;z-index:2;left:50%;top:0;bottom:0;width:1px;background:rgba(67,46,64,.14)}
.calendar28-time-block{
  position:absolute;z-index:3;top:1px;bottom:1px;min-width:2px;border-radius:999px;background:currentColor;
  box-shadow:0 0 8px color-mix(in srgb,currentColor 28%,transparent)
}
.calendar28-mobile-summary{display:none}

.calendar28-week-list{display:grid;gap:9px}
.calendar28-week-row{
  min-height:116px;display:grid;grid-template-columns:100px minmax(0,1fr);overflow:hidden;
  border:1px solid rgba(67,46,64,.075);border-radius:16px;background:#fffdf9
}
.calendar28-week-row.is-today{border-color:rgba(196,119,145,.36)}
.calendar28-week-row.is-selected{box-shadow:inset 0 0 0 1px rgba(196,119,145,.12)}
.calendar28-week-date{
  border:0;border-right:1px solid rgba(67,46,64,.07);color:#4a3d49;background:#f3eae7;cursor:pointer;
  display:grid;place-items:center;align-content:center
}
.calendar28-week-date span{color:#9a8c95;font-size:.52rem;font-weight:850;text-transform:uppercase}
.calendar28-week-date strong{margin:2px 0;font:500 2.1rem/.9 var(--serif)}
.calendar28-week-date small{color:#988b94;font-size:.48rem;text-transform:uppercase}
.calendar28-week-content{min-width:0;display:grid;gap:7px;padding:9px}
.calendar28-week-all-day{display:flex;flex-wrap:wrap;gap:5px}
.calendar28-week-all-day-event{
  min-height:34px;display:grid;grid-template-columns:5px auto auto;gap:7px;align-items:center;padding:6px 9px;border:0;border-radius:9px;cursor:pointer
}
.calendar28-week-all-day-event>i{width:5px;height:17px;border-radius:999px;background:currentColor}
.calendar28-week-all-day-event strong{font-size:.62rem}
.calendar28-week-all-day-event span{font-size:.5rem;opacity:.78}
.calendar28-week-clock{display:grid;gap:6px}
.calendar28-week-clock-head{
  position:relative;display:grid;grid-template-columns:34px 1fr 1px 1fr 34px;gap:7px;align-items:center;
  color:#9d9098;font-size:.4rem;font-weight:850
}
.calendar28-week-clock-head b{text-align:center;letter-spacing:.08em}
.calendar28-week-clock-head i{height:15px;background:rgba(67,46,64,.14)}
.calendar28-week-clock-head span:last-child{text-align:right}
.calendar28-week-timed-event{
  min-height:45px;display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;align-items:center;padding:6px 8px;
  border:1px solid rgba(67,46,64,.05);border-radius:10px;color:#514451!important;background:#fffaf6!important;text-align:left;cursor:pointer
}
.calendar28-week-timed-copy strong{display:block;color:#4d404c;font-size:.66rem}
.calendar28-week-timed-copy span{display:block;margin-top:2px;color:currentColor;font-size:.55rem;font-weight:800}
.calendar28-week-timed-event .calendar28-24h-track{height:15px}
.calendar28-week-empty{
  min-height:35px;display:grid;place-items:center;border:1px dashed rgba(67,46,64,.08);border-radius:9px;color:#a0959c;font-size:.55rem
}

.calendar28-agenda-list{width:min(960px,100%);margin:auto;display:grid;gap:12px}
.calendar28-agenda-day{display:grid;grid-template-columns:88px minmax(0,1fr);gap:11px}
.calendar28-agenda-date{min-height:84px;border:0;border-radius:14px;color:#4d404c;background:#f0e6e4;cursor:pointer}
.calendar28-agenda-date strong{display:block;font:500 2rem/.9 var(--serif)}
.calendar28-agenda-date span{display:block;margin-top:3px;color:#8d7f88;font-size:.55rem;font-weight:850;text-transform:uppercase}
.calendar28-agenda-date small{display:block;margin-top:2px;color:#aa9da4;font-size:.48rem}
.calendar28-agenda-events{display:grid;gap:6px}
.calendar28-agenda-event{
  min-height:72px;display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:11px;align-items:center;
  padding:11px 13px;border:1px solid rgba(67,46,64,.07);border-radius:12px;color:#514451!important;background:#fffdf9!important;
  text-align:left;cursor:pointer
}
.calendar28-agenda-event>i{width:6px;height:44px;border-radius:999px;background:currentColor}
.calendar28-agenda-event strong{display:block;font-size:.76rem}
.calendar28-agenda-event span{display:block;margin-top:3px;color:#837680;font-size:.63rem;line-height:1.45}
.calendar28-agenda-event>small{color:#9f929a;font-size:.46rem;font-weight:850;letter-spacing:.08em}
.calendar28-no-result{min-height:480px;display:grid;place-items:center;align-content:center;color:#8e818a;text-align:center}
.calendar28-no-result>span{color:#b36a82;font-size:2rem}
.calendar28-no-result strong{font:500 1.9rem var(--serif)}
.calendar28-no-result p{font-size:.68rem}

.calendar28-details{
  padding:24px 21px;display:flex;flex-direction:column;
  background:radial-gradient(circle at 78% 7%,rgba(196,119,145,.09),transparent 28%),linear-gradient(180deg,#f7efec,#ede2e1)
}
.calendar28-details-date{padding-bottom:16px;border-bottom:1px solid var(--line)}
.calendar28-details-date>small{display:block;color:#988a94;font-size:.48rem;font-weight:850;letter-spacing:.14em}
.calendar28-details-date>div{display:flex;align-items:end;gap:10px;margin-top:6px}
.calendar28-details-date strong{color:#3e313f;font:500 4.7rem/.78 var(--serif)}
.calendar28-details-date span{padding-bottom:4px;color:#716470;font:500 1.18rem var(--serif);text-transform:capitalize}
.calendar28-day-snapshot{
  position:relative;display:grid;grid-template-columns:1fr 1px 1fr;gap:9px;align-items:center;margin:14px 0 3px;padding:8px 10px;
  border:1px solid rgba(67,46,64,.07);border-radius:12px;
  background:linear-gradient(90deg,rgba(138,121,183,.065) 0 50%,rgba(217,143,120,.07) 50% 100%)
}
.calendar28-day-snapshot>div{display:flex;justify-content:space-between;align-items:center;color:#958790;font-size:.4rem}
.calendar28-day-snapshot b{font-size:.39rem;letter-spacing:.07em}
.calendar28-day-snapshot>i{height:22px;background:rgba(67,46,64,.14)}
.calendar28-details-content{flex:1;padding-top:15px}
.calendar28-detail-event{display:grid;grid-template-columns:6px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid rgba(67,46,64,.075);background:transparent!important}
.calendar28-detail-event>i{width:6px;border-radius:999px;background:currentColor}
.calendar28-detail-event strong{display:block;color:#4a3d49;font-size:.76rem;line-height:1.3}
.calendar28-detail-event span{display:block;margin-top:4px;color:#7e717b;font-size:.62rem;line-height:1.55}
.calendar28-detail-event .calendar28-time-row{margin-top:7px}
.calendar28-detail-event .calendar28-24h-track{height:13px}
.calendar28-empty-day{color:#8b7e87;font-size:.68rem;line-height:1.65}
.calendar28-next-meeting{margin-top:22px;padding:14px;border:1px solid rgba(67,46,64,.08);border-radius:14px;background:rgba(255,255,255,.58)}
.calendar28-next-meeting small{display:block;color:#9d8f98;font-size:.44rem;font-weight:850;letter-spacing:.13em}
.calendar28-next-meeting strong{display:block;margin-top:4px;color:#654959;font:500 1.06rem/1.35 var(--serif)}

.cal28-together-pierre{background:#ece7f5!important;color:#706095!important}
.cal28-together-leonor{background:#f8e6df!important;color:#a9604b!important}
.cal28-milestone{background:#f3e2e9!important;color:#9f526d!important}
.cal28-birthday{background:#f4e9d5!important;color:#8c6c39!important}
.cal28-holiday{background:#f1eadb!important;color:#8d7040!important}
.cal28-localholiday{background:#f3dfd8!important;color:#975a4b!important}
.cal28-event{background:#f1e1e8!important;color:#975c73!important}
.cal28-work{background:#edeaee!important;color:#746f79!important}
.cal28-custody{background:#e5eee8!important;color:#587667!important}
.cal28-zoneb{background:#e3ebf3!important;color:#587591!important}
.cal28-zonec{background:#eee9dc!important;color:#826f47!important}

.calendar28-bottom{
  min-height:52px;padding:10px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  border-top:1px solid var(--line);color:#877983;background:#f1e8e6;font-size:.5rem
}
.calendar28-route-legend{display:flex;gap:12px}
.calendar28-route-legend span{display:flex;align-items:center;gap:6px}
.calendar28-route-legend i{width:22px;height:6px;border-radius:999px}
.calendar28-route-legend .p-to-l{background:var(--lavender)}
.calendar28-route-legend .l-to-p{background:var(--peach)}
#cal28-status{text-align:center}
.calendar28-bottom>small{text-align:right;font-size:.44rem;line-height:1.45}
.calendar28-shell.is-refreshing .calendar28-view.is-active{animation:cal28ViewIn .3s ease}
.cal28-pop{animation:cal28Pop .36s ease var(--cal-delay,0ms) both}
@keyframes cal28ViewIn{from{opacity:.42;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes cal28Pop{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* =========================================================
   IDEAS / TOGETHER
   ========================================================= */
.together-section{
  color:white;
  background:
    radial-gradient(circle at 12% 12%,rgba(196,119,145,.15),transparent 26%),
    radial-gradient(circle at 87% 80%,rgba(122,104,176,.14),transparent 27%),
    linear-gradient(145deg,#191625,#30283f 58%,#53384b);
}
.idea-stage{
  width:min(1370px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.idea-panel{
  position:relative;
  min-height:285px;
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.095);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.032));
  box-shadow:0 20px 50px rgba(0,0,0,.1);
  transition:box-shadow .25s ease,border-color .25s ease;
}
.idea-panel:hover{border-color:rgba(255,255,255,.16);box-shadow:0 25px 65px rgba(0,0,0,.16)}
.idea-panel__top{display:flex;justify-content:space-between;align-items:start}
.idea-panel__icon{font-size:1.85rem;filter:drop-shadow(0 6px 14px rgba(0,0,0,.12))}
.idea-panel__number{color:rgba(255,255,255,.11);font:500 2rem var(--serif)}
.idea-panel__rhythm{
  display:inline-flex;
  margin-bottom:8px;
  padding:4px 8px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:#d8ced8;
  background:rgba(255,255,255,.035);
  font-size:.43rem;
}
.idea-panel h3{margin:0 0 8px;color:#fff8f4;font:500 1.95rem/.97 var(--serif)}
.idea-panel p{margin:0;color:#d7ced8;font-size:.69rem;line-height:1.68}
.idea-panel__spark{
  position:absolute;
  right:18px;bottom:15px;
  color:rgba(255,226,205,.14);
  transition:.3s ease;
}
.idea-panel:hover .idea-panel__spark{color:rgba(255,226,205,.65);transform:rotate(16deg) translateY(-4px)}
.idea-panel--letter{background:linear-gradient(145deg,rgba(182,101,132,.23),rgba(255,255,255,.04))}
.idea-panel--travel{background:linear-gradient(145deg,rgba(92,126,166,.2),rgba(255,255,255,.04))}
.idea-panel--game{background:linear-gradient(145deg,rgba(126,107,169,.21),rgba(255,255,255,.04))}
.idea-panel--movie{background:linear-gradient(145deg,rgba(174,116,100,.2),rgba(255,255,255,.04))}
.idea-panel--bivouac{background:linear-gradient(145deg,rgba(83,128,111,.2),rgba(255,255,255,.04))}
.idea-panel--book{background:linear-gradient(145deg,rgba(156,120,82,.2),rgba(255,255,255,.04))}

/* =========================================================
   BOOKS
   ========================================================= */
.books-section{
  background:
    radial-gradient(circle at 80% 12%,rgba(208,170,108,.08),transparent 25%),
    linear-gradient(180deg,#f7f0ea,#eee3df);
}
.books-real{
  width:min(1250px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.real-book{display:grid;grid-template-rows:auto 1fr}
.real-book__cover{
  position:relative;
  width:78%;
  margin:auto;
  aspect-ratio:.66;
  overflow:hidden;
  border-radius:6px 16px 16px 6px;
  background:#34283a;
  box-shadow:-18px 28px 55px rgba(45,31,44,.19);
  transform:perspective(900px) rotateY(-5deg);
  transition:transform .38s var(--ease),box-shadow .38s ease;
}
.real-book__cover::before{
  content:"";
  position:absolute;
  z-index:4;
  left:7px;top:0;bottom:0;
  width:1px;
  background:rgba(255,255,255,.22);
}
.real-book__cover img{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:cover}
.cover-fallback{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.25);
  font:500 5rem var(--serif);
}
.real-book:hover .real-book__cover{
  transform:perspective(900px) rotateY(-1deg) translateY(-6px);
  box-shadow:-12px 32px 68px rgba(45,31,44,.23);
}
.real-book__copy{position:relative;padding:23px 10px}
.real-book__copy>span{
  position:absolute;
  right:10px;top:5px;
  color:rgba(50,42,61,.1);
  font:500 3.5rem var(--serif);
}
.real-book__copy h3{
  max-width:320px;
  margin:0;
  color:#342b3d;
  font:500 2.12rem/.95 var(--serif);
}
.real-book__links{display:flex;gap:6px;margin-top:15px}
.real-book__links a{
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.62);
  font-size:.56rem;
  font-weight:800;
  transition:.22s ease;
}
.real-book__links a:hover{transform:translateY(-2px);background:white}
.real-book.book-awake-v15 .real-book__cover::after{
  content:"";
  position:absolute;
  z-index:5;
  left:-75%;top:-20%;
  width:35%;height:140%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.23),transparent);
  transform:rotate(14deg);
  animation:bookSweep 5.8s ease-in-out infinite 1s;
}
@keyframes bookSweep{
  0%,58%{left:-75%;opacity:0}
  64%{opacity:1}
  80%{left:140%;opacity:0}
  100%{left:140%;opacity:0}
}

/* =========================================================
   INTIMATE
   ========================================================= */
.intimate-section{
  color:white;
  background:
    radial-gradient(circle at 76% 8%,rgba(202,112,145,.17),transparent 27%),
    radial-gradient(circle at 15% 86%,rgba(109,77,102,.13),transparent 24%),
    linear-gradient(150deg,#241724,#0d0c13);
}
.intimate-picker{
  width:min(1260px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:250px 1fr;
  gap:13px;
}
.intimate-tabs{display:grid;gap:6px;align-content:start}
.intimate-tab{
  padding:13px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:14px;
  color:#bfb3bd;
  background:rgba(255,255,255,.032);
  text-align:left;
  cursor:pointer;
  transition:.22s ease;
}
.intimate-tab:hover{background:rgba(255,255,255,.07)}
.intimate-tab span{display:block;color:rgba(255,255,255,.2);font:500 1.45rem var(--serif)}
.intimate-tab strong{font-size:.64rem}
.intimate-tab.is-active{
  color:#382634;
  background:#f1e5e0;
  transform:translateX(4px);
}
.intimate-tab.is-active span{color:rgba(56,38,52,.38)}
.intimate-display{
  min-height:540px;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.075);
  border-radius:27px;
  background:rgba(255,255,255,.032);
}
.intimate-photo{
  display:grid;
  place-items:center;
  padding:16px;
  overflow:hidden;
  background:#f5f0ec;
}
.intimate-photo.has-two{grid-template-columns:1fr 1fr}
.intimate-photo img{
  width:100%;height:100%;
  max-height:510px;
  object-fit:contain;
  transition:transform .55s var(--ease);
}
.intimate-display:hover .intimate-photo img{transform:scale(1.02)}
.intimate-copy{
  padding:37px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.intimate-copy h3{
  margin:0;
  color:#fff7f2;
  font:500 clamp(3rem,5vw,5rem)/.9 var(--serif);
}
.intimate-copy>p:not(.eyebrow){
  color:#cbbec7;
  font-size:.73rem;
  line-height:1.72;
}
.intimate-links{display:grid;gap:6px;margin-top:20px}
.intimate-links a{
  display:flex;
  justify-content:space-between;
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:11px;
  background:rgba(255,255,255,.04);
  font-size:.62rem;
  transition:.22s ease;
}
.intimate-links a:hover{transform:translateX(3px);background:rgba(255,255,255,.08)}

/* =========================================================
   BOOK OF US V30 — memories + reunions + long texts
   ========================================================= */
.archive-book-divider{
  background:linear-gradient(180deg,#0d0c13,#eee4dc);
}
.archive-book-divider p{color:#81737b}

.book30-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 10%,rgba(160,119,83,.08),transparent 25%),
    radial-gradient(circle at 86% 78%,rgba(190,108,139,.08),transparent 28%),
    linear-gradient(180deg,#eee4dc,#faf4ed);
}
.book30-section::before{
  content:"";
  position:absolute;
  width:520px;height:520px;
  left:-260px;bottom:-270px;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(208,170,108,.11),transparent 68%);
  animation:book30Aura 9s ease-in-out infinite alternate;
}
@keyframes book30Aura{
  to{transform:translate(45px,-26px) scale(1.08);opacity:.55}
}
.book30-title{margin-bottom:40px}
.book30-title h2 em{color:#a65b73}

.book30-library{
  position:relative;
  z-index:2;
  width:min(1180px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:290px minmax(0,1fr);
  gap:18px;
  align-items:stretch;
}
.book30-cover{
  --mag-x:0px;--mag-y:0px;
  position:relative;
  min-height:430px;
  padding:30px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:0;
  border-radius:20px 7px 7px 20px;
  color:#f4e7df;
  text-align:center;
  cursor:pointer;
  background:
    radial-gradient(circle at 50% 23%,rgba(218,166,137,.16),transparent 30%),
    linear-gradient(145deg,#5a2c3e,#2d1b29 68%,#1c141c);
  box-shadow:-12px 30px 68px rgba(52,32,39,.22),inset -9px 0 18px rgba(0,0,0,.16);
  transform:translate(var(--mag-x),var(--mag-y));
  transition:box-shadow .28s ease;
}
.book30-cover:hover{box-shadow:-14px 37px 80px rgba(52,32,39,.27),inset -9px 0 18px rgba(0,0,0,.16)}
.book30-cover::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(231,195,162,.2);
  border-radius:13px 4px 4px 13px;
}
.book30-cover::after{
  content:"";
  position:absolute;
  top:-25%;left:-45%;
  width:26%;height:150%;
  background:linear-gradient(90deg,transparent,rgba(255,236,220,.15),transparent);
  transform:rotate(13deg);
  animation:book30Shine 7s ease-in-out infinite;
}
@keyframes book30Shine{
  0%,58%{left:-45%;opacity:0}
  64%{opacity:1}
  82%{left:125%;opacity:0}
  100%{left:125%;opacity:0}
}
.book30-cover__ornament{position:relative;z-index:2;color:#d7ae79;font:500 2.25rem var(--serif)}
.book30-cover>small{
  position:relative;z-index:2;
  margin-top:13px;
  color:#c0aeb1;
  font-size:.43rem;
  font-weight:850;
  letter-spacing:.18em;
}
.book30-cover>strong{
  position:relative;z-index:2;
  margin:16px 0 12px;
  color:#f8eae3;
  font:500 3rem/.88 var(--serif);
  letter-spacing:-.045em;
}
.book30-cover>p{
  position:relative;z-index:2;
  margin:0;
  color:#ccb9b9;
  font-size:.52rem;
}
.book30-cover>p span{color:#e2bd82;font-weight:900}
.book30-cover>i{
  position:relative;z-index:2;
  width:62px;height:1px;
  margin-top:18px;
  background:linear-gradient(90deg,transparent,#c89a6f,transparent);
}
.book30-cover__cta{
  position:relative;z-index:2;
  margin-top:19px;
  color:#dfc8bb;
  font-size:.5rem;
  font-weight:850;
}
.book30-ribbon{
  position:absolute;
  z-index:3;
  top:0;right:30px;
  width:20px;height:76px;
  background:linear-gradient(#a45d74,#7d4056);
  box-shadow:0 6px 15px rgba(0,0,0,.16);
}
.book30-ribbon::after{
  content:"";
  position:absolute;
  left:0;bottom:-9px;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:9px solid #7d4056;
}

.book30-index{
  position:relative;
  min-height:430px;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  padding:22px;
  overflow:hidden;
  border:1px solid rgba(78,54,59,.075);
  border-radius:22px;
  background:rgba(255,250,244,.78);
  box-shadow:0 24px 58px rgba(72,45,54,.08);
  backdrop-filter:blur(8px);
}
.book30-index__head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:14px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(78,54,59,.07);
}
.book30-index__head small{
  display:block;
  color:#a18f97;
  font-size:.42rem;
  font-weight:850;
  letter-spacing:.15em;
}
.book30-index__head strong{
  display:block;
  margin-top:3px;
  color:#43363f;
  font:500 1.85rem var(--serif);
}
.book30-index__head>span{color:#b29577;font:500 .8rem var(--serif)}

.book30-tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin:13px 0 10px;
}
.book30-tabs button{
  position:relative;
  min-height:56px;
  display:grid;
  grid-template-columns:28px 1fr auto;
  gap:7px;
  align-items:center;
  padding:8px 9px;
  border:1px solid rgba(78,54,59,.06);
  border-radius:12px;
  color:#75676d;
  background:#f6eee8;
  text-align:left;
  cursor:pointer;
  transition:.22s ease;
}
.book30-tabs button:hover{transform:translateY(-2px);background:#fffaf4}
.book30-tabs button.is-active{
  color:#503d47;
  background:#fffaf4;
  border-color:rgba(166,91,115,.17);
  box-shadow:0 8px 20px rgba(72,45,54,.06);
}
.book30-tabs button>span{
  width:28px;height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#a45d74;
  background:#efe2df;
}
.book30-tabs strong{font:600 .6rem var(--sans)}
.book30-tabs small{
  min-width:22px;height:22px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:#9b7d83;
  background:#eee3df;
  font-size:.42rem;
  font-weight:900;
}
.book30-list-wrap{
  min-height:0;
  overflow:auto;
  padding-right:5px;
  scrollbar-width:thin;
  scrollbar-color:#ccb9ae transparent;
}
.book30-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.book30-entry{
  min-height:70px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:9px;
  border:1px solid rgba(78,54,59,.06);
  border-radius:11px;
  color:#594a51;
  background:#fffaf4;
  text-align:left;
  cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease;
}
.book30-entry:hover{
  transform:translateY(-1px);
  border-color:rgba(166,91,115,.17);
  background:#fffdf9;
  box-shadow:0 9px 22px rgba(67,43,54,.055);
}
.book30-entry>span{color:#b49375;font:500 .86rem var(--serif)}
.book30-entry small{
  display:block;
  overflow:hidden;
  color:#9b8c92;
  font-size:.39rem;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.book30-entry strong{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:#493b42;
  font:500 .75rem var(--serif);
  white-space:nowrap;
  text-overflow:ellipsis;
}
.book30-entry>i{color:#b27789;font-style:normal;transition:transform .2s ease}
.book30-entry:hover>i{transform:translateX(3px)}
.book30-entry--visit>span{color:#7e719f}
.book30-entry--letter>span{color:#9d6f50}

.book30-index__foot{
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:12px;
  color:#978991;
  border-top:1px solid rgba(78,54,59,.06);
  font-size:.44rem;
}
.book30-index__foot>span{max-width:55%}
.book30-index__foot i{flex:1;height:1px;background:#ddced0}
.book30-index__foot small{text-align:right}

.book30-reader-backdrop{
  position:fixed;
  z-index:700;
  inset:0;
  opacity:0;
  visibility:hidden;
  background:rgba(16,12,21,.67);
  backdrop-filter:blur(8px);
  transition:.3s ease;
}
.book30-reader-backdrop.is-open{opacity:1;visibility:visible}
.book30-reader{
  position:fixed;
  z-index:710;
  inset:22px;
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.3s ease;
}
.book30-reader.is-open{opacity:1;visibility:visible;pointer-events:auto}
.book30-reader__paper{
  position:relative;
  width:min(930px,100%);
  height:min(820px,calc(100vh - 44px));
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr) auto;
  padding:28px 34px 20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.68);
  border-radius:24px;
  color:#473940;
  background:
    radial-gradient(circle at 88% 8%,rgba(181,111,136,.045),transparent 25%),
    repeating-linear-gradient(0deg,transparent 0 31px,rgba(84,58,54,.018) 32px),
    linear-gradient(90deg,#fffaf1,#f8eee3);
  box-shadow:0 48px 140px rgba(11,8,14,.38);
}
.book30-reader__paper::before{
  content:"";
  position:absolute;
  left:49%;top:0;bottom:0;
  width:32px;
  translate:-50% 0;
  pointer-events:none;
  opacity:.16;
  background:linear-gradient(90deg,transparent,rgba(68,45,42,.18),transparent);
}
.book30-reader__head{
  position:relative;z-index:2;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:start;
  padding-bottom:14px;
  border-bottom:1px solid rgba(78,54,59,.08);
}
.book30-reader__identity{display:flex;align-items:center;gap:12px}
.book30-reader__identity>span{
  width:47px;height:47px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#94556b;
  background:#efe0d9;
  font:600 1.1rem var(--serif);
}
.book30-reader__paper.is-pierre .book30-reader__identity>span{color:#68598d;background:#e7e2ef}
.book30-reader__paper.is-nous .book30-reader__identity>span{color:#956b40;background:#efe3cf}
.book30-reader__identity small{display:block;color:#a27d61;font-size:.42rem;font-weight:850;letter-spacing:.13em}
.book30-reader__identity strong{display:block;margin-top:3px;color:#403239;font:500 1.95rem var(--serif)}
.book30-reader__head>button{
  width:39px;height:39px;border:0;border-radius:50%;
  color:#66565f;background:#eee3df;cursor:pointer;font-size:1.05rem;transition:.2s ease
}
.book30-reader__head>button:hover{transform:rotate(6deg);background:#e8dbd6}
.book30-reader__meta{
  position:relative;z-index:2;
  display:flex;align-items:center;gap:9px;
  padding:11px 3px 8px;color:#85777e;font-size:.54rem
}
.book30-reader__meta strong{color:#5b4851}
.book30-reader__meta small{color:#a09398}
.book30-reader__memory-mark{
  position:relative;z-index:2;
  display:flex;align-items:center;gap:8px;
  padding:3px 3px 11px;color:#a19399
}
.book30-reader__memory-mark>span{color:#bd916a}
.book30-reader__memory-mark i{width:38px;height:1px;background:#dac8bd}
.book30-reader__memory-mark small{font-size:.42rem;font-weight:850;letter-spacing:.13em}
.book30-reader__paper.is-letter .book30-reader__memory-mark>span{color:#a65d75}
.book30-reader__paper.is-visit .book30-reader__memory-mark>span{color:#7c6fa0}
.book30-reader__text-wrap{
  position:relative;z-index:2;
  min-height:0;overflow:auto;
  padding:8px 16px 22px 4px;
  scrollbar-width:thin;scrollbar-color:#cbb5a6 transparent
}
.book30-reader__text{
  width:min(705px,100%);
  margin:auto;
  color:#4a3c42;
  font:500 clamp(1.06rem,1.24vw,1.24rem)/1.8 var(--serif);
}
.book30-reader__text p{margin:0 0 1.22em}
.book30-reader__text p:first-child::first-letter{
  float:left;margin:7px 9px 0 0;color:#a45d74;font:500 4rem/.7 var(--serif)
}
.book30-reader__paper.is-pierre .book30-reader__text p:first-child::first-letter{color:#706095}
.book30-reader__paper.is-nous .book30-reader__text p:first-child::first-letter{color:#a37a4e}
.book30-reader__paper.is-memory .book30-reader__text{max-width:650px;font-size:clamp(1.2rem,1.5vw,1.46rem);line-height:1.72}
.book30-reader__paper.is-visit .book30-reader__text{max-width:610px;text-align:center;font-size:clamp(1.25rem,1.7vw,1.58rem);line-height:1.65}
.book30-reader__footer{
  position:relative;z-index:2;
  min-height:55px;padding:12px 0 0;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;
  border-top:1px solid rgba(78,54,59,.08);background:transparent
}
.book30-reader__footer button{
  display:flex;align-items:center;gap:7px;border:0;color:#735f68;background:transparent;
  cursor:pointer;font-size:.57rem;font-weight:850
}
.book30-reader__footer button:last-child{justify-self:end}
.book30-reader__folio{display:flex;align-items:center;gap:7px;color:#9a898f;font-size:.5rem;font-weight:850}
.book30-reader__folio i{width:44px;height:1px;background:linear-gradient(90deg,#b99573,#ddcab6)}
.book30-reader__paper.is-turning{animation:book30Turn .44s var(--ease)}
@keyframes book30Turn{
  from{opacity:.28;transform:perspective(1200px) rotateY(-2.4deg) translateX(8px)}
  to{opacity:1;transform:none}
}

/* =========================================================
   FOOTER
   ========================================================= */
footer{
  min-height:170px;
  padding:48px 20px 58px;
  display:grid;
  place-items:center;
  align-content:center;
  color:white;
  background:
    radial-gradient(circle at 50% 0%,rgba(196,119,145,.1),transparent 30%),
    #0b0a10;
}
footer>span{color:#e0bc7f;font:500 2.2rem var(--serif)}
footer>small{color:#817985}

/* =========================================================
   REVEAL / INTERACTION SYSTEM
   ========================================================= */
.reveal-v13{
  opacity:0;
  transform:translateY(22px);
  filter:blur(3px);
  transition:
    opacity .72s ease var(--reveal-delay,0ms),
    transform .72s var(--ease) var(--reveal-delay,0ms),
    filter .72s ease var(--reveal-delay,0ms);
}
.reveal-v13.is-visible{opacity:1;transform:none;filter:none}
.v13-glow-card{
  position:relative;
  isolation:isolate;
}
.v13-glow-card::before{
  content:"";
  position:absolute;
  z-index:20;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,238,229,.13),transparent 33%);
  transition:.25s ease;
}
.v13-glow-card:hover::before{opacity:1}
.tilt-v15{
  transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translate3d(var(--tx,0),var(--ty,0),0);
  transform-style:preserve-3d;
  transition:transform .18s ease-out;
}

/* =========================================================
   TABLET
   ========================================================= */
@media(max-width:1100px){
  .section-title{grid-template-columns:1fr;gap:22px}
  .hero__content{width:72%}
  .hero-constellation{opacity:.7}
  .hero-portals{opacity:.7}
  .reunion-quick__inner{grid-template-columns:1fr 1fr}
  .reunion-quick__intro{grid-column:1/-1}
  .little-grid{grid-template-columns:1fr 1fr}
  .sky-card{grid-column:1/-1;min-height:465px}
  .calendar28-body{grid-template-columns:minmax(0,1fr) 285px}
  .calendar28-header{grid-template-columns:auto 1fr}
  .calendar28-header-actions{grid-column:1/-1;justify-content:center}
  .calendar28-tools{grid-template-columns:1fr}
  .calendar28-tools.is-open{max-height:230px}
  .calendar28-filters{justify-content:center}
  .calendar28-reset{justify-self:center}
  .idea-stage{grid-template-columns:repeat(2,1fr)}
  .intimate-picker{grid-template-columns:1fr}
  .intimate-tabs{display:flex;overflow:auto;scrollbar-width:none}
  .intimate-tab{min-width:170px}
}

/* =========================================================
   MOBILE
   ========================================================= */
@media(max-width:760px){
  html{scroll-padding-top:72px}
  .cursor-aura-v15{display:none}
  .section{padding:86px 12px}
  .section::after{width:300px;height:300px;right:-190px}
  .section-title{margin-bottom:34px;padding:0 3px}
  .section-title h2{font-size:clamp(3rem,14vw,4.8rem)}
  .section-title>p{font-size:.7rem}
  .chapter-divider{min-height:116px}
  .chapter-divider p{font-size:.92rem}


  .hero{padding:108px 18px 190px;align-items:flex-start}
  .hero__content{width:100%;margin-top:40px}
  .hero h1{font-size:clamp(4rem,18vw,6.5rem)}
  .hero__lead{font-size:.8rem}
  .hero__buttons{display:grid}
  .hero-constellation{right:-45%;top:18%;width:105vw;opacity:.28}
  .hero-portals{display:none}
  .hero__metrics{left:12px;right:12px;bottom:20px;grid-template-columns:repeat(2,1fr);gap:5px}
  .hero__metrics article{min-height:67px;padding:9px}
  .hero__metrics strong{font-size:1.46rem}
  .scroll-hint{display:none}

  .reunion-quick-v17{padding:31px 13px 37px}
  .reunion-quick__inner{grid-template-columns:1fr}
  .reunion-countdown-card{min-height:142px}
  .reunion-upcoming-list{grid-template-columns:1fr 1fr}

  .memory-main{min-height:600px;border-radius:25px}
  .memory-main__content{left:22px;right:22px;bottom:44px;width:auto}
  .memory-main__content h3{font-size:3.05rem}
  .memory-main__content>p:last-child{font-size:.7rem}
  .memory-arrow{width:41px;height:41px}
  .memory-dates{display:flex;overflow:auto;gap:4px;scrollbar-width:none}
  .memory-date-btn{min-width:125px}

  .constellation-section{padding-left:8px;padding-right:8px}
  .constellation-title{padding:0 8px}
  .constellation-universe{height:690px;border-radius:26px}
  .constellation-center{width:115px;height:115px}
  .constellation-center__rings i:nth-child(1){width:145px;height:145px}
  .constellation-center__rings i:nth-child(2){width:200px;height:200px}
  .constellation-center__rings i:nth-child(3){width:255px;height:255px}
  .constellation-node{width:38px;height:38px}
  .constellation-node>i{width:9px;height:9px}
  .constellation-node span{display:none}
  .constellation-letter{bottom:16px;width:calc(100% - 24px);padding:19px;border-radius:19px}
  .constellation-letter blockquote{font-size:1.35rem}
  .constellation-whisper{top:66%}

  .little-grid{grid-template-columns:1fr}
  .sky-card{grid-column:auto;min-height:500px}
  .sky-card__content{width:88%;padding:25px}
  .journey-card{min-height:470px;padding:24px}
  .journey-dates{grid-template-columns:1fr}
  .flip-note,.flip-note__inner{min-height:230px}

  .calendar28-section{padding-left:7px!important;padding-right:7px!important}
  .calendar28-title{padding:0 7px}
  .calendar28-shell{border-radius:22px}
  .calendar28-header{
    position:sticky;
    z-index:34;
    top:68px;
    grid-template-columns:1fr;
    gap:8px;
    padding:9px;
    background:rgba(255,249,246,.96);
    backdrop-filter:blur(16px);
  }
  .calendar28-period{grid-row:1}
  .calendar28-navigation{justify-content:center}
  .calendar28-header-actions{grid-column:auto;display:grid;justify-items:center}
  .calendar28-switcher{max-width:100%;overflow:auto;scrollbar-width:none}
  .calendar28-tools.is-open{max-height:280px;padding:11px 9px}
  .calendar28-filters{justify-content:flex-start;overflow:auto;flex-wrap:nowrap;scrollbar-width:none}
  .calendar28-filter{white-space:nowrap}
  .calendar28-body{grid-template-columns:1fr}
  .calendar28-main{padding:6px;border-right:0}
  .calendar28-details{min-height:270px;padding:18px;border-top:1px solid var(--line)}
  .calendar28-details-date strong{font-size:3.4rem}
  .calendar28-weekday-head{gap:2px}
  .calendar28-weekday-head span{padding:5px 0;font-size:.47rem}
  .calendar28-month-grid{gap:2px}
  .calendar28-day{min-height:70px;padding:5px;border-radius:8px}
  .calendar28-day-head{min-height:22px}
  .calendar28-day-head>span{font-size:.58rem}
  .calendar28-day-head small{display:none}
  .calendar28-event-list{display:none}
  .calendar28-mobile-dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:8px}
  .calendar28-mobile-dots i{width:6px;height:6px;border-radius:50%;background:currentColor}
  .calendar28-week-row{grid-template-columns:72px minmax(0,1fr)}
  .calendar28-week-date strong{font-size:1.8rem}
  .calendar28-week-content{padding:7px}
  .calendar28-week-event{min-height:50px;padding:8px 9px}
  .calendar28-week-event strong{font-size:.68rem}
  .calendar28-week-event span{font-size:.58rem}
  .calendar28-agenda-day{grid-template-columns:58px minmax(0,1fr)}
  .calendar28-agenda-date{min-height:74px}
  .calendar28-agenda-date strong{font-size:1.65rem}
  .calendar28-agenda-event{grid-template-columns:5px minmax(0,1fr);padding:9px}
  .calendar28-agenda-event>small{display:none}
  .calendar28-agenda-event strong{font-size:.69rem}
  .calendar28-agenda-event span{font-size:.57rem}
  .calendar28-bottom{grid-template-columns:1fr;gap:5px}
  .calendar28-route-legend{overflow:auto}
  #cal28-status{text-align:left}
  .calendar28-bottom>small{text-align:left}

  .idea-stage{
    display:flex;
    gap:8px;
    overflow:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .idea-panel{min-width:84%;scroll-snap-align:center}

  .books-real{grid-template-columns:1fr;gap:44px}
  .real-book__cover{width:min(290px,75%)}
  .real-book__copy{width:min(360px,95%);margin:auto;text-align:center}
  .real-book__copy h3{margin:auto}
  .real-book__links{justify-content:center}

  .intimate-display{grid-template-columns:1fr}
  .intimate-photo{min-height:360px;padding:7px}
  .intimate-copy{padding:26px}
  .intimate-copy h3{font-size:3.2rem}


  footer{padding-bottom:96px}
  .tilt-v15{transform:none!important}
}

/* =========================================================
   SMALL PHONE
   ========================================================= */
@media(max-width:430px){
  .reunion-upcoming-list{grid-template-columns:1fr}
  .calendar28-day{min-height:63px}
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  .reveal-v13{opacity:1!important;transform:none!important;filter:none!important}
  .tilt-v15{transform:none!important}
  .cursor-aura-v15,.floating-hearts-v15{display:none!important}
}

@media(max-width:1100px){
  .calendar28-body{grid-template-columns:minmax(0,1fr) 300px}
  .calendar28-header{grid-template-columns:auto 1fr}
  .calendar28-header-actions{grid-column:1/-1;justify-content:center}
  .calendar28-tools{grid-template-columns:1fr}
  .calendar28-tools.is-open{max-height:230px}
  .calendar28-filters{justify-content:center}
  .calendar28-reset{justify-self:center}
}
@media(max-width:760px){
  .calendar28-section{padding-left:7px!important;padding-right:7px!important}
  .calendar28-title{padding:0 7px}
  .calendar28-shell{border-radius:22px}
  .calendar28-header{
    position:sticky;z-index:34;top:68px;grid-template-columns:1fr;gap:8px;padding:9px;
    background:rgba(255,249,246,.96);backdrop-filter:blur(16px)
  }
  .calendar28-period{grid-row:1}
  .calendar28-navigation{justify-content:center}
  .calendar28-header-actions{grid-column:auto;display:grid;justify-items:center}
  .calendar28-switcher{max-width:100%;overflow:auto;scrollbar-width:none}
  .calendar28-time-legend{grid-template-columns:35px minmax(0,1fr) 35px;padding:6px 8px}
  .calendar28-time-legend>div b{font-size:.36rem}
  .calendar28-tools.is-open{max-height:280px;padding:11px 9px}
  .calendar28-filters{justify-content:flex-start;overflow:auto;flex-wrap:nowrap;scrollbar-width:none}
  .calendar28-filter{white-space:nowrap}
  .calendar28-body{grid-template-columns:1fr}
  .calendar28-main{padding:6px;border-right:0}
  .calendar28-details{min-height:290px;padding:18px;border-top:1px solid var(--line)}
  .calendar28-details-date strong{font-size:3.4rem}
  .calendar28-weekday-head{gap:2px}
  .calendar28-weekday-head span{padding:5px 0;font-size:.47rem}
  .calendar28-month-grid{gap:2px}
  .calendar28-day{min-height:76px!important;padding:5px;border-radius:8px}
  .calendar28-day-head{min-height:22px}
  .calendar28-day-head>span{font-size:.58rem}
  .calendar28-day-head small{display:none}
  .calendar28-half-hint,.calendar28-day-all-day,.calendar28-day-timed{display:none!important}
  .calendar28-mobile-summary{
    position:relative;display:block!important;height:30px;margin-top:7px;overflow:hidden;
    border:1px solid rgba(67,46,64,.055);border-radius:7px;
    background:linear-gradient(90deg,rgba(138,121,183,.07) 0 50%,rgba(217,143,120,.075) 50% 100%)
  }
  .calendar28-mobile-summary::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(67,46,64,.12)}
  .calendar28-mobile-summary>i{
    position:relative;z-index:3;display:inline-block;width:6px;height:6px;margin:3px 1px 0 3px;border-radius:50%;background:currentColor
  }
  .calendar28-mobile-summary>span{
    position:absolute;z-index:2;bottom:4px;height:7px;min-width:3px;border-radius:999px;background:currentColor!important
  }
  .calendar28-week-row{grid-template-columns:68px minmax(0,1fr)!important}
  .calendar28-week-date strong{font-size:1.8rem}
  .calendar28-week-content{padding:7px}
  .calendar28-week-timed-event{grid-template-columns:1fr!important;gap:6px}
  .calendar28-week-clock-head{grid-template-columns:28px 1fr 1px 1fr 28px;gap:4px}
  .calendar28-week-clock-head b{font-size:.35rem}
  .calendar28-week-all-day-event{grid-template-columns:5px minmax(0,1fr)}
  .calendar28-week-all-day-event span{grid-column:2}
  .calendar28-agenda-day{grid-template-columns:58px minmax(0,1fr)}
  .calendar28-agenda-date{min-height:74px}
  .calendar28-agenda-date strong{font-size:1.65rem}
  .calendar28-agenda-event{grid-template-columns:5px minmax(0,1fr);padding:9px}
  .calendar28-agenda-event>small{display:none}
  .calendar28-agenda-event strong{font-size:.69rem}
  .calendar28-agenda-event span{font-size:.57rem}
  .calendar28-bottom{grid-template-columns:1fr;gap:5px}
  .calendar28-route-legend{overflow:auto}
  #cal28-status{text-align:left}
  .calendar28-bottom>small{text-align:left}
}


@media(max-width:1100px){
  .book30-library{grid-template-columns:235px minmax(0,1fr)}
  .book30-list{grid-template-columns:1fr}
}

@media(max-width:760px){
  .book30-section{padding-left:10px!important;padding-right:10px!important}
  .book30-title{padding:0 4px}
  .book30-library{grid-template-columns:1fr;gap:12px}
  .book30-cover{min-height:235px;border-radius:20px}
  .book30-cover>strong{font-size:2.75rem}
  .book30-ribbon{right:24px;height:58px}
  .book30-index{min-height:440px;padding:14px}
  .book30-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .book30-tabs button{
    min-height:62px;
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
  .book30-tabs button>span{width:25px;height:25px}
  .book30-tabs small{position:absolute;right:5px;top:5px}
  .book30-list{grid-template-columns:1fr}
  .book30-list-wrap{max-height:330px}
  .book30-index__foot{align-items:flex-start}
  .book30-index__foot i{display:none}
  .book30-index__foot>span{max-width:62%}

  .book30-reader{inset:8px}
  .book30-reader__paper{height:calc(100vh - 16px);padding:18px 16px 12px;border-radius:18px}
  .book30-reader__paper::before{display:none}
  .book30-reader__identity>span{width:40px;height:40px}
  .book30-reader__identity strong{font-size:1.4rem}
  .book30-reader__meta{flex-wrap:wrap;padding-top:9px}
  .book30-reader__memory-mark{padding-bottom:7px}
  .book30-reader__text{font-size:1rem;line-height:1.7}
  .book30-reader__paper.is-memory .book30-reader__text,
  .book30-reader__paper.is-visit .book30-reader__text{font-size:1.08rem}
  .book30-reader__footer button span{display:none}
}


/* =========================================================
   V30 — POLISH GLOBAL / MOUVEMENT CONTINU
   ========================================================= */
.section:not(.constellation-section):not(.intimate-section):not(.together-section)::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:520px;height:190px;
  left:-260px;top:9%;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(ellipse,rgba(196,119,145,.055),transparent 70%);
  filter:blur(10px);
  animation:sectionLightV30 14s ease-in-out infinite alternate;
}
@keyframes sectionLightV30{
  to{transform:translateX(calc(100vw + 160px)) translateY(80px) scale(1.15);opacity:.55}
}

.section-title.is-visible h2 em{animation:titleGlowV30 5.5s ease-in-out infinite}
@keyframes titleGlowV30{
  50%{filter:drop-shadow(0 4px 14px rgba(173,92,119,.13));opacity:.9}
}

.memory-main::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:-40%;
  pointer-events:none;
  background:linear-gradient(112deg,transparent 39%,rgba(255,232,218,.055) 48%,transparent 57%);
  transform:translateX(-38%) rotate(3deg);
  animation:memoryLightV30 10s ease-in-out infinite;
}
@keyframes memoryLightV30{
  0%,30%{transform:translateX(-42%) rotate(3deg);opacity:0}
  48%{opacity:1}
  70%,100%{transform:translateX(42%) rotate(3deg);opacity:0}
}

.idea-panel::after,
.journey-card::after,
.wish-card::after,
.book30-index::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:.28;
  background:linear-gradient(125deg,transparent 20%,rgba(255,255,255,.11) 48%,transparent 76%);
  background-size:220% 100%;
  animation:cardSheenV30 8s linear infinite;
}
@keyframes cardSheenV30{to{background-position:-220% 0}}

.nav29-link.is-current::before{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid rgba(231,196,211,.12);
  border-radius:10px;
  animation:navPulseV30 3.2s ease-in-out infinite;
}
@keyframes navPulseV30{50%{inset:1px;opacity:.25}}

.calendar28-day.is-today{animation:todayBreathV30 4.5s ease-in-out infinite}
@keyframes todayBreathV30{
  50%{box-shadow:inset 0 0 0 1px rgba(196,119,145,.12),0 8px 24px rgba(196,119,145,.06)}
}

.reveal-v13.is-visible{animation:visibleFloatV30 7s ease-in-out infinite}
.section-title.reveal-v13.is-visible,
.chapter-divider.reveal-v13.is-visible{animation:none}
@keyframes visibleFloatV30{50%{transform:translateY(-2px)}}

@media(pointer:fine){
  .book30-entry:active,
  .calendar28-week-timed-event:active,
  .calendar28-agenda-event:active,
  .idea-panel:active{transform:scale(.992)}
}

a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline:2px solid rgba(166,91,115,.58);
  outline-offset:3px;
}

.book30-list-wrap,
.book30-reader__text-wrap,
.nav29-rail,
.mobile29{
  scrollbar-color:rgba(164,93,116,.32) transparent;
}

@media(prefers-reduced-motion:reduce){
  .section::before,
  .memory-main::after,
  .idea-panel::after,
  .journey-card::after,
  .wish-card::after,
  .book30-index::after,
  .nav29-link.is-current::before,
  .calendar28-day.is-today,
  .reveal-v13.is-visible,
  .section-title.is-visible h2 em{
    animation:none!important;
  }
}


/* =========================================================
   V31 — Livre : textes et poèmes uniquement
   ========================================================= */
.book31-library{grid-template-columns:290px minmax(0,1fr)}
.book31-index{grid-template-rows:auto auto minmax(0,1fr) auto}
.book31-filter-row{display:flex;gap:6px;margin:13px 0 10px;overflow-x:auto;scrollbar-width:none}
.book31-filter-row::-webkit-scrollbar{display:none}
.book31-filter-row button{flex:0 0 auto;min-height:34px;padding:0 12px;border:1px solid rgba(78,54,59,.07);border-radius:999px;color:#7b6c73;background:#f4ebe7;cursor:pointer;font-size:.49rem;font-weight:850;transition:.2s ease}
.book31-filter-row button:hover{transform:translateY(-1px);background:#fffaf4}
.book31-filter-row button.is-active{color:#fff8f4;border-color:#9b5970;background:#9b5970;box-shadow:0 7px 18px rgba(155,89,112,.16)}
.book30-entry em{display:inline-flex;margin-top:5px;padding:2px 6px;border-radius:999px;color:#9a7581;background:#f1e4e3;font:800 .34rem var(--sans);letter-spacing:.08em}
.book30-entry--poem em{color:#85613d;background:#f2e6d2}
.book31-empty{grid-column:1/-1;min-height:180px;display:grid;place-items:center;color:#95868e;font:500 1rem var(--serif)}
.book30-reader__paper.is-poem .book30-reader__text{max-width:660px;font-size:clamp(1.08rem,1.35vw,1.32rem);line-height:1.82}
.book30-reader__paper.is-poem .book30-reader__memory-mark>span{color:#b58752}
.book30-reader__paper.is-text .book30-reader__memory-mark>span{color:#a65d75}

/* Trait de navigation = progression réelle de la page. */
.nav29-progress{height:3px;background:rgba(255,255,255,.075)}
.nav29.is-scrolled .nav29-progress{background:rgba(72,50,69,.06)}
.nav29-progress i{width:0;box-shadow:0 0 12px rgba(196,119,145,.3);will-change:width}
.nav29-link.is-current::after{transform:scaleX(1);box-shadow:0 0 9px rgba(196,119,145,.22)}

@media(max-width:1100px){.book31-library{grid-template-columns:235px minmax(0,1fr)}}
@media(max-width:760px){.book31-library{grid-template-columns:1fr}.book31-filter-row{padding-bottom:2px}.book31-filter-row button{min-height:36px}}


/* =========================================================
   V32 — LE LIVRE DE NOUS SANS TAGS
   ========================================================= */
.book31-index{
  grid-template-rows:auto minmax(0,1fr) auto;
}
.book30-list-wrap{
  margin-top:14px;
}
.book30-entry{
  min-height:74px;
}
.book30-entry em,
.book31-filter-row,
.book30-reader__memory-mark{
  display:none!important;
}
.book30-reader__identity strong{
  margin-top:0;
}
.book30-reader__paper{
  grid-template-rows:auto auto minmax(0,1fr) auto;
}
.book30-reader__text-wrap{
  padding-top:14px;
}


/* =========================================================
   V34 — ÉDITION DIRECTE DANS CHAQUE MODULE
   ========================================================= */

.section-title__side{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.section-title__side>p{
  margin:0;
  max-width:560px;
}

.module-add-button{
  --mag-x:0px;
  --mag-y:0px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(84,58,73,.11);
  border-radius:999px;
  color:#6f5360;
  background:rgba(255,250,246,.88);
  box-shadow:0 8px 22px rgba(68,43,56,.065);
  cursor:pointer;
  font-size:.53rem;
  font-weight:900;
  transform:translate(var(--mag-x),var(--mag-y));
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.module-add-button:hover{
  transform:translate(var(--mag-x),calc(var(--mag-y) - 2px));
  box-shadow:0 12px 28px rgba(68,43,56,.1);
}
.module-add-button--dark,
.module-add-button--light{
  color:#f7ecef;
  border-color:rgba(255,255,255,.13);
  background:rgba(255,255,255,.075);
  box-shadow:none;
}
.module-add-button--dark:hover,
.module-add-button--light:hover{background:rgba(255,255,255,.12)}
.module-add-button--compact{
  min-height:39px;
  padding:0 12px;
  color:#fff8f4;
  border:0;
  background:#9d5870;
  box-shadow:none;
}

.module-item-actions{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  align-items:center;
}
.module-item-actions[hidden]{display:none!important}
.module-item-actions button{
  min-height:27px;
  padding:0 9px;
  border:1px solid rgba(84,58,73,.1);
  border-radius:999px;
  color:#78656f;
  background:#f4ece8;
  cursor:pointer;
  font-size:.43rem;
  font-weight:850;
  transition:.18s ease;
}
.module-item-actions button:hover{
  transform:translateY(-1px);
  background:#fff9f5;
}
.module-item-actions button[data-content-delete]{color:#a35a67}
.module-item-actions--stack{
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  padding-right:4px;
}
.module-item-actions--stack button{
  min-height:25px;
  padding:0 8px;
}

/* Constellation custom actions */
.constellation-node.is-custom::before{
  opacity:.5;
  box-shadow:0 0 0 4px rgba(255,255,255,.04),0 0 20px currentColor;
}
.constellation-letter__actions{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.09);
}
.constellation-letter__actions button{
  color:#e7dce4;
  border-color:rgba(255,255,255,.1);
  background:rgba(255,255,255,.06);
}

/* Calendar custom content */
.cal28-custom-couple{background:#eee7f6!important;color:#746399!important}
.cal28-custom-important{background:#f3e2e9!important;color:#9f526d!important}
.cal28-custom-organization{background:#e5eee8!important;color:#587667!important}
.calendar28-detail-actions{margin-top:9px}
.calendar28-add{white-space:nowrap}

/* Books */
.real-book.is-custom .real-book__cover{
  box-shadow:-14px 30px 60px rgba(91,55,77,.18);
}
.real-book.is-custom .module-item-actions{margin-top:13px}

.book30-entry-shell{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:5px;
}
.book30-entry-shell>.book30-entry{
  width:100%;
}
.book30-entry-shell.is-custom{
  padding:3px;
  border:1px solid rgba(166,91,115,.1);
  border-radius:13px;
  background:rgba(166,91,115,.025);
}
.book30-reader__head-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.book30-reader__head-actions .module-item-actions button{
  color:#78646e;
  background:#eee3df;
}

/* Envies = former Intime */
.envies-section{
  background:
    radial-gradient(circle at 12% 8%,rgba(169,102,133,.14),transparent 26%),
    radial-gradient(circle at 88% 88%,rgba(105,91,150,.12),transparent 29%),
    linear-gradient(180deg,#211823,#302133 54%,#1d171f);
}
.envies-section .section-title__side>p{color:#cdbfca}
.envies-block{
  width:min(1260px,100%);
  margin:0 auto 18px;
  padding:18px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  background:rgba(255,255,255,.035);
  box-shadow:0 30px 80px rgba(0,0,0,.12);
  backdrop-filter:blur(10px);
}
.envies-block--custom{margin-bottom:0}
.envies-block__head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:end;
  margin-bottom:14px;
}
.envies-block__head h3{
  margin:2px 0 0;
  color:#fff7f3;
  font:500 1.8rem var(--serif);
}
.envies-block__head>span{
  color:#9f919d;
  font-size:.46rem;
}

.gifts-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.gift-card{
  min-height:410px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:23px;
  color:#4a3a43;
  background:#fff9f5;
  box-shadow:0 18px 46px rgba(0,0,0,.12);
  transition:transform .28s var(--ease),box-shadow .28s ease;
}
.gift-card:hover{
  transform:translateY(-4px);
  box-shadow:0 25px 62px rgba(0,0,0,.18);
}
.gift-card__image{
  position:relative;
  height:270px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(145deg,#eee3e2,#e5dce9);
}
.gift-card__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s var(--ease);
}
.gift-card:hover .gift-card__image img{transform:scale(1.035)}
.gift-card__image>span{
  color:#a86a7e;
  font:500 4rem var(--serif);
}
.gift-card__image small{
  position:absolute;
  left:14px;
  bottom:13px;
  padding:6px 9px;
  border-radius:999px;
  color:#fff8f4;
  background:rgba(35,25,38,.68);
  backdrop-filter:blur(9px);
  font-size:.42rem;
  font-weight:850;
  letter-spacing:.1em;
}
.gift-card__copy{
  position:relative;
  padding:18px 19px 20px;
}
.gift-card__copy>span{
  position:absolute;
  right:16px;
  top:12px;
  color:rgba(68,47,61,.12);
  font:500 2.5rem var(--serif);
}
.gift-card__copy h3{
  max-width:80%;
  margin:0;
  color:#433541;
  font:500 1.55rem/.98 var(--serif);
}
.gift-card__copy p{
  margin:10px 0 0;
  color:#80737b;
  font-size:.65rem;
  line-height:1.6;
}
.gift-card__copy>a{
  display:inline-flex;
  margin-top:14px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#f7efeb;
  font-size:.52rem;
  font-weight:850;
}
.gift-card .module-item-actions{margin-top:13px}
.gifts-empty{
  grid-column:1/-1;
  min-height:235px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  padding:26px;
  border:1px dashed rgba(255,255,255,.13);
  border-radius:22px;
  color:#bfb2bd;
  text-align:center;
  background:rgba(255,255,255,.025);
}
.gifts-empty--button{
  width:100%;
  cursor:pointer;
}
.gifts-empty>span{
  color:#dfb8c6;
  font:500 2.4rem var(--serif);
}
.gifts-empty h3{
  margin:0;
  color:#fff6f2;
  font:500 1.7rem var(--serif);
}
.gifts-empty p{
  max-width:520px;
  margin:0;
  font-size:.64rem;
  line-height:1.65;
}
.gifts-empty b{
  margin-top:6px;
  color:#edc5d2;
  font-size:.52rem;
}

/* Direct editor modal */
.content-editor-backdrop{
  position:fixed;
  z-index:900;
  inset:0;
  opacity:0;
  visibility:hidden;
  background:rgba(13,10,17,.65);
  backdrop-filter:blur(9px);
  transition:.25s ease;
}
.content-editor-backdrop.is-open{
  opacity:1;
  visibility:visible;
}
.content-editor{
  position:fixed;
  z-index:910;
  inset:18px;
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.25s ease;
}
.content-editor.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.content-editor__sheet{
  width:min(760px,100%);
  max-height:calc(100vh - 36px);
  overflow:auto;
  padding:22px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:25px;
  color:#f8f0f3;
  background:
    radial-gradient(circle at 85% 4%,rgba(193,112,145,.13),transparent 25%),
    linear-gradient(145deg,#211a2a,#312438 70%,#3d2b3b);
  box-shadow:0 40px 130px rgba(0,0,0,.42);
}
.content-editor__head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:start;
  padding-bottom:15px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.content-editor__head small{
  display:block;
  color:#ddb57b;
  font-size:.42rem;
  font-weight:900;
  letter-spacing:.15em;
}
.content-editor__head strong{
  display:block;
  margin-top:3px;
  color:#fff8f4;
  font:500 1.8rem var(--serif);
}
.content-editor__head>button{
  width:39px;
  height:39px;
  border:0;
  border-radius:50%;
  color:#eadfe6;
  background:rgba(255,255,255,.07);
  cursor:pointer;
  font-size:1rem;
}
.studio-fields{
  display:grid;
  gap:11px;
  margin-top:17px;
}
.studio-grid{display:grid;gap:10px}
.studio-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.studio-span-2{grid-column:1/-1}
.studio-fields label{display:grid;gap:6px}
.studio-fields label>span{
  color:#d5c8d2;
  font-size:.51rem;
  font-weight:800;
}
.studio-fields label>span small{
  color:#938794;
  font-size:.42rem;
}
.studio-fields input,
.studio-fields select,
.studio-fields textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.1);
  border-radius:11px;
  outline:0;
  padding:11px 12px;
  color:#fff9f6;
  background:rgba(8,7,13,.31);
  font-size:.69rem;
  transition:border-color .2s ease,background .2s ease;
}
.studio-fields textarea{
  resize:vertical;
  line-height:1.6;
}
.studio-fields input:focus,
.studio-fields select:focus,
.studio-fields textarea:focus{
  border-color:rgba(235,185,203,.38);
  background:rgba(8,7,13,.46);
}
.studio-fields input[type="file"]{padding:8px}
.studio-fields option{
  color:#302637;
  background:#f8f1ed;
}
.studio-check{
  display:flex!important;
  grid-template-columns:20px 1fr;
  align-items:center;
  align-self:end;
  min-height:43px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:11px;
  background:rgba(255,255,255,.03);
}
.studio-check input{
  width:auto!important;
  margin:0;
}
.studio-check span{font-size:.55rem!important}
.studio-fields .is-disabled{opacity:.4}

.content-editor__foot{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:center;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.08);
}
.content-editor__cancel,
.studio-save{
  min-height:41px;
  padding:0 15px;
  border-radius:999px;
  cursor:pointer;
  font-size:.55rem;
  font-weight:900;
}
.content-editor__cancel{
  border:1px solid rgba(255,255,255,.09);
  color:#d9cdd5;
  background:rgba(255,255,255,.045);
}
.studio-save{
  border:0;
  color:#382a37;
  background:#f1d9e1;
  box-shadow:0 10px 27px rgba(0,0,0,.15);
}
#studio-status{
  color:#bfb3c0;
  font-size:.51rem;
  text-align:center;
}
#studio-status[data-tone="error"]{color:#efb0bb}
#studio-status[data-tone="ok"]{color:#b8d8c7}

.content-toast{
  position:fixed;
  z-index:980;
  left:50%;
  bottom:24px;
  translate:-50% 18px;
  max-width:min(430px,calc(100% - 28px));
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  opacity:0;
  visibility:hidden;
  color:#fff8f4;
  background:rgba(33,25,36,.91);
  box-shadow:0 15px 45px rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
  font-size:.54rem;
  font-weight:800;
  text-align:center;
  transition:.25s ease;
}
.content-toast.is-visible{
  translate:-50% 0;
  opacity:1;
  visibility:visible;
}
.content-toast[data-tone="error"]{background:rgba(91,40,51,.95)}
.content-toast[data-tone="ok"]{background:rgba(44,73,61,.95)}

/* Very small backup controls in footer, not a separate module. */
.footer-backup{
  display:flex;
  gap:6px;
  align-items:center;
}
.footer-backup button,
.footer-backup label{
  min-height:29px;
  display:flex;
  align-items:center;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  color:#998c95;
  background:rgba(255,255,255,.025);
  cursor:pointer;
  font-size:.4rem;
  font-weight:800;
}
.footer-backup input{display:none}

/* Navigation now has 9 chapters again. */
.nav29-link{
  min-width:82px;
}

@media(max-width:1100px){
  .gifts-grid{grid-template-columns:repeat(2,1fr)}
  .section-title__side{max-width:520px}
}
@media(max-width:760px){
  .section-title__side{gap:9px}
  .module-add-button{
    min-height:37px;
    padding:0 12px;
  }

  .envies-block{
    padding:11px;
    border-radius:20px;
  }
  .envies-block__head{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .envies-block__head h3{font-size:1.45rem}
  .gifts-grid{grid-template-columns:1fr}
  .gift-card{min-height:0}
  .gift-card__image{height:295px}

  .content-editor{
    inset:7px;
  }
  .content-editor__sheet{
    max-height:calc(100vh - 14px);
    padding:15px;
    border-radius:19px;
  }
  .studio-grid--2{grid-template-columns:1fr}
  .studio-span-2{grid-column:auto}
  .content-editor__foot{
    grid-template-columns:1fr 1fr;
  }
  #studio-status{
    grid-column:1/-1;
    grid-row:1;
  }
  .footer-backup{
    flex-wrap:wrap;
    justify-content:center;
  }
  .book30-entry-shell{
    grid-template-columns:minmax(0,1fr);
  }
  .module-item-actions--stack{
    flex-direction:row;
    justify-content:flex-end;
    padding:0 5px 5px;
  }
}


/* V34 finishing details */
.section-title__side::after{display:none!important}
.section-title__side>p{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.82;
}
.section-title--dark .section-title__side>p,
.section-title--light .section-title__side>p{
  color:#d6ccd7;
}
.book30-reader__head-actions>#book30-reader-close{
  width:39px;
  height:39px;
  border:0;
  border-radius:50%;
  color:#66565f;
  background:#eee3df;
  cursor:pointer;
  font-size:1.05rem;
  transition:.2s ease;
}
.book30-reader__head-actions>#book30-reader-close:hover{
  transform:rotate(6deg);
  background:#e8dbd6;
}
.gifts-empty--button{
  font:inherit;
}
@media(max-width:760px){
  .section-title__side>p{font-size:.7rem}
}


/* =========================================================
   V35 — MOBILE FIRST, LISIBILITÉ, COHÉRENCE ET VIE
   ========================================================= */

:root{
  --ink:#382c3b;
  --muted:#6f626f;
  --paper:#fffaf5;
  --paper-2:#f8efea;
  --paper-3:#efe1e1;
  --night:#17121d;
  --night-2:#241a2a;
  --night-3:#38283e;
  --rose:#c86f8c;
  --rose-deep:#9f546e;
  --peach:#db9279;
  --lavender:#8878b4;
  --gold:#d1aa6f;
  --sage:#789786;
  --blue:#7394b4;
  --line:rgba(73,50,69,.11);
  --shadow:0 24px 68px rgba(61,39,55,.11);
  --shadow-soft:0 13px 38px rgba(61,39,55,.075);
}

html{
  scroll-padding-top:78px;
}
body{
  font-size:16px;
  line-height:1.55;
  background:#fffaf5;
}
.section{
  padding:74px 18px;
}
.eyebrow{
  margin-bottom:9px;
  font-size:.68rem;
  line-height:1.25;
  letter-spacing:.15em;
}
.section-title{
  width:100%;
  margin:0 auto 30px;
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:start;
}
.section-title h2{
  font-size:clamp(2.65rem,13.5vw,4.35rem);
  line-height:.92;
  letter-spacing:-.052em;
}
.section-title>p,
.section-title__side>p{
  max-width:650px;
  font-size:.98rem;
  line-height:1.72;
}
.section p:not(.eyebrow){
  line-height:1.7;
}
.button,
.module-add-button{
  min-height:48px;
  padding:0 17px;
  font-size:.76rem;
  letter-spacing:-.01em;
}
.module-item-actions button{
  min-height:34px;
  padding:0 11px;
  font-size:.62rem;
}
.chapter-divider p{
  font-size:.78rem;
  line-height:1.55;
}

/* ---------------------------------------------------------
   NAVIGATION — mobile is the primary version
   --------------------------------------------------------- */
.nav29{
  top:8px;
  width:calc(100% - 16px);
  min-height:54px;
  grid-template-columns:1fr auto;
  padding:6px 8px;
  border-radius:18px;
  background:rgba(25,19,31,.76);
  box-shadow:0 10px 34px rgba(20,13,22,.18);
}
.nav29.is-scrolled{
  color:#443644;
  background:rgba(255,250,246,.96);
  box-shadow:0 10px 34px rgba(58,38,53,.11);
}
.nav29-brand{
  gap:9px;
}
.nav29-brand>span{
  width:39px;
  height:39px;
  border-radius:12px;
}
.nav29-brand>div{
  display:block!important;
}
.nav29-brand small{
  font-size:.46rem;
}
.nav29-brand strong{
  font-size:1rem;
}
.nav29-rail{
  display:none;
}
.nav29-lock{
  width:39px;
  height:39px;
  border-radius:12px;
  font-size:.95rem;
}
.nav29-progress{
  left:8px;
  right:8px;
  height:3px;
}

.mobile29{
  left:8px;
  right:8px;
  bottom:8px;
  min-height:68px;
  gap:4px;
  padding:6px;
  border-radius:20px;
  background:rgba(255,251,247,.96);
  box-shadow:0 14px 44px rgba(36,23,36,.17);
}
.mobile29 a{
  flex:0 0 82px;
  height:54px;
  gap:2px;
  border-radius:14px;
}
.mobile29 a span{
  font-size:.48rem;
  letter-spacing:.06em;
}
.mobile29 a strong{
  max-width:76px;
  font-size:.69rem;
  letter-spacing:-.01em;
}
.mobile29 a.is-current{
  color:#4a3944;
  background:#f0e4e5;
  box-shadow:inset 0 -3px 0 var(--rose);
}

/* ---------------------------------------------------------
   HERO — designed for a phone first
   --------------------------------------------------------- */
.hero{
  min-height:auto;
  padding:102px 18px 34px;
  display:block;
  color:white;
  background:#1a1520;
}
.hero__bg{
  inset:0;
  background:
    linear-gradient(180deg,rgba(24,18,30,.30),rgba(25,18,31,.76)),
    url("../images/scene-dawn.svg") center/cover no-repeat;
  filter:saturate(1.03) brightness(.88);
}
.hero__nebula{
  background:
    radial-gradient(circle at 78% 14%,rgba(255,214,167,.16),transparent 27%),
    radial-gradient(circle at 20% 54%,rgba(198,111,140,.18),transparent 29%),
    linear-gradient(180deg,rgba(20,15,27,.22),rgba(21,16,27,.57));
}
.hero__content{
  width:100%;
  transform:none;
}
.hero .eyebrow{
  color:#f0cb94;
  font-size:.66rem;
}
.hero h1{
  max-width:650px;
  font-size:clamp(3.55rem,17vw,5.5rem);
  line-height:.84;
}
.hero__lead{
  max-width:590px;
  margin-top:20px;
  color:#f0e8ee;
  font-size:1rem;
  line-height:1.72;
}
.hero__buttons{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:23px;
}
.hero__buttons .button{
  width:100%;
}
.hero-constellation{
  display:none;
}
.hero-portals{
  position:relative;
  right:auto;
  bottom:auto;
  width:100%;
  height:236px;
  margin-top:28px;
  display:grid;
  grid-template-columns:1.28fr .72fr;
  grid-template-rows:1fr 1fr;
  gap:8px;
  transform:none;
}
.portal,
.hero:hover .portal--one,
.hero:hover .portal--two{
  position:relative;
  left:auto;
  right:auto;
  top:auto;
  width:auto;
  height:auto;
  transform:none;
  border-radius:18px;
}
.portal--one{
  grid-row:1/3;
}
.portal--two,
.portal--three{
  min-height:0;
}
.portal--three{
  display:block;
}
.hero__metrics{
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  margin-top:11px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.hero__metrics article{
  min-height:93px;
  padding:14px;
  border-radius:16px;
  background:rgba(32,24,39,.58);
}
.hero__metrics strong{
  font-size:1.8rem;
}
.hero__metrics span,
.hero__metrics small{
  font-size:.69rem;
  line-height:1.35;
}
.scroll-hint{
  display:none;
}

/* ---------------------------------------------------------
   Readable body content
   --------------------------------------------------------- */
.reunion-quick__intro>p,
.memory-main p,
.memory-copy p,
.sky-card__content p,
.journey-card__copy>p,
.flip-note blockquote,
.wish-card p,
.idea-panel p,
.real-book__copy p,
.intimate-copy p,
.book30-title p{
  font-size:.92rem!important;
  line-height:1.68!important;
}
.reunion-quick__intro h2,
.calendar28-title h2{
  font-size:clamp(2.45rem,11.5vw,4rem);
}
.little-grid h3,
.idea-panel h3,
.real-book__copy h3,
.envies-block__head h3{
  line-height:1.05;
}

/* Images that make the Refuge feel less flat. */
.journey-card__sky{
  background:
    linear-gradient(180deg,rgba(28,21,34,.06),rgba(28,21,34,.58)),
    url("../images/scene-train.svg") center/cover no-repeat!important;
  opacity:.92;
}
.section-scene{
  width:100%;
  margin:0 auto 22px;
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow-soft);
  background:#f3e8e4;
}
.section-scene img{
  width:100%;
  height:210px;
  object-fit:cover;
}
.section-scene figcaption,
.envies-scene figcaption{
  position:absolute;
  left:12px;
  right:12px;
  bottom:11px;
  padding:9px 11px;
  border-radius:12px;
  color:#fff8f5;
  background:rgba(40,28,39,.64);
  backdrop-filter:blur(10px);
  font-size:.69rem;
}
.envies-scene{
  position:relative;
  margin:0 0 13px;
  overflow:hidden;
  border-radius:20px;
}
.envies-scene img{
  width:100%;
  height:190px;
  object-fit:cover;
}

/* ---------------------------------------------------------
   Calendar readability
   --------------------------------------------------------- */
.calendar28-header{
  padding:11px;
}
.calendar28-navigation button,
.calendar28-tools-toggle,
.calendar28-add{
  font-size:.69rem;
}
.calendar28-switcher button{
  font-size:.67rem;
}
.calendar28-period strong{
  font-size:1.45rem;
}
.calendar28-period small,
.calendar28-filter,
.calendar28-reset,
#cal28-status{
  font-size:.62rem;
}
.calendar28-week-date span,
.calendar28-week-date small{
  font-size:.61rem;
}
.calendar28-week-timed-copy strong{
  font-size:.76rem;
}
.calendar28-week-timed-copy span{
  font-size:.66rem;
}
.calendar28-detail-event strong{
  font-size:.87rem;
}
.calendar28-detail-event span,
.calendar28-empty-day{
  font-size:.74rem;
}
.calendar28-next-meeting small{
  font-size:.56rem;
}
.calendar28-next-meeting strong{
  font-size:1.17rem;
}

/* Custom reunion in "Nos retrouvailles". */
.journey-date.is-custom{
  position:relative;
  padding-right:40px;
}
.journey-date.is-custom>div{
  display:grid;
}
.journey-date.is-custom>button{
  position:absolute;
  right:6px;
  top:50%;
  translate:0 -50%;
  width:29px;
  height:29px;
  border:0;
  border-radius:50%;
  color:#6b5362;
  background:rgba(255,255,255,.72);
  cursor:pointer;
}

/* ---------------------------------------------------------
   Books
   --------------------------------------------------------- */
.books-section{
  background:
    radial-gradient(circle at 90% 4%,rgba(209,170,111,.08),transparent 26%),
    linear-gradient(180deg,#fffaf5,#f6ede8);
}
.books-real{
  gap:13px;
}
.real-book__copy .eyebrow{
  font-size:.61rem;
}
.real-book__copy h3{
  font-size:1.55rem;
}
.real-book__links a{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  font-size:.67rem;
}

/* ---------------------------------------------------------
   Envies: one continuous module, new items follow lingerie
   --------------------------------------------------------- */
.envies-section{
  background:
    radial-gradient(circle at 12% 8%,rgba(202,111,143,.16),transparent 27%),
    radial-gradient(circle at 90% 82%,rgba(136,120,180,.14),transparent 28%),
    linear-gradient(180deg,#251a27,#3a2637 62%,#211820);
}
.envies-block--all{
  margin-bottom:0;
}
.envies-block__head{
  margin-bottom:12px;
}
.intimate-picker{
  margin-bottom:0;
}
.gifts-grid--continuation{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
}
.gift-card__copy h3{
  font-size:1.45rem;
}
.gift-card__copy p{
  font-size:.83rem!important;
}
.gifts-empty{
  min-height:180px;
}
.gifts-empty h3{
  font-size:1.45rem;
}
.gifts-empty p{
  font-size:.83rem!important;
}

/* ---------------------------------------------------------
   Livre de Nous
   --------------------------------------------------------- */
.book30-entry{
  min-height:78px;
}
.book30-entry small{
  font-size:.58rem;
}
.book30-entry strong{
  font-size:.92rem;
}
.book30-reader__meta{
  font-size:.68rem;
}
.book30-reader__text{
  font-size:1.05rem;
  line-height:1.75;
}

/* ---------------------------------------------------------
   CENTRAL MANAGEMENT
   --------------------------------------------------------- */
.manage-divider{
  background:linear-gradient(180deg,#faf3ec,#f2e8e3);
}
.manage-section{
  background:
    radial-gradient(circle at 88% 4%,rgba(118,150,183,.09),transparent 26%),
    radial-gradient(circle at 8% 88%,rgba(196,111,140,.08),transparent 25%),
    linear-gradient(180deg,#f7eee9,#fffaf5);
}
.manage-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:12px;
}
.manage-summary article{
  min-height:112px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:1fr auto;
  gap:3px 10px;
  align-items:center;
  padding:15px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,253,250,.9);
  box-shadow:var(--shadow-soft);
}
.manage-summary article>span{
  grid-row:1/3;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#a45c74;
  background:#f1e4e5;
}
.manage-summary strong{
  align-self:end;
  color:#433542;
  font:500 2rem var(--serif);
}
.manage-summary small{
  align-self:start;
  color:#82747d;
  font-size:.7rem;
}
.manage-tools{
  display:grid;
  gap:12px;
}
.manage-backup-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fffaf6;
  box-shadow:var(--shadow-soft);
}
.manage-backup-card figure{
  margin:0;
}
.manage-backup-card figure img{
  width:100%;
  height:190px;
  object-fit:cover;
}
.manage-backup-card>div{
  padding:18px;
}
.manage-backup-card h3{
  margin:0;
  color:#443542;
  font:500 1.7rem/1 var(--serif);
}
.manage-backup-card p:not(.eyebrow){
  font-size:.9rem;
  line-height:1.65;
  color:#766974;
}
.manage-backup-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  margin-top:15px;
}
.manage-backup-actions button,
.manage-backup-actions label{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 13px;
  border:1px solid var(--line);
  border-radius:12px;
  color:#5f4855;
  background:#f5ebe8;
  cursor:pointer;
  font-size:.73rem;
  font-weight:850;
}
.manage-backup-actions input{
  display:none;
}
.manage-browser{
  padding:14px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fffdf9;
  box-shadow:var(--shadow-soft);
}
.manage-browser__top{
  display:grid;
  gap:9px;
  margin-bottom:12px;
}
.manage-search{
  min-height:47px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#f8efeb;
}
.manage-search span{
  color:#a16378;
}
.manage-search input{
  width:100%;
  border:0;
  outline:0;
  color:#473945;
  background:transparent;
  font-size:.84rem;
}
.manage-filters{
  display:flex;
  gap:5px;
  overflow-x:auto;
  scrollbar-width:none;
}
.manage-filters button{
  flex:0 0 auto;
  min-height:36px;
  padding:0 11px;
  border:1px solid var(--line);
  border-radius:999px;
  color:#786a73;
  background:#f8efeb;
  cursor:pointer;
  font-size:.65rem;
  font-weight:850;
}
.manage-filters button.is-active{
  color:white;
  border-color:#9e5870;
  background:#9e5870;
}
.manage-list{
  display:grid;
  gap:7px;
}
.manage-item{
  min-height:88px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:7px 10px;
  align-items:center;
  padding:11px;
  border:1px solid rgba(74,50,68,.075);
  border-radius:13px;
  background:#fffaf6;
}
.manage-item__type{
  min-width:76px;
  padding:6px 8px;
  border-radius:999px;
  color:#8d5e70;
  background:#f1e3e5;
  font-size:.56rem;
  font-weight:900;
  text-align:center;
}
.manage-item__copy{
  min-width:0;
}
.manage-item__copy strong{
  display:block;
  overflow:hidden;
  color:#463844;
  font-size:.89rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.manage-item__copy span{
  display:block;
  margin-top:3px;
  color:#83757e;
  font-size:.68rem;
  line-height:1.35;
}
.manage-item>.module-item-actions{
  grid-column:1/-1;
  justify-content:flex-end;
}
.manage-empty{
  min-height:230px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  color:#857780;
}
.manage-empty>span{
  color:#a15b74;
  font-size:1.8rem;
}
.manage-empty strong{
  color:#4a3b47;
  font:500 1.45rem var(--serif);
}
.manage-empty p{
  max-width:440px;
  margin:0;
  font-size:.82rem!important;
}

/* ---------------------------------------------------------
   FOOTER
   --------------------------------------------------------- */
.site-footer{
  min-height:260px;
  padding:48px 18px 94px;
  display:grid;
  place-items:start;
  align-content:center;
  gap:14px;
  color:#efe7ed;
  background:
    radial-gradient(circle at 70% 10%,rgba(199,111,143,.12),transparent 28%),
    #111017;
}
.site-footer__brand{
  display:flex;
  align-items:center;
  gap:11px;
}
.site-footer__brand>span{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.1);
  border-radius:15px;
  color:#e9be80;
  background:rgba(255,255,255,.045);
  font:600 .9rem var(--serif);
}
.site-footer__brand strong{
  display:block;
  color:#fff8f4;
  font:500 1.45rem var(--serif);
}
.site-footer__brand small{
  display:block;
  color:#8e8490;
  font-size:.65rem;
}
.site-footer>p{
  max-width:480px;
  margin:0;
  color:#aaa0aa;
  font-size:.88rem;
}
.site-footer nav{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.site-footer nav a,
.site-footer nav button{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  padding:0 11px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  color:#d4cad1;
  background:rgba(255,255,255,.035);
  cursor:pointer;
  font-size:.66rem;
  font-weight:800;
}
.site-footer>#footer-content-count{
  color:#817782;
  font-size:.65rem;
}

/* ---------------------------------------------------------
   Context editor readability
   --------------------------------------------------------- */
.content-editor__sheet{
  width:min(760px,100%);
}
.content-editor__head strong{
  font-size:1.65rem;
}
.studio-fields label>span{
  font-size:.69rem;
}
.studio-fields input,
.studio-fields select,
.studio-fields textarea{
  min-height:46px;
  font-size:.88rem;
}
.studio-fields textarea{
  min-height:130px;
}
.content-editor__cancel,
.studio-save{
  min-height:46px;
  font-size:.72rem;
}
#studio-status{
  font-size:.68rem;
}

/* ---------------------------------------------------------
   DESKTOP / WIDE — a deliberate second layout, not stretched mobile
   --------------------------------------------------------- */
@media(min-width:960px){
  html{scroll-padding-top:92px}
  .section{
    padding:120px clamp(34px,5.3vw,86px);
  }
  .section-title{
    width:min(1320px,100%);
    margin-bottom:48px;
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.5fr);
    gap:64px;
    align-items:end;
  }
  .section-title h2{
    font-size:clamp(4.2rem,6vw,6.7rem);
  }
  .section-title>p,
  .section-title__side>p{
    font-size:1rem;
    line-height:1.75;
  }

  .nav29{
    top:14px;
    width:min(1320px,calc(100% - 30px));
    min-height:68px;
    grid-template-columns:auto minmax(0,1fr) auto;
    padding:8px 10px;
    border-radius:22px;
  }
  .nav29-rail{
    display:flex;
    padding:2px 15px;
  }
  .nav29-link{
    min-width:88px;
    min-height:46px;
  }
  .nav29-link span{
    font-size:.42rem;
  }
  .nav29-link strong{
    font-size:.67rem;
  }
  .nav29-link--manage{
    color:#e4c384;
  }
  .nav29.is-scrolled .nav29-link--manage{
    color:#8e6740;
  }
  .mobile29{
    display:none;
  }

  .hero{
    min-height:100svh;
    padding:150px clamp(36px,6vw,96px) 145px;
    display:flex;
    align-items:center;
  }
  .hero__content{
    width:min(720px,55%);
  }
  .hero h1{
    font-size:clamp(5.4rem,8.2vw,8.6rem);
  }
  .hero__lead{
    font-size:1.03rem;
  }
  .hero__buttons{
    display:flex;
    width:auto;
  }
  .hero__buttons .button{
    width:auto;
  }
  .hero-constellation{
    display:block;
    right:6%;
    top:20%;
    width:min(560px,42vw);
  }
  .hero-portals{
    position:absolute;
    right:6%;
    bottom:14%;
    width:430px;
    height:290px;
    margin:0;
    display:block;
  }
  .portal{
    position:absolute;
  }
  .portal--one{
    left:0;
    top:50px;
    width:215px;
    height:165px;
    transform:rotate(-6deg);
  }
  .portal--two{
    right:0;
    top:0;
    width:194px;
    height:218px;
    transform:rotate(5deg);
  }
  .portal--three{
    right:52px;
    bottom:-15px;
    width:168px;
    height:104px;
    transform:rotate(-2deg);
    z-index:3;
  }
  .hero:hover .portal--one{transform:rotate(-8deg) translateY(-5px)}
  .hero:hover .portal--two{transform:rotate(7deg) translateY(4px)}
  .hero:hover .portal--three{transform:rotate(-4deg) translateY(-3px)}
  .hero__metrics{
    position:absolute;
    left:clamp(36px,6vw,96px);
    right:clamp(36px,6vw,96px);
    bottom:32px;
    margin:0;
    grid-template-columns:repeat(4,1fr);
  }
  .hero__metrics article{
    min-height:88px;
  }
  .scroll-hint{
    display:grid;
  }

  .section-scene img{
    height:285px;
  }
  .section-scene--books{
    width:min(1320px,100%);
  }

  .envies-scene img{
    height:260px;
  }
  .gifts-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .manage-summary{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
  .manage-tools{
    grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
    align-items:start;
  }
  .manage-backup-card figure img{
    height:245px;
  }
  .manage-browser{
    padding:18px;
  }
  .manage-browser__top{
    grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
    align-items:center;
  }
  .manage-filters{
    justify-content:flex-end;
  }
  .manage-item{
    grid-template-columns:110px minmax(0,1fr) auto;
  }
  .manage-item>.module-item-actions{
    grid-column:auto;
  }

  .site-footer{
    min-height:210px;
    padding:52px clamp(36px,6vw,96px);
    grid-template-columns:auto minmax(280px,1fr) auto;
    grid-template-rows:auto auto;
    place-items:center start;
    align-items:center;
    gap:9px 32px;
  }
  .site-footer>p{
    max-width:600px;
  }
  .site-footer nav{
    justify-self:end;
  }
  .site-footer>#footer-content-count{
    grid-column:2/4;
  }
}

@media(max-width:560px){
  .calendar28-header{
    top:63px;
  }
  .calendar28-header-actions{
    width:100%;
  }
  .calendar28-switcher{
    max-width:100%;
  }
  .calendar28-tools-toggle,
  .calendar28-add{
    min-height:40px;
  }
}


/* =========================================================
   V36 — PLUS D'IMAGES ET DE PRÉSENCE VISUELLE
   ========================================================= */

.story-gallery{
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:0 auto 18px;
}
.story-gallery__card{
  position:relative;
  overflow:hidden;
  min-height:190px;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow-soft);
  background:#f2e7e4;
}
.story-gallery__card img{
  width:100%;
  height:100%;
  min-height:190px;
  object-fit:cover;
  display:block;
}
.story-gallery__card figcaption{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  padding:10px 12px;
  border-radius:13px;
  color:#fff8f4;
  background:rgba(37,27,36,.6);
  backdrop-filter:blur(10px);
  font-size:.74rem;
  line-height:1.45;
}
.story-gallery__card--wide{
  min-height:230px;
}
.story-gallery__card--wide img{
  min-height:230px;
}

.section-scene--calendar,
.section-scene--ideas,
.section-scene--poems{
  width:100%;
}
.section-scene--calendar img,
.section-scene--ideas img,
.section-scene--poems img{
  height:215px;
}

/* Make the small modules feel less flat too */
.flip-note__front{
  background:
    linear-gradient(180deg,rgba(255,248,243,.86),rgba(255,248,243,.92)),
    url("../images/scene-rings.svg") center/cover no-repeat;
}
.flip-note__back{
  background:
    linear-gradient(180deg,rgba(35,27,41,.68),rgba(35,27,41,.82)),
    url("../images/scene-poems-desk.svg") center/cover no-repeat;
}
.wish-card{
  position:relative;
  overflow:hidden;
}
.wish-card::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.34;
  background:url("../images/scene-forest.svg") center/cover no-repeat;
  pointer-events:none;
}
.wish-card>*{
  position:relative;
  z-index:1;
}
.sky-card--real{
  overflow:hidden;
}
.sky-card--real::before{
  content:"";
  position:absolute;
  inset:auto -20% -35% auto;
  width:210px;
  height:210px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,214,171,.42),rgba(255,214,171,0));
  pointer-events:none;
}
.journey-card{
  overflow:hidden;
}
.journey-card::after{
  content:"";
  position:absolute;
  right:-18px;
  bottom:-22px;
  width:110px;
  height:110px;
  opacity:.22;
  background:url("../images/scene-meadow.svg") center/cover no-repeat;
  border-radius:22px;
  pointer-events:none;
}

/* More image presence in books / envies / manage */
.section-scene + .books-real{
  margin-top:6px;
}
.intimate-display{
  overflow:hidden;
}
.intimate-display::after{
  content:"";
  position:absolute;
  right:-30px;
  bottom:-26px;
  width:140px;
  height:140px;
  opacity:.16;
  background:url("../images/scene-gifts-warm.svg") center/cover no-repeat;
  pointer-events:none;
}
.manage-backup-card figure{
  position:relative;
}
.manage-backup-card figure::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(23,17,24,0),rgba(23,17,24,.18));
  pointer-events:none;
}

/* Slightly more visual footer backdrop */
.site-footer{
  background:
    radial-gradient(circle at 70% 10%,rgba(199,111,143,.12),transparent 28%),
    linear-gradient(180deg,rgba(14,12,19,.84),rgba(14,12,19,.96)),
    url("../images/scene-galaxy.svg") center/cover no-repeat;
}

@media(min-width:960px){
  .story-gallery{
    width:min(1320px,100%);
    grid-template-columns:1.25fr .75fr .75fr;
    gap:14px;
    margin-bottom:28px;
  }
  .story-gallery__card,
  .story-gallery__card img{
    min-height:248px;
  }
  .story-gallery__card--wide,
  .story-gallery__card--wide img{
    min-height:248px;
  }

  .section-scene--calendar img,
  .section-scene--ideas img,
  .section-scene--poems img{
    height:300px;
  }
}

@media(max-width:560px){
  .story-gallery__card figcaption,
  .section-scene figcaption,
  .envies-scene figcaption{
    font-size:.68rem;
  }
}


/* Safety positioning for decorative overlays */
.intimate-display,
.journey-card,
.sky-card--real,
.flip-note,
.wish-card{
  position:relative;
}

/* =========================================================
   V38 — REFONTE ROMANTIQUE PEINTE / MOBILE FIRST
   ========================================================= */
:root{
  --v38-ink:#3b2934;
  --v38-muted:#75636d;
  --v38-cream:#fbf5ef;
  --v38-paper:#fffaf6;
  --v38-blush:#efd8d8;
  --v38-rose:#b96882;
  --v38-rose-deep:#8f4d66;
  --v38-lav:#8272a3;
  --v38-night:#1d1724;
  --v38-night2:#2c2030;
  --v38-gold:#c79b62;
  --v38-sage:#7e9582;
  --v38-line:rgba(88,54,71,.11);
  --v38-shadow:0 18px 54px rgba(70,39,55,.11);
  --v38-shadow-soft:0 10px 32px rgba(70,39,55,.08);
}

html{scroll-behavior:smooth;scroll-padding-top:72px}
body{
  background:
    radial-gradient(circle at 8% 3%,rgba(184,104,130,.08),transparent 22%),
    radial-gradient(circle at 94% 12%,rgba(130,114,163,.09),transparent 24%),
    var(--v38-cream);
  color:var(--v38-ink);
  font-size:16px;
  line-height:1.6;
  padding-bottom:92px;
}
body.manage-open,body.content-editor-open{overflow:hidden}
.site{background:transparent}
main{overflow:clip}

/* Minimal top mark — navigation lives at the bottom now */
.nav29{
  position:fixed!important;
  z-index:80!important;
  top:10px!important;
  left:10px!important;
  right:10px!important;
  width:auto!important;
  min-height:54px!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  padding:7px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:18px!important;
  background:rgba(32,23,34,.42)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;
  box-shadow:0 12px 34px rgba(25,15,24,.12)!important;
}
.nav29-rail,.nav29-progress{display:none!important}
.nav29-brand{display:flex!important;align-items:center!important;gap:9px!important;color:#fff!important}
.nav29-brand>span{width:40px!important;height:40px!important;border-radius:13px!important;background:rgba(255,255,255,.11)!important;border:1px solid rgba(255,255,255,.15)!important;color:#f5d6aa!important}
.nav29-brand small{color:rgba(255,255,255,.66)!important;font-size:.46rem!important}
.nav29-brand strong{color:#fff8f4!important;font-size:1rem!important}
.nav29-lock{width:40px!important;height:40px!important;border-radius:13px!important;background:rgba(255,255,255,.1)!important;color:#fff7f4!important;border:1px solid rgba(255,255,255,.12)!important}

/* Bottom navigation: full width, app-like, same on phone and desktop */
.mobile29{
  position:fixed!important;
  z-index:120!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  min-height:76px!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  overflow-x:auto!important;
  padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;
  border:0!important;
  border-top:1px solid rgba(92,55,73,.08)!important;
  border-radius:0!important;
  background:linear-gradient(180deg,rgba(251,245,239,.84),rgba(251,245,239,.97))!important;
  backdrop-filter:blur(20px) saturate(1.05)!important;
  box-shadow:0 -14px 40px rgba(54,30,44,.10)!important;
  scrollbar-width:none;
}
.mobile29::-webkit-scrollbar{display:none}
.mobile29 a,.mobile29 button{
  flex:0 0 78px!important;
  min-width:78px!important;
  height:58px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  padding:6px 7px!important;
  border:0!important;
  border-radius:16px!important;
  background:transparent!important;
  color:#7c6972!important;
  cursor:pointer!important;
  box-shadow:none!important;
}
.mobile29 a span,.mobile29 button span{font-size:.9rem!important;color:#b06a82!important;line-height:1!important}
.mobile29 a strong,.mobile29 button strong{font-size:.64rem!important;font-weight:800!important;color:#68535d!important;white-space:nowrap!important}
.mobile29 a.is-current{
  background:linear-gradient(145deg,#f1dfe3,#eee6ef)!important;
  box-shadow:inset 0 -3px 0 var(--v38-rose)!important;
}
.mobile29 a.is-current span,.mobile29 a.is-current strong{color:#7e455c!important}
.mobile29-manage{background:linear-gradient(145deg,#efe5d5,#f4e8e5)!important}
.mobile29-manage span{color:#9e774b!important}

/* Core rhythm and type */
.section{padding:72px 16px!important}
.section-title{
  width:100%!important;
  margin:0 auto 24px!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
  align-items:start!important;
}
.section-title h2{margin:0!important;color:var(--v38-ink)!important;font:500 clamp(2.55rem,12vw,4rem)/.94 Georgia,serif!important;letter-spacing:-.045em!important}
.section-title h2 em{color:var(--v38-rose-deep)!important}
.section-title p:not(.eyebrow),.section-title__side>p{margin:0!important;max-width:650px!important;color:var(--v38-muted)!important;font-size:.96rem!important;line-height:1.72!important}
.eyebrow{color:#a06c79!important;font-size:.63rem!important;letter-spacing:.16em!important;font-weight:900!important}
.section-title--dark h2,.section-title--light h2{color:#fff8f4!important}
.section-title--dark h2 em,.section-title--light h2 em{color:#efc2cf!important}
.section-title--dark .eyebrow,.section-title--light .eyebrow{color:#e6bd80!important}
.section-title--dark .section-title__side>p,.section-title--light .section-title__side>p,.section-title--dark>p,.section-title--light>p{color:#d5c8d1!important}
.section-title__side{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:10px!important}

.button,.module-add-button,.journey-toggle,.calendar28-add,.calendar28-tools-toggle{
  min-height:44px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 15px!important;
  border-radius:999px!important;
  font-size:.72rem!important;
  font-weight:850!important;
  letter-spacing:0!important;
  box-shadow:var(--v38-shadow-soft)!important;
}
.module-add-button{border:1px solid var(--v38-line)!important;background:#fff7f3!important;color:#7d4b5d!important}
.module-add-button--light,.module-add-button--dark{border-color:rgba(255,255,255,.12)!important;background:rgba(255,255,255,.08)!important;color:#fff7f4!important}
.module-item-actions{display:flex!important;gap:6px!important;flex-wrap:wrap!important;margin-top:12px!important}
.module-item-actions button{min-height:33px!important;padding:0 10px!important;border:1px solid rgba(96,58,76,.10)!important;border-radius:999px!important;background:#f8efeb!important;color:#795964!important;font-size:.57rem!important;font-weight:850!important}
.module-item-actions button[data-content-delete]{color:#9c5863!important;background:#f7e8e8!important}

/* HERO: one large romantic painting, text treated as part of the painting */
.hero{
  min-height:100svh!important;
  padding:112px 16px 112px!important;
  display:flex!important;
  align-items:flex-end!important;
  position:relative!important;
  overflow:hidden!important;
  color:white!important;
  background:#1d1723!important;
}
.hero__bg{
  position:absolute!important;inset:0!important;
  background:
    linear-gradient(180deg,rgba(22,16,25,.12) 0%,rgba(22,16,25,.08) 42%,rgba(22,16,25,.74) 100%),
    url("../images/painting-hero.webp") center/cover no-repeat!important;
  filter:none!important;
}
.hero__nebula{background:linear-gradient(180deg,rgba(31,21,31,.02),rgba(31,21,31,.22))!important}
.hero-orbit,.shooting,.hero-constellation{display:none!important}
.hero__content{
  position:relative!important;z-index:3!important;
  width:100%!important;max-width:680px!important;
  padding:20px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:24px!important;
  background:linear-gradient(145deg,rgba(30,22,32,.50),rgba(30,22,32,.24))!important;
  backdrop-filter:blur(12px)!important;
  box-shadow:0 22px 70px rgba(20,12,20,.20)!important;
}
.hero h1{margin:0!important;color:#fffaf6!important;font:500 clamp(3.5rem,17vw,6rem)/.83 Georgia,serif!important;letter-spacing:-.055em!important;text-shadow:0 8px 28px rgba(23,14,22,.34)!important}
.hero h1 em{color:#f4c7d2!important}
.hero__lead{margin:18px 0 0!important;max-width:580px!important;color:#f6edf2!important;font-size:.98rem!important;line-height:1.7!important}
.hero__buttons{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin-top:20px!important}
.hero__buttons .button{width:100%!important}
.button--light{background:#fff6f1!important;color:#6d4053!important;border:0!important}
.button--glass{background:rgba(255,255,255,.09)!important;color:#fff!important;border:1px solid rgba(255,255,255,.16)!important}
.hero-portals{display:none!important}
.hero__metrics{
  position:absolute!important;z-index:3!important;left:16px!important;right:16px!important;bottom:18px!important;
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin:0!important;
}
.hero__metrics article{min-height:84px!important;padding:12px!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:16px!important;background:rgba(34,25,36,.55)!important;backdrop-filter:blur(10px)!important;color:#fff!important}
.hero__metrics strong{font:500 1.55rem Georgia,serif!important;color:#fff!important}.hero__metrics span,.hero__metrics small{font-size:.62rem!important;color:#ddd0da!important;line-height:1.35!important}
.scroll-hint{display:none!important}

/* Reunion: painted station as a real chapter */
.reunion-quick-v17{
  position:relative!important;
  padding:72px 16px!important;
  background:
    linear-gradient(90deg,rgba(31,22,31,.84),rgba(31,22,31,.46)),
    url("../images/painting-reunion.webp") center/cover no-repeat!important;
}
.reunion-quick__inner{width:min(1180px,100%)!important;margin:auto!important}
.reunion-quick__intro h2{color:#fff8f4!important;font:500 clamp(2.5rem,12vw,4.4rem)/.94 Georgia,serif!important}
.reunion-quick__intro p:not(.eyebrow){color:#e8dde4!important;font-size:.9rem!important}
.reunion-countdown-card,.reunion-upcoming-list>*{border:1px solid rgba(255,255,255,.12)!important;background:rgba(35,25,37,.58)!important;backdrop-filter:blur(11px)!important;box-shadow:0 18px 48px rgba(15,10,15,.18)!important}

/* Painting separators: quiet breathing moments */
.chapter-divider{background:var(--v38-cream)!important;color:#8c727c!important}
.chapter-divider p{font-size:.72rem!important}
.painting-breath{margin:0!important;height:170px!important;overflow:hidden!important;background:#ead9d2!important}
.painting-breath img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;filter:saturate(.93) brightness(.96)!important}

/* Story */
.story-section{background:linear-gradient(180deg,#fbf5ef,#f3e7e3)!important}
.story-gallery{width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-bottom:18px!important}
.story-gallery__card{position:relative!important;min-height:220px!important;overflow:hidden!important;border-radius:24px!important;border:1px solid var(--v38-line)!important;box-shadow:var(--v38-shadow)!important;background:#eaded8!important}
.story-gallery__card img{width:100%!important;height:100%!important;min-height:220px!important;object-fit:cover!important}
.story-gallery__card figcaption{position:absolute!important;left:12px!important;right:12px!important;bottom:12px!important;padding:10px 12px!important;border-radius:13px!important;color:white!important;background:rgba(42,29,39,.58)!important;backdrop-filter:blur(10px)!important;font-size:.72rem!important}
.memory-main{border-radius:26px!important;overflow:hidden!important;box-shadow:var(--v38-shadow)!important}
.memory-main__content{background:linear-gradient(180deg,rgba(29,20,29,.02),rgba(29,20,29,.78))!important}
.memory-main__content p{font-size:.88rem!important;line-height:1.65!important}
.memory-dates button{border-radius:999px!important}

/* Constellation remains the night chapter but uses softer colors */
.constellation-section{background:radial-gradient(circle at 50% 18%,#3b2b49 0,#201826 45%,#151219 100%)!important}
.constellation-title{margin-bottom:18px!important}
.constellation-universe{border:1px solid rgba(255,255,255,.08)!important;border-radius:28px!important;box-shadow:0 28px 70px rgba(15,10,18,.28)!important}
.constellation-letter{border-radius:20px!important}

/* Petits riens */
.little-things{background:linear-gradient(180deg,#f8eee9,#f1e8e1)!important}
.section-scene{width:100%!important;margin:0 auto 18px!important;position:relative!important;overflow:hidden!important;border:1px solid var(--v38-line)!important;border-radius:24px!important;box-shadow:var(--v38-shadow)!important;background:#eadfd9!important}
.section-scene img{width:100%!important;height:220px!important;object-fit:cover!important;display:block!important}
.section-scene figcaption{position:absolute!important;left:12px!important;right:12px!important;bottom:12px!important;padding:10px 12px!important;border-radius:13px!important;color:#fff!important;background:rgba(45,30,39,.58)!important;backdrop-filter:blur(9px)!important;font-size:.7rem!important}
.little-grid{gap:10px!important}
.little-grid>article{border:1px solid var(--v38-line)!important;border-radius:22px!important;box-shadow:var(--v38-shadow-soft)!important}
.journey-card__sky{background:linear-gradient(180deg,rgba(26,18,28,.05),rgba(26,18,28,.5)),url("../images/painting-reunion.webp") center/cover no-repeat!important}
.flip-note__front{background:linear-gradient(180deg,rgba(255,250,246,.82),rgba(255,250,246,.94)),url("../images/painting-little-things.webp") center/cover no-repeat!important}
.flip-note__back{background:linear-gradient(180deg,rgba(43,29,42,.60),rgba(43,29,42,.86)),url("../images/painting-book-us.webp") center/cover no-repeat!important}
.wish-card::before{background:url("../images/painting-divider.webp") center/cover no-repeat!important;opacity:.30!important}

/* Calendar */
.calendar28-section{background:#fbf5ef!important}
.calendar28-shell{border:1px solid var(--v38-line)!important;border-radius:26px!important;background:rgba(255,250,246,.96)!important;box-shadow:var(--v38-shadow)!important;overflow:hidden!important}
.calendar28-header{background:rgba(255,250,246,.97)!important;border-bottom:1px solid var(--v38-line)!important}
.calendar28-month-day,.calendar28-week-day,.calendar28-detail-event{border-color:rgba(96,60,77,.08)!important}
.calendar28-add{background:var(--v38-rose-deep)!important;color:white!important;border:0!important}

/* Ideas */
.together-section{background:linear-gradient(180deg,#2c202d,#3b2837)!important}
.idea-stage{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
.idea-panel{min-height:240px!important;padding:20px!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:24px!important;background:linear-gradient(145deg,rgba(255,250,246,.96),rgba(246,235,233,.95))!important;color:var(--v38-ink)!important;box-shadow:0 18px 42px rgba(13,9,14,.14)!important}
.idea-panel__body p{color:var(--v38-muted)!important;font-size:.88rem!important;line-height:1.65!important}
.idea-panel__rhythm{color:#9b6b78!important;font-size:.58rem!important;font-weight:900!important}
.idea-panel__icon{font-size:1.65rem!important}.idea-panel__number{color:#b8a3ad!important}
.idea-panel__actions{position:relative!important;z-index:3!important}

/* Books */
.books-section{background:linear-gradient(180deg,#fbf5ef,#f2e7e1)!important}
.books-real{gap:12px!important}
.real-book{border:1px solid var(--v38-line)!important;border-radius:24px!important;background:#fffaf6!important;box-shadow:var(--v38-shadow-soft)!important}
.real-book__cover{border-radius:20px 20px 0 0!important;overflow:hidden!important}
.real-book__copy h3{color:var(--v38-ink)!important}

/* Envies: one single collection, same visual language for old and new */
.envies-section{background:linear-gradient(180deg,#2a1d29,#3d2938 58%,#231923)!important}
.envies-block{width:100%!important;padding:12px!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:26px!important;background:rgba(255,255,255,.035)!important;box-shadow:0 24px 68px rgba(14,9,14,.16)!important}
.envies-block__head h3{color:#fff8f4!important}.envies-block__head span{color:#c6b6c0!important;font-size:.65rem!important}
.envies-scene{position:relative!important;margin:0 0 12px!important;overflow:hidden!important;border-radius:20px!important}.envies-scene img{width:100%!important;height:210px!important;object-fit:cover!important;display:block!important}.envies-scene figcaption{position:absolute!important;left:12px!important;right:12px!important;bottom:12px!important;padding:9px 11px!important;border-radius:12px!important;background:rgba(38,26,36,.62)!important;color:white!important;font-size:.68rem!important;backdrop-filter:blur(9px)!important}
.intimate-picker{display:grid!important;gap:9px!important}
.intimate-tabs{display:flex!important;gap:6px!important;overflow-x:auto!important;padding-bottom:3px!important;scrollbar-width:none!important}.intimate-tabs::-webkit-scrollbar{display:none}
.intimate-tab{flex:0 0 auto!important;min-width:120px!important;min-height:56px!important;padding:9px 11px!important;border:1px solid rgba(255,255,255,.09)!important;border-radius:16px!important;background:rgba(255,255,255,.045)!important;color:#d9ccd4!important}.intimate-tab strong{font-size:.72rem!important}.intimate-tab.is-active{background:linear-gradient(145deg,rgba(188,105,135,.34),rgba(130,113,162,.28))!important;border-color:rgba(255,255,255,.15)!important;color:white!important}.intimate-tab--add{border-style:dashed!important;color:#ecc5d0!important}
.intimate-display{display:grid!important;grid-template-columns:1fr!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:22px!important;background:rgba(255,250,246,.97)!important;color:var(--v38-ink)!important}
.intimate-photo{min-height:310px!important;background:#eee0dc!important}.intimate-photo img{width:100%!important;height:100%!important;max-height:420px!important;object-fit:cover!important}.intimate-photo.has-two{display:grid!important;grid-template-columns:1fr 1fr!important}.intimate-copy{padding:18px!important}.intimate-copy h3{color:var(--v38-ink)!important;font:500 2rem/1 Georgia,serif!important}.intimate-copy>p:not(.eyebrow){color:var(--v38-muted)!important;font-size:.9rem!important;line-height:1.65!important}.intimate-links{display:flex!important;flex-wrap:wrap!important;gap:7px!important}.intimate-links a{min-height:38px!important;display:inline-flex!important;align-items:center!important;gap:7px!important;padding:0 11px!important;border-radius:999px!important;background:#f4e8e7!important;color:#70485a!important;font-size:.67rem!important;font-weight:850!important}
#gifts-grid[hidden]{display:none!important}

/* Book of us */
.book30-section{background:linear-gradient(180deg,#f9f0e9,#efe2dc)!important}
.book30-library{border-radius:26px!important;box-shadow:var(--v38-shadow)!important}.book30-cover{background:linear-gradient(145deg,#7e4d60,#4c354c)!important;border-radius:22px!important}.book30-index{background:#fffaf6!important;border-radius:22px!important}.book30-entry{min-height:76px!important}.book30-entry small{font-size:.58rem!important}.book30-entry strong{font-size:.9rem!important}

/* Manage is a separate internal page, but stays in the same document and same state */
.manage-view{
  position:fixed!important;z-index:850!important;inset:0!important;
  display:block!important;overflow:auto!important;
  padding:0 0 110px!important;
  background:
    radial-gradient(circle at 90% 0,rgba(190,110,140,.13),transparent 26%),
    radial-gradient(circle at 10% 22%,rgba(128,112,161,.12),transparent 26%),
    #f8f0ea!important;
  opacity:0!important;visibility:hidden!important;transform:translateY(28px)!important;pointer-events:none!important;
  transition:opacity .28s ease,transform .28s ease,visibility .28s ease!important;
}
.manage-view.is-open{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important}
.manage-view__top{position:sticky!important;top:0!important;z-index:3!important;display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center!important;gap:10px!important;padding:10px 12px!important;border-bottom:1px solid var(--v38-line)!important;background:rgba(248,240,234,.93)!important;backdrop-filter:blur(18px)!important}
.manage-view__close,.manage-view__close-text{border:0!important;border-radius:13px!important;background:#fff8f4!important;color:#684955!important;box-shadow:var(--v38-shadow-soft)!important;cursor:pointer!important}.manage-view__close{width:42px!important;height:42px!important;font-size:1.1rem!important}.manage-view__close-text{min-height:42px!important;padding:0 12px!important;font-size:.68rem!important;font-weight:850!important}.manage-view__brand{display:flex!important;align-items:center!important;gap:9px!important}.manage-view__brand>span{width:40px!important;height:40px!important;display:grid!important;place-items:center!important;border-radius:13px!important;background:linear-gradient(145deg,#b86a83,#806f9f)!important;color:white!important;font:600 .75rem Georgia,serif!important}.manage-view__brand small{display:block!important;color:#9a7b86!important;font-size:.42rem!important;letter-spacing:.12em!important}.manage-view__brand strong{display:block!important;color:#49333f!important;font:500 1rem Georgia,serif!important}.manage-view>.section-title,.manage-dashboard{width:min(1120px,calc(100% - 28px))!important;margin-left:auto!important;margin-right:auto!important}.manage-view>.section-title{padding-top:34px!important}.manage-summary{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.manage-summary article{min-height:104px!important;padding:14px!important;border:1px solid var(--v38-line)!important;border-radius:18px!important;background:#fffaf6!important;box-shadow:var(--v38-shadow-soft)!important}.manage-summary strong{font:500 1.8rem Georgia,serif!important;color:var(--v38-ink)!important}.manage-tools{display:grid!important;gap:10px!important;margin-top:10px!important}.manage-backup-card,.manage-browser{border:1px solid var(--v38-line)!important;border-radius:22px!important;background:#fffaf6!important;box-shadow:var(--v38-shadow-soft)!important;overflow:hidden!important}.manage-backup-card figure img{width:100%!important;height:185px!important;object-fit:cover!important}.manage-backup-card>div,.manage-browser{padding:16px!important}.manage-search{min-height:46px!important;border-radius:14px!important;background:#f6ece8!important}.manage-filters button{min-height:36px!important;border-radius:999px!important;font-size:.62rem!important}.manage-item{border-radius:14px!important;background:#fff!important}.manage-item__copy strong{font-size:.86rem!important}.manage-item__copy span{font-size:.64rem!important}

/* Footer */
.site-footer{padding:48px 16px 112px!important;background:linear-gradient(180deg,rgba(26,19,27,.80),rgba(18,15,20,.96)),url("../images/painting-divider.webp") center/cover no-repeat!important;color:#f2e7ed!important}.site-footer__brand strong{color:white!important}.site-footer>p{color:#c5b7bf!important;font-size:.84rem!important}.site-footer nav a,.site-footer nav button{min-height:38px!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:999px!important;background:rgba(255,255,255,.055)!important;color:#e9dde4!important;font-size:.64rem!important}

/* Editor above manage view */
.content-editor-backdrop{z-index:930!important}.content-editor{z-index:940!important}.content-editor__sheet{border-radius:22px!important;background:linear-gradient(145deg,#271d2b,#3b2838)!important}.studio-fields label>span{font-size:.66rem!important}.studio-fields input,.studio-fields select,.studio-fields textarea{min-height:44px!important;font-size:.82rem!important}

/* Desktop is deliberately different, not a stretched phone */
@media(min-width:960px){
  body{padding-bottom:88px!important}
  .nav29{left:22px!important;right:auto!important;width:auto!important;min-width:184px!important}
  .section{padding:112px clamp(34px,6vw,92px)!important}
  .section-title{width:min(1260px,100%)!important;grid-template-columns:minmax(0,1.05fr) minmax(320px,.55fr)!important;gap:64px!important;align-items:end!important;margin-bottom:38px!important}
  .section-title h2{font-size:clamp(4rem,5.6vw,6.1rem)!important}
  .hero{padding:150px clamp(40px,6vw,96px) 120px!important;align-items:center!important}
  .hero__content{max-width:700px!important;padding:28px!important}
  .hero h1{font-size:clamp(5.2rem,7.3vw,7.8rem)!important}
  .hero__buttons{display:flex!important;width:auto!important}.hero__buttons .button{width:auto!important}
  .hero-portals{display:grid!important;position:absolute!important;z-index:2!important;right:5vw!important;top:19%!important;width:min(500px,38vw)!important;height:450px!important;grid-template-columns:1.2fr .8fr!important;grid-template-rows:1fr 1fr!important;gap:12px!important}
  .portal{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;transform:none!important;border-radius:24px!important;overflow:hidden!important;box-shadow:0 22px 70px rgba(18,11,18,.28)!important}.portal img{width:100%!important;height:100%!important;object-fit:cover!important}.portal--one{grid-row:1/3!important}.portal--two,.portal--three{min-height:0!important}.hero__metrics{left:clamp(40px,6vw,96px)!important;right:clamp(40px,6vw,96px)!important;grid-template-columns:repeat(4,1fr)!important;bottom:24px!important}.hero__metrics article{min-height:78px!important}
  .reunion-quick-v17{padding:105px clamp(34px,6vw,92px)!important}
  .story-gallery{width:min(1260px,100%)!important;grid-template-columns:1.3fr .7fr!important;gap:14px!important}.story-gallery__card,.story-gallery__card img{min-height:330px!important}
  .section-scene{width:min(1260px,100%)!important}.section-scene img{height:340px!important}
  .painting-breath{height:270px!important}
  .idea-stage{grid-template-columns:repeat(3,minmax(0,1fr))!important;width:min(1260px,100%)!important;margin:auto!important}.idea-panel{min-height:300px!important}
  .envies-block{width:min(1260px,100%)!important;padding:18px!important}.envies-scene img{height:300px!important}.intimate-picker{grid-template-columns:260px minmax(0,1fr)!important}.intimate-tabs{display:grid!important;overflow:visible!important}.intimate-tab{width:100%!important;min-width:0!important}.intimate-display{grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)!important}.intimate-photo{min-height:520px!important}.intimate-photo img{max-height:560px!important}
  .manage-summary{grid-template-columns:repeat(6,minmax(0,1fr))!important}.manage-tools{grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr)!important;align-items:start!important}.manage-backup-card figure img{height:245px!important}
  .mobile29{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:8px!important;padding:8px clamp(24px,5vw,80px)!important}.mobile29 a,.mobile29 button{min-width:0!important;width:100%!important;flex:auto!important}
}

@media(max-width:520px){
  .hero__metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.hero__metrics article{min-height:76px!important}
  .section{padding-left:12px!important;padding-right:12px!important}.section-title h2{font-size:clamp(2.35rem,12.5vw,3.35rem)!important}
  .manage-view>.section-title,.manage-dashboard{width:min(100% - 18px,1120px)!important}.manage-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mobile29 a,.mobile29 button{flex-basis:74px!important;min-width:74px!important}
}

/* V38 finishing */
.gate__image{background:url("../images/painting-hero.webp") center/cover no-repeat!important;filter:saturate(.92) brightness(.72)!important}
.gate__veil{background:linear-gradient(180deg,rgba(26,18,27,.18),rgba(26,18,27,.72))!important}
.gate__content{border:1px solid rgba(255,255,255,.14)!important;background:rgba(34,24,35,.52)!important;backdrop-filter:blur(14px)!important;border-radius:26px!important}
.manage-view .reveal-v13,.manage-view .is-revealed{opacity:1!important;transform:none!important;filter:none!important}
.manage-view .section-title{opacity:1!important;transform:none!important;filter:none!important}

/* V38 — polish the chrome */
.nav29{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  pointer-events:none!important;
}
.nav29-brand,.nav29-lock{pointer-events:auto!important}
.nav29-brand>div{display:none!important}
.nav29-brand>span,.nav29-lock{
  background:rgba(31,23,33,.48)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  backdrop-filter:blur(12px)!important;
  box-shadow:0 9px 28px rgba(24,14,23,.12)!important;
}
body.manage-open .mobile29{transform:translateY(115%)!important;opacity:0!important;pointer-events:none!important}
body.manage-open .nav29{opacity:0!important;pointer-events:none!important}
.mobile29{transition:transform .28s ease,opacity .28s ease!important}
.nav29{transition:opacity .22s ease!important}


/* =========================================================
   V39 — HISTOIRE ÉDITABLE + LIVRES CORRIGÉS
   ========================================================= */

/* Each memory now owns a visual atmosphere behind the page. */
.story-section{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  transition:background .45s ease;
}
.story-section::before{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0;
  background-image:
    linear-gradient(180deg,rgba(251,246,240,.94),rgba(248,239,233,.97)),
    var(--story-background, url("../images/painting-story.webp"));
  background-position:center;
  background-size:cover;
  filter:saturate(.88);
  transition:background-image .45s ease,filter .45s ease;
}
.story-section::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 14% 20%,rgba(255,255,255,.72),transparent 28%),
    linear-gradient(90deg,rgba(255,249,245,.30),rgba(255,249,245,.05));
}
.memory-stage{
  position:relative!important;
}
.memory-scene{
  position:absolute;
  inset:-18px;
  z-index:0;
  border-radius:36px;
  opacity:.22;
  background-position:center!important;
  background-size:cover!important;
  filter:blur(18px) saturate(.9);
  transform:scale(1.04);
  transition:background-image .42s ease,opacity .42s ease;
}
.memory-main,
.memory-path{
  position:relative;
  z-index:1;
}
.memory-main[data-story-theme="letters"]{--story-accent:#b56f88}
.memory-main[data-story-theme="reunion"]{--story-accent:#c08a68}
.memory-main[data-story-theme="cocoon"]{--story-accent:#8c789f}
.memory-main[data-story-theme="nature"]{--story-accent:#748f79}
.memory-main[data-story-theme="promise"]{--story-accent:#c29c62}
.memory-main[data-story-theme="journey"]{--story-accent:#748ba8}
.memory-main__date{
  border-color:color-mix(in srgb,var(--story-accent,#b56f88) 45%,transparent)!important;
}
.memory-main__actions{
  position:absolute;
  z-index:8;
  right:16px;
  bottom:16px;
  justify-content:flex-end;
}
.memory-main__actions button{
  color:#fff!important;
  border-color:rgba(255,255,255,.18)!important;
  background:rgba(38,27,37,.58)!important;
  backdrop-filter:blur(10px);
}
.memory-date-btn--add{
  border-style:dashed!important;
  color:#9d6077!important;
  background:rgba(255,250,247,.64)!important;
}

/* Book cards: cover is no longer squeezed into a narrow strip. */
.books-real{
  align-items:stretch!important;
}
.real-book{
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
}
.real-book__cover{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  aspect-ratio:2 / 3!important;
  border-radius:22px 22px 0 0!important;
  background:linear-gradient(145deg,#eaded8,#f7eee9)!important;
  transform:none!important;
  box-shadow:none!important;
}
.real-book:hover .real-book__cover{
  transform:none!important;
  box-shadow:none!important;
}
.real-book__cover img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  padding:0!important;
  background:#f4ece7;
}
.real-book__copy{
  width:100%!important;
  margin:0!important;
  padding:18px 18px 20px!important;
  text-align:left!important;
}
.real-book__copy h3{
  margin:0!important;
  max-width:88%!important;
  font-size:clamp(1.5rem,2vw,2rem)!important;
  line-height:1.02!important;
}
.real-book__links{
  justify-content:flex-start!important;
  flex-wrap:wrap!important;
}
.real-book__actions{
  margin-top:14px!important;
}
.real-book--empty{
  min-height:360px;
  display:grid!important;
  place-items:center;
  align-content:center;
  gap:8px;
  border:1px dashed rgba(136,88,108,.2)!important;
  color:#755664;
  cursor:pointer;
}
.real-book__empty-mark{
  width:58px;height:58px;display:grid;place-items:center;
  border-radius:18px;
  background:#f1e1e6;
  font-size:1.6rem;
}
.real-book--empty strong{font:500 1.5rem Georgia,serif}
.real-book--empty span{color:#8c7780;font-size:.8rem}

/* Manage view can now include the built-in Story and Books as well. */
.manage-summary{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
@media(min-width:760px){
  .manage-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(min-width:1100px){
  .manage-summary{grid-template-columns:repeat(7,minmax(0,1fr))!important}
}

@media(max-width:760px){
  .memory-main__actions{
    left:14px;
    right:14px;
    bottom:13px;
  }
  .real-book{
    display:grid!important;
    grid-template-columns:118px minmax(0,1fr)!important;
    flex-direction:initial!important;
    min-height:188px;
  }
  .real-book__cover{
    width:118px!important;
    height:188px!important;
    aspect-ratio:auto!important;
    border-radius:18px 0 0 18px!important;
  }
  .real-book__copy{
    padding:16px 13px!important;
    text-align:left!important;
  }
  .real-book__copy>span{
    font-size:2.2rem!important;
  }
  .real-book__copy h3{
    max-width:100%!important;
    font-size:1.35rem!important;
  }
  .real-book__links a{
    min-height:34px!important;
    padding:0 9px!important;
    font-size:.58rem!important;
  }
  .real-book__actions{
    margin-top:10px!important;
  }
}


/* V39.1 — Book cover presentation:
   use the actual cover as a foreground object with an atmospheric backdrop,
   instead of stretching the Cultura image canvas. */
.real-book__cover{
  position:relative!important;
  isolation:isolate;
  display:grid!important;
  place-items:center!important;
  background:
    linear-gradient(145deg,rgba(73,51,64,.88),rgba(151,103,122,.68))!important;
}
.real-book__cover::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  inset:-14%!important;
  background-image:var(--book-cover)!important;
  background-size:cover!important;
  background-position:center!important;
  filter:blur(24px) saturate(.82) brightness(.68)!important;
  opacity:.54!important;
  transform:scale(1.12)!important;
}
.real-book__cover::before{
  z-index:1!important;
  left:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:auto!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(29,20,29,.20))!important;
  border:0!important;
}
.real-book__cover img{
  position:relative!important;
  z-index:3!important;
  inset:auto!important;
  width:auto!important;
  max-width:88%!important;
  height:88%!important;
  max-height:88%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  box-shadow:0 18px 38px rgba(20,12,18,.28)!important;
  transform:none!important;
}
.real-book__cover .cover-fallback{
  z-index:2!important;
}

/* Desktop books become compact editorial cards instead of giant white panels. */
@media(min-width:761px){
  .books-real{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:16px!important;
  }
  .real-book{
    display:grid!important;
    grid-template-columns:minmax(135px,42%) minmax(0,1fr)!important;
    grid-template-rows:1fr!important;
    min-height:310px!important;
  }
  .real-book__cover{
    width:100%!important;
    height:100%!important;
    min-height:310px!important;
    aspect-ratio:auto!important;
    border-radius:22px 0 0 22px!important;
  }
  .real-book__copy{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:22px 18px!important;
  }
  .real-book__copy>span{
    top:12px!important;
  }
}

/* The current history background is now obvious but still soft enough for reading. */
.story-section[data-story-theme="letters"]::after{
  background:linear-gradient(90deg,rgba(255,247,243,.72),rgba(235,213,222,.22))!important;
}
.story-section[data-story-theme="reunion"]::after{
  background:linear-gradient(90deg,rgba(255,243,231,.70),rgba(212,164,128,.18))!important;
}
.story-section[data-story-theme="cocoon"]::after{
  background:linear-gradient(90deg,rgba(248,239,246,.72),rgba(151,125,162,.16))!important;
}
.story-section[data-story-theme="nature"]::after{
  background:linear-gradient(90deg,rgba(245,244,231,.74),rgba(116,149,121,.16))!important;
}
.story-section[data-story-theme="promise"]::after{
  background:linear-gradient(90deg,rgba(255,245,233,.72),rgba(196,158,99,.18))!important;
}
.story-section[data-story-theme="journey"]::after{
  background:linear-gradient(90deg,rgba(239,242,247,.72),rgba(113,139,169,.17))!important;
}


/* =========================================================
   V40 — FORMULAIRES ROMANTIQUES + TAGS CALENDRIER
   ========================================================= */

/* Gate / password */
.gate form{
  width:min(470px,100%);
  margin:26px auto 0!important;
}
.gate label[for="password"]{
  margin:0 0 8px 12px!important;
  color:#f0dce4!important;
  font-size:.68rem!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
.gate__row{
  min-height:58px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) 40px auto!important;
  align-items:center!important;
  gap:4px!important;
  padding:6px!important;
  border:1px solid rgba(255,238,229,.24)!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,rgba(255,250,247,.14),rgba(255,255,255,.055))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 16px 42px rgba(12,8,14,.22)!important;
  backdrop-filter:blur(18px)!important;
}
.gate__key{
  width:37px;height:37px;display:grid;place-items:center;border-radius:12px;
  color:#f4c7d6;background:rgba(255,255,255,.07);font-size:.9rem;
}
.gate__row input{
  height:46px!important;padding:0 8px!important;border:0!important;outline:0!important;
  color:#fff8f5!important;background:transparent!important;font-family:inherit!important;
  font-size:.92rem!important;letter-spacing:.02em!important;
}
.gate__row input::placeholder{color:rgba(245,228,236,.55)!important}
.gate__reveal{
  width:38px!important;height:38px!important;padding:0!important;display:grid!important;place-items:center!important;
  border:1px solid rgba(255,255,255,.08)!important;border-radius:12px!important;
  color:#ead4dc!important;background:rgba(255,255,255,.055)!important;font-size:.82rem!important;
}
.gate__enter{
  min-height:44px!important;padding:0 18px!important;border-radius:14px!important;
  color:#4b3140!important;background:linear-gradient(135deg,#f4dce4,#f5e9dc)!important;
  box-shadow:0 8px 22px rgba(15,9,14,.16)!important;font-size:.72rem!important;
}

/* Context editor */
.content-editor-backdrop{
  background:linear-gradient(180deg,rgba(29,20,29,.60),rgba(29,20,29,.76)),
             url("../images/painting-divider.webp") center/cover no-repeat!important;
  backdrop-filter:blur(12px) saturate(.8)!important;
}
.content-editor__sheet{
  position:relative!important;isolation:isolate!important;width:min(780px,100%)!important;
  padding:0!important;overflow:hidden auto!important;color:#4d3742!important;
  border:1px solid rgba(128,83,102,.15)!important;border-radius:28px!important;
  background:linear-gradient(180deg,rgba(255,250,246,.98),rgba(249,239,234,.98))!important;
  box-shadow:0 34px 110px rgba(29,17,27,.30)!important;
}
.content-editor__sheet::before{
  content:"";position:absolute;z-index:-1;right:-60px;top:-70px;width:300px;height:230px;
  opacity:.10;background:url("../images/painting-calendar.webp") center/cover no-repeat;
  border-radius:50%;filter:blur(3px);
}
.content-editor__head{
  position:sticky!important;top:0!important;z-index:5!important;padding:18px 20px!important;
  border-bottom:1px solid rgba(112,74,92,.10)!important;background:rgba(255,249,245,.94)!important;
  backdrop-filter:blur(16px)!important;
}
.content-editor__head small{color:#ad6b83!important;font-size:.56rem!important;letter-spacing:.16em!important}
.content-editor__head strong{margin-top:4px!important;color:#4a3340!important;font-size:1.75rem!important}
.content-editor__head>button{
  width:42px!important;height:42px!important;color:#805668!important;
  border:1px solid rgba(117,77,95,.10)!important;background:#f3e7e5!important;
}
.studio-fields{padding:18px 20px 4px!important;gap:14px!important}
.studio-grid{gap:12px!important}
.studio-fields label>span{color:#6f5360!important;font-size:.72rem!important;letter-spacing:.01em!important}
.studio-fields label>span small{color:#a28c95!important;font-size:.61rem!important}
.studio-fields input,.studio-fields select,.studio-fields textarea{
  min-height:48px!important;padding:11px 13px!important;color:#493640!important;
  border:1px solid rgba(111,75,91,.13)!important;border-radius:14px!important;
  background:rgba(255,252,249,.94)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 6px 18px rgba(87,50,67,.035)!important;
  font-size:.88rem!important;
}
.studio-fields input:focus,.studio-fields select:focus,.studio-fields textarea:focus{
  border-color:rgba(181,107,132,.44)!important;background:#fff!important;
  box-shadow:0 0 0 4px rgba(181,107,132,.08)!important;
}
.studio-fields option{color:#493640!important;background:#fffaf6!important}
.studio-fields textarea{min-height:120px!important;resize:vertical!important}
.studio-check{
  min-height:48px!important;border:1px solid rgba(111,75,91,.10)!important;border-radius:14px!important;
  background:#f7eeea!important;
}
.studio-check span{color:#6c5360!important;font-size:.72rem!important}
.studio-check input{accent-color:#b86b85!important}
.studio-fields .is-disabled{opacity:.42!important}
.content-editor__foot{
  position:sticky!important;bottom:0!important;z-index:5!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;margin-top:12px!important;
  padding:14px 20px 18px!important;border-top:1px solid rgba(112,74,92,.10)!important;
  background:rgba(255,249,245,.96)!important;backdrop-filter:blur(16px)!important;
}
.content-editor__cancel,.studio-save{min-height:45px!important;padding:0 16px!important;font-size:.71rem!important}
.content-editor__cancel{color:#795b68!important;border:1px solid rgba(112,74,92,.12)!important;background:#f5ebe7!important}
.studio-save{
  color:white!important;background:linear-gradient(135deg,#b66b84,#89749f)!important;
  box-shadow:0 10px 24px rgba(117,69,91,.18)!important;
}
#studio-status{color:#806d76!important;font-size:.66rem!important}
#studio-status[data-tone="ok"]{color:#668777!important}
#studio-status[data-tone="error"]{color:#a95161!important}

/* Calendar type tags */
.calendar-editor-intro{
  display:flex;align-items:center;gap:11px;padding:12px 14px;
  border:1px solid rgba(111,75,91,.10);border-radius:16px;
  background:linear-gradient(135deg,rgba(244,226,233,.88),rgba(242,235,246,.82));
}
.calendar-editor-intro>span{
  width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;border-radius:13px;
  color:white;background:linear-gradient(135deg,#bd728c,#8373a0);
  box-shadow:0 8px 20px rgba(119,71,94,.14);
}
.calendar-editor-intro strong{display:block;color:#513944;font:500 1rem Georgia,serif}
.calendar-editor-intro small{display:block;margin-top:2px;color:#8a747e;font-size:.68rem}
.studio-kind-tags{
  display:flex;gap:7px;overflow-x:auto;padding:2px 0 5px;scrollbar-width:none;
}
.studio-kind-tags::-webkit-scrollbar{display:none}
.studio-kind-tag{
  flex:0 0 auto;min-height:48px;display:flex!important;align-items:center;gap:7px!important;
  padding:7px 11px;border:1px solid rgba(111,75,91,.11);border-radius:999px;
  color:#7d6871;background:#f7eeea;cursor:pointer;transition:.18s ease;
}
.studio-kind-tag input{
  position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;
}
.studio-kind-tag i{
  width:29px;height:29px;display:grid;place-items:center;border-radius:50%;
  color:#8c6073;background:#fff9f5;font-style:normal;
}
.studio-kind-tag span{color:inherit!important;font-size:.68rem!important;white-space:nowrap}
.studio-kind-tag.is-active{
  color:#fff!important;border-color:transparent!important;
  background:linear-gradient(135deg,#b96e88,#88759f)!important;
  box-shadow:0 8px 20px rgba(117,69,91,.15);
}
.studio-kind-tag.is-active i{color:#fff;background:rgba(255,255,255,.12)}

.calendar28-filter[data-cal28-filter="custody"] i{background:#6f9a7b!important}
.calendar28-filter[data-cal28-filter="work"] i{background:#8d7a9f!important}
.cal28-custom-custody,.cal28-custody{background:#e2efe7!important;color:#4f745d!important}
.cal28-custom-work,.cal28-work{background:#ece7f2!important;color:#6c5b80!important}
.cal28-custom-school{background:#e3edf4!important;color:#58738d!important}
.cal28-custom-holiday{background:#f4e4ea!important;color:#94536b!important}

@media(max-width:620px){
  .gate__row{grid-template-columns:auto minmax(0,1fr) 38px!important}
  .gate__enter{grid-column:1/-1!important;width:100%!important}
  .content-editor{inset:7px!important}
  .content-editor__sheet{max-height:calc(100vh - 14px)!important;border-radius:22px!important}
  .content-editor__head{padding:15px 15px 13px!important}
  .content-editor__head strong{font-size:1.42rem!important}
  .studio-fields{padding:14px 15px 2px!important}
  .studio-grid--2{grid-template-columns:1fr!important}
  .content-editor__foot{grid-template-columns:1fr 1fr!important;padding:12px 15px 15px!important}
  #studio-status{grid-column:1/-1!important;grid-row:1!important}
}


/* V41 — champ mot de passe arrondi */
.gate__row input#password{
  border-radius:14px!important;
  background:rgba(255,255,255,.055)!important;
  padding:0 12px!important;
}
.gate__row input#password:focus{
  background:rgba(255,255,255,.09)!important;
  box-shadow:0 0 0 3px rgba(244,199,214,.10)!important;
}


/* =========================================================
   V42 — GÉRER TOUT LE CONTENU DÉJÀ PRÉSENT
   ========================================================= */

.manage-item__type{
  white-space:nowrap;
}
.manage-item .module-item-actions button[data-calendar-builtin-delete]{
  color:#9b5161;
  background:#f5e4e7;
}
.calendar28-detail-actions button[data-calendar-builtin-delete]{
  color:#9b5161!important;
  background:#f5e4e7!important;
}
.book30-entry-shell:not(.is-custom){
  border-color:rgba(122,86,102,.10);
}
.constellation-letter__actions{
  display:flex!important;
}


/* =========================================================
   V43 — GÉRER, RÉPÉTITIONS, PICKERS & COMMANDES INTÉGRÉES
   ========================================================= */

/* Header actions are now management shortcuts, not misplaced add buttons. */
.module-manage-button{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 14px;
  border:1px solid rgba(105,70,87,.12);
  border-radius:999px;
  color:#745362;
  background:rgba(255,250,246,.74);
  box-shadow:0 9px 24px rgba(71,42,58,.06);
  cursor:pointer;
  font-size:.66rem;
  font-weight:850;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.module-manage-button:hover{
  transform:translateY(-2px);
  background:#fffaf7;
  box-shadow:0 12px 28px rgba(71,42,58,.1);
}
.module-manage-button--dark{
  color:#efe5eb;
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.055);
  box-shadow:none;
}
.module-manage-button--dark:hover{background:rgba(255,255,255,.10)}

/* Integrated add controls */
.constellation-add-node{
  position:absolute;
  z-index:8;
  right:18px;
  bottom:18px;
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:2px;
  border:1px dashed rgba(255,255,255,.22);
  border-radius:50%;
  color:#f7e7ed;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px);
  cursor:pointer;
  box-shadow:0 12px 36px rgba(5,4,10,.18);
}
.constellation-add-node span{font-size:1.25rem;line-height:1}
.constellation-add-node small{font-size:.5rem;font-weight:850}

.idea-panel--add{
  cursor:pointer!important;
  text-align:left!important;
  border-style:dashed!important;
  background:
    linear-gradient(145deg,rgba(255,250,247,.88),rgba(245,234,239,.90))!important;
}
.idea-panel--add:hover{transform:translateY(-4px)!important}
.idea-panel--add .idea-panel__icon{
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(135deg,#bb728b,#8875a0);
}
.real-book--add{
  cursor:pointer!important;
  border-style:dashed!important;
}
.book30-entry--add{
  width:100%;
  border:1px dashed rgba(130,88,106,.18)!important;
  background:linear-gradient(135deg,#fbf3ef,#f5e9ee)!important;
}

/* Themed native file input. */
.studio-fields input[type="file"]{
  min-height:54px!important;
  padding:6px!important;
  color:#806a74!important;
  background:#fbf4f0!important;
}
.studio-fields input[type="file"]::file-selector-button{
  min-height:40px;
  margin-right:10px;
  padding:0 14px;
  border:0;
  border-radius:12px;
  color:#fff;
  background:linear-gradient(135deg,#b66d85,#8b759f);
  box-shadow:0 7px 18px rgba(100,61,80,.13);
  cursor:pointer;
  font:800 .68rem/1 inherit;
}

/* Romantic read-only date/time fields: click opens our own picker. */
.studio-fields [data-romantic-date],
.studio-fields [data-romantic-time]{
  cursor:pointer!important;
  caret-color:transparent!important;
}
.romantic-field{
  position:relative;
}
.romantic-field input{
  padding-right:42px!important;
}
.romantic-field>b{
  position:absolute;
  top:50%;
  right:8px;
  translate:0 -50%;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#a4667d;
  background:#f1e2e7;
  pointer-events:none;
  font-weight:700;
}
.romantic-field--time>b{color:#746590;background:#ebe7f2}

/* Calendar mode: unique / multi / repeat */
.studio-calendar-mode{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.studio-calendar-mode__item{
  min-height:68px;
  display:grid!important;
  place-items:center;
  align-content:center;
  gap:4px!important;
  padding:9px;
  border:1px solid rgba(111,75,91,.11);
  border-radius:16px;
  color:#806c75;
  background:#f8efeb;
  cursor:pointer;
  text-align:center;
}
.studio-calendar-mode__item input{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  height:1px!important;
  pointer-events:none!important;
}
.studio-calendar-mode__item i{
  width:31px;height:31px;display:grid;place-items:center;border-radius:50%;
  color:#956278;background:#fff9f6;font-style:normal;font-weight:800;
}
.studio-calendar-mode__item span{
  color:inherit!important;
  font-size:.67rem!important;
  font-weight:850!important;
}
.studio-calendar-mode__item.is-active{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,#b97089,#87739d);
  box-shadow:0 9px 22px rgba(103,63,82,.13);
}
.studio-calendar-mode__item.is-active i{
  color:#fff;background:rgba(255,255,255,.12);
}

.studio-schedule-panel{
  padding:13px;
  border:1px solid rgba(112,75,92,.10);
  border-radius:18px;
  background:linear-gradient(145deg,#fbf4f0,#f8eef1);
}
.studio-schedule-panel[hidden]{display:none!important}
.studio-schedule-panel__head{margin-bottom:11px}
.studio-schedule-panel__head small,
.studio-kind-block__title small{
  display:block;color:#af6c84;font-size:.54rem;font-weight:900;letter-spacing:.13em;
}
.studio-schedule-panel__head strong,
.studio-kind-block__title strong{
  display:block;margin-top:3px;color:#523b47;font:500 1rem Georgia,serif;
}
.multi-date-adder{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
}
.multi-date-adder>button{
  min-height:48px;padding:0 13px;border:0;border-radius:13px;
  color:#fff;background:#9f637a;cursor:pointer;font-size:.65rem;font-weight:850;
}
.multi-date-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.multi-date-chips>small{color:#948089;font-size:.67rem}
.multi-date-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:35px;
  padding:0 5px 0 10px;
  border:1px solid rgba(117,77,95,.10);
  border-radius:999px;
  color:#6d5360;
  background:#fff9f5;
}
.multi-date-chip b{font-size:.62rem}
.multi-date-chip button{
  width:26px;height:26px;border:0;border-radius:50%;color:#995b6c;background:#f2e1e5;cursor:pointer;
}

.repeat-presets{
  display:flex;
  gap:6px;
  overflow-x:auto;
  padding:0 0 10px;
  scrollbar-width:none;
}
.repeat-presets::-webkit-scrollbar{display:none}
.repeat-presets button{
  flex:0 0 auto;
  min-height:36px;
  padding:0 10px;
  border:1px solid rgba(111,75,91,.11);
  border-radius:999px;
  color:#78636e;
  background:#fff9f5;
  cursor:pointer;
  font-size:.61rem;
  font-weight:850;
}
.repeat-presets button.is-active{
  color:white;border-color:transparent;background:#9a6178;
}
.studio-kind-block{
  display:grid;
  gap:9px;
}

/* Fully themed date/time picker overlay */
.romantic-picker{
  position:fixed;
  z-index:1120;
  inset:0;
  display:grid;
  place-items:center;
  padding:14px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  background:rgba(30,20,30,.53);
  backdrop-filter:blur(10px);
  transition:.18s ease;
}
.romantic-picker.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.romantic-picker__panel{
  width:min(430px,100%);
  max-height:min(680px,calc(100vh - 28px));
  overflow:auto;
  padding:15px;
  border:1px solid rgba(126,82,101,.14);
  border-radius:24px;
  color:#4c3742;
  background:
    linear-gradient(180deg,rgba(255,251,247,.985),rgba(248,238,234,.985));
  box-shadow:0 32px 100px rgba(22,13,21,.30);
}
.romantic-picker__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:2px 2px 13px;
}
.romantic-picker__head small{
  display:block;color:#ad6881;font-size:.5rem;font-weight:900;letter-spacing:.15em;
}
.romantic-picker__head strong{
  display:block;margin-top:3px;font:500 1.45rem Georgia,serif;color:#49343f;
}
.romantic-picker__head>button{
  width:38px;height:38px;border:0;border-radius:13px;color:#7d5969;background:#f1e4e5;cursor:pointer;font-size:1rem;
}
.romantic-picker__date-nav{
  display:grid;grid-template-columns:42px 1fr 42px;gap:6px;margin-bottom:10px;
}
.romantic-picker__date-nav button{
  min-height:38px;border:1px solid rgba(112,75,92,.09);border-radius:12px;
  color:#705563;background:#f8efeb;cursor:pointer;font-size:.67rem;font-weight:850;
}
.romantic-picker__weekdays,
.romantic-picker__days{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;
}
.romantic-picker__weekdays span{
  padding:5px 0;color:#9b858f;text-align:center;font-size:.55rem;font-weight:900;
}
.romantic-picker__day{
  aspect-ratio:1;border:0;border-radius:12px;color:#5c4651;background:#fffaf6;cursor:pointer;
  font-size:.72rem;font-weight:750;
}
.romantic-picker__day.is-outside{opacity:.34}
.romantic-picker__day.is-today{box-shadow:inset 0 0 0 1px #bd7a91}
.romantic-picker__day.is-selected{
  color:white;background:linear-gradient(135deg,#ba7089,#88749e);
  box-shadow:0 7px 18px rgba(102,63,82,.16);
}
.romantic-picker__time-block{
  margin-top:10px;padding:12px;border:1px solid rgba(112,75,92,.09);border-radius:16px;background:#faf2ee;
}
.romantic-picker__time-block>small{
  display:block;margin-bottom:7px;color:#a36a7e;font-size:.52rem;font-weight:900;letter-spacing:.12em;
}
.romantic-picker__hours{
  display:grid;grid-template-columns:repeat(6,1fr);gap:5px;
}
.romantic-picker__minutes{
  display:grid;grid-template-columns:repeat(6,1fr);gap:5px;
}
.romantic-picker__hours button,
.romantic-picker__minutes button{
  min-height:37px;border:0;border-radius:10px;color:#705a65;background:#fffaf6;cursor:pointer;font-size:.67rem;font-weight:800;
}
.romantic-picker__hours button.is-selected,
.romantic-picker__minutes button.is-selected{
  color:#fff;background:#956077;
}
.romantic-picker__confirm{
  width:100%;min-height:45px;margin-top:11px;border:0;border-radius:14px;color:#fff;
  background:linear-gradient(135deg,#b76d85,#88749f);cursor:pointer;font-size:.7rem;font-weight:900;
}

/* Manage view: clearer, module-scoped, mobile-first */
.manage-view__scope{
  position:sticky;
  top:63px;
  z-index:4;
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 14px;
  border-bottom:1px solid rgba(112,75,92,.08);
  background:rgba(248,240,234,.94);
  backdrop-filter:blur(16px);
}
.manage-all-top{
  flex:0 0 auto;
  min-height:36px;
  padding:0 12px;
  border:1px solid rgba(112,75,92,.10);
  border-radius:999px;
  color:#705563;
  background:#fff9f5;
  cursor:pointer;
  font-size:.62rem;
  font-weight:900;
}
.manage-all-top.is-active{
  color:white;border-color:transparent;background:linear-gradient(135deg,#b56b84,#86739c);
}
#manage-context{
  min-width:0;
  overflow:hidden;
  color:#8b747e;
  font-size:.63rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.manage-summary article{
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.manage-summary article:hover{transform:translateY(-2px)}
.manage-summary article.is-current{
  border-color:rgba(181,107,132,.32)!important;
  background:linear-gradient(145deg,#fff8f5,#f5e7ed)!important;
}
.manage-control-grid{
  display:grid;
  gap:10px;
  margin-top:10px;
  margin-bottom:10px;
}
.manage-transfer-card,
.manage-restore-card{
  padding:16px;
  border:1px solid var(--v38-line,rgba(80,50,65,.10));
  border-radius:22px;
  background:#fffaf6;
  box-shadow:0 15px 38px rgba(68,38,53,.075);
}
.manage-card-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
}
.manage-card-head h3{
  margin:1px 0 0;color:#493540;font:500 1.35rem/1 Georgia,serif;
}
.manage-card-head>span,
.manage-card-head>strong{
  flex:0 0 auto;
  min-width:38px;height:38px;display:grid;place-items:center;border-radius:13px;
  color:#976077;background:#f3e5e9;font-size:.65rem;font-weight:900;
}
.manage-transfer-card>p,
.manage-restore-card>p{
  margin:10px 0 13px;color:#7e6b74;font-size:.78rem;line-height:1.6;
}
.manage-transfer-selection{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
.manage-transfer-selection label{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 10px;
  border:1px solid rgba(112,75,92,.09);
  border-radius:12px;
  color:#705a65;
  background:#f9f0ec;
  cursor:pointer;
}
.manage-transfer-selection input{accent-color:#b56b84}
.manage-transfer-selection span{font-size:.68rem;font-weight:800}
.manage-transfer-shortcuts{
  display:flex;gap:6px;margin-top:8px;
}
.manage-transfer-shortcuts button{
  min-height:34px;padding:0 10px;border:1px solid rgba(112,75,92,.09);border-radius:999px;
  color:#78626d;background:#fff9f5;cursor:pointer;font-size:.6rem;font-weight:850;
}
.manage-backup-actions--v43{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
  margin-top:12px!important;
}
.manage-backup-actions--v43>button,
.themed-file-button{
  min-height:45px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 12px!important;
  border:0!important;
  border-radius:13px!important;
  color:white!important;
  background:linear-gradient(135deg,#b56b84,#86739c)!important;
  cursor:pointer!important;
  font-size:.66rem!important;
  font-weight:900!important;
  text-align:center!important;
}
.themed-file-button input{display:none!important}
#manage-transfer-status,
#manage-restore-status{
  display:block;margin-top:9px;color:#8b7680;font-size:.65rem;line-height:1.45;
}
.manage-restore-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.manage-restore-actions button{
  min-height:36px;padding:0 10px;border:1px solid rgba(112,75,92,.10);border-radius:999px;
  color:#755e69;background:#f8eeeb;cursor:pointer;font-size:.61rem;font-weight:850;
}
.manage-restore-actions .is-primary{
  width:100%;min-height:43px;color:#fff;border:0;background:linear-gradient(135deg,#7e947f,#9d7282);
}
.manage-browser{
  overflow:visible!important;
}
.manage-browser__top{
  position:sticky;
  top:108px;
  z-index:2;
  padding:8px;
  margin:-8px -8px 10px;
  border-radius:15px;
  background:rgba(255,250,246,.94);
  backdrop-filter:blur(14px);
}
.manage-group{
  display:grid;
  gap:7px;
  padding:11px;
  border:1px solid rgba(111,75,91,.075);
  border-radius:18px;
  background:#fbf4f0;
}
.manage-group+.manage-group{margin-top:10px}
.manage-group__head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.manage-group__head>div{
  display:flex;align-items:center;gap:9px;
}
.manage-group__head>div>span{
  width:34px;height:34px;display:grid;place-items:center;border-radius:11px;
  color:#9c6077;background:#f1e2e6;
}
.manage-group__head small{
  display:block;color:#a06b7d;font-size:.49rem;font-weight:900;letter-spacing:.13em;
}
.manage-group__head strong{
  display:block;margin-top:2px;color:#513c47;font-size:.72rem;
}
.manage-group__head>button{
  min-height:32px;padding:0 9px;border:1px solid rgba(112,75,92,.09);border-radius:999px;
  color:#765f69;background:#fff9f5;cursor:pointer;font-size:.56rem;font-weight:850;
}
.manage-group__list{display:grid;gap:6px}
.manage-item{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  padding:11px!important;
  border-radius:14px!important;
}
.manage-item__type{
  grid-column:1/-1;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  min-width:0!important;
  padding:0!important;
  color:#9a6378!important;
  background:transparent!important;
  text-align:left!important;
}
.manage-item__type>span{font-size:.53rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.manage-item__type>small{
  padding:4px 7px;border-radius:999px;color:#7e6a73;background:#f3e9e6;font-size:.49rem;font-weight:850;
}
.manage-item.is-origin .manage-item__type>small{color:#6d6b8b;background:#ece9f3}
.manage-item__copy{
  min-width:0;
}
.manage-item__copy strong{
  font-size:.88rem!important;
}
.manage-item__copy span{
  margin-top:4px!important;
  font-size:.67rem!important;
  line-height:1.45!important;
}
.manage-item>.module-item-actions{
  grid-column:auto!important;
  justify-content:flex-end!important;
  align-self:center;
}
.manage-empty button{
  margin-top:10px;min-height:38px;padding:0 12px;border:0;border-radius:999px;color:#fff;
  background:#9e6178;cursor:pointer;font-size:.63rem;font-weight:850;
}

@media(min-width:760px){
  .manage-transfer-selection{grid-template-columns:repeat(4,minmax(0,1fr))}
  .manage-control-grid{grid-template-columns:1fr 1fr}
  .manage-item{
    grid-template-columns:145px minmax(0,1fr) auto!important;
  }
  .manage-item__type{
    grid-column:auto;
    display:grid!important;
    justify-content:start;
    gap:4px;
  }
  .manage-item__type>small{justify-self:start}
}

@media(max-width:620px){
  .studio-calendar-mode{grid-template-columns:1fr}
  .studio-calendar-mode__item{
    min-height:48px;
    grid-template-columns:32px 1fr!important;
    place-items:center start;
    align-content:center;
    text-align:left;
  }
  .multi-date-adder{grid-template-columns:1fr}
  .manage-backup-actions--v43{grid-template-columns:1fr!important}
  .manage-view__scope{top:63px}
  .manage-browser__top{top:108px}
  .romantic-picker__hours{grid-template-columns:repeat(4,1fr)}
  .romantic-picker__minutes{grid-template-columns:repeat(4,1fr)}
}


/* V43 small finish: clear an optional repeated-until date. */
.romantic-field--clearable input{padding-right:72px!important}
.romantic-field--clearable>b{right:39px}
.romantic-field--clearable>button{
  position:absolute;
  top:50%;
  right:7px;
  translate:0 -50%;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  color:#956174;
  background:#f0e0e4;
  cursor:pointer;
  font-size:.78rem;
}


/* =========================================================
   V44 — ACTIONS DISCRÈTES & INTERFACE ALLÉGÉE
   ========================================================= */

/* Section headers: keep only what is useful. */
.section-title__side--actions{
  justify-content:flex-end!important;
  align-items:flex-start!important;
}
.section-title__side--actions>p{display:none!important}

/* True "Gérer" control with a cog, compact and consistent. */
.module-manage-button{
  min-height:38px!important;
  padding:0 11px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  border:1px solid rgba(107,75,90,.10)!important;
  border-radius:13px!important;
  color:#745867!important;
  background:rgba(255,250,247,.72)!important;
  box-shadow:0 7px 18px rgba(67,40,54,.045)!important;
  font-size:.62rem!important;
  font-weight:850!important;
  letter-spacing:0!important;
}
.module-manage-button>span{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#9a6278;
  background:#f0e2e6;
  font-size:.82rem;
  line-height:1;
  transition:transform .25s ease;
}
.module-manage-button>strong{
  font-size:.62rem;
  font-weight:850;
  line-height:1;
}
.module-manage-button:hover{
  transform:translateY(-1px)!important;
  background:#fffaf7!important;
  box-shadow:0 9px 22px rgba(67,40,54,.075)!important;
}
.module-manage-button:hover>span{transform:rotate(36deg)}
.module-manage-button--dark{
  color:#e9dde4!important;
  border-color:rgba(255,255,255,.09)!important;
  background:rgba(255,255,255,.045)!important;
  box-shadow:none!important;
}
.module-manage-button--dark>span{
  color:#eadde5;
  background:rgba(255,255,255,.07);
}
.module-manage-button--dark:hover{background:rgba(255,255,255,.08)!important}

/* Inline edit/delete actions inside modules. */
.module-inline-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
}
.module-inline-actions .inline-action{
  width:29px!important;
  min-width:29px!important;
  height:29px!important;
  min-height:29px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid rgba(93,64,78,.08)!important;
  border-radius:9px!important;
  color:#856d78!important;
  background:rgba(255,250,247,.68)!important;
  box-shadow:none!important;
  cursor:pointer!important;
  font-size:.72rem!important;
  font-weight:800!important;
  opacity:.58;
  transition:opacity .18s ease,transform .18s ease,background .18s ease,color .18s ease!important;
}
.module-inline-actions .inline-action:hover{
  opacity:1;
  transform:translateY(-1px);
  background:#fff9f6!important;
}
.module-inline-actions .inline-action--delete{
  color:#9b6670!important;
}
.module-inline-actions .inline-action--delete:hover{
  color:#9c4f60!important;
  background:#f7e9eb!important;
}
.module-inline-actions .inline-action[data-confirm="1"]{
  opacity:1;
  color:#fff!important;
  background:#9e5b6b!important;
  border-color:transparent!important;
}

/* Story actions float quietly over the painting. */
.memory-main__actions.module-inline-actions{
  right:13px!important;
  bottom:13px!important;
  left:auto!important;
  width:auto!important;
  padding:5px!important;
  border-radius:12px;
  background:rgba(35,27,35,.24);
  backdrop-filter:blur(8px);
}
.memory-main__actions.module-inline-actions .inline-action{
  color:#fff!important;
  border-color:rgba(255,255,255,.08)!important;
  background:rgba(255,255,255,.08)!important;
  opacity:.72;
}
.memory-main__actions.module-inline-actions .inline-action:hover{
  opacity:1;
  background:rgba(255,255,255,.14)!important;
}

/* Ideas/books/gifts: keep actions at the edge, not in the reading flow. */
.idea-panel,
.real-book__copy,
.intimate-copy{
  position:relative!important;
}
.idea-panel__actions.module-inline-actions{
  position:absolute!important;
  right:11px!important;
  bottom:11px!important;
  margin:0!important;
}
.real-book__actions.module-inline-actions{
  margin-top:12px!important;
  align-self:flex-end!important;
}
.intimate-copy__actions.module-inline-actions{
  margin-top:12px!important;
  justify-content:flex-start!important;
}

/* Constellation and Book reader use the same discreet language. */
.constellation-letter__actions.module-inline-actions{
  margin-top:8px!important;
  padding-top:8px!important;
  border-top:1px solid rgba(255,255,255,.06)!important;
}
.constellation-letter__actions.module-inline-actions .inline-action,
#book30-reader-actions.module-inline-actions .inline-action{
  color:#ddd0d8!important;
  border-color:rgba(255,255,255,.07)!important;
  background:rgba(255,255,255,.045)!important;
}

/* Calendar details: tiny actions aligned right. */
.calendar28-detail-actions.module-inline-actions{
  margin-top:7px!important;
  padding:0!important;
  justify-content:flex-end!important;
}

/* Remove visual text overlays when a figure no longer has a useful caption. */
.section-scene:not(:has(figcaption))::after,
.envies-scene:not(:has(figcaption))::after{
  display:none!important;
}

@media(max-width:760px){
  .section-title__side--actions{
    width:auto!important;
    align-items:flex-start!important;
  }
  .module-manage-button{
    min-height:36px!important;
    padding:0 9px!important;
  }
  .module-manage-button>strong{
    display:none;
  }
  .module-manage-button>span{
    width:27px;
    height:27px;
    font-size:.88rem;
  }
  .module-inline-actions .inline-action{
    width:31px!important;
    min-width:31px!important;
    height:31px!important;
    min-height:31px!important;
    opacity:.72;
  }
  .memory-main__actions.module-inline-actions{
    left:auto!important;
    right:10px!important;
    bottom:10px!important;
  }
}


/* =========================================================
   V45 — HEURE EXACTE À LA MINUTE
   ========================================================= */

.romantic-picker__head--time strong{
  display:flex!important;
  align-items:baseline;
  gap:4px;
  font-size:2rem!important;
  letter-spacing:.01em;
}
.romantic-picker__head--time strong i{
  color:#b9768e;
  font-style:normal;
  opacity:.75;
}

.romantic-picker__fine{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:7px;
  margin-bottom:10px;
}
.romantic-picker__fine span{
  color:#8d7781;
  text-align:center;
  font-size:.61rem;
  font-weight:850;
}
.romantic-picker__fine button{
  min-height:36px;
  padding:0 10px;
  border:1px solid rgba(111,75,91,.10);
  border-radius:999px;
  color:#7b5d6b;
  background:#f7ece9;
  cursor:pointer;
  font-size:.61rem;
  font-weight:900;
}

.romantic-picker__time-columns{
  display:grid;
  grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);
  align-items:center;
  gap:7px;
}
.romantic-picker__colon{
  display:grid;
  place-items:center;
  color:#aa6a82;
  font:500 2rem/1 Georgia,serif;
}

.romantic-picker__wheel{
  overflow:hidden;
  border:1px solid rgba(112,75,92,.10);
  border-radius:18px;
  background:linear-gradient(180deg,#fbf4f0,#f7ecea);
}
.romantic-picker__wheel>header{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:10px 12px 8px;
  border-bottom:1px solid rgba(112,75,92,.08);
  background:rgba(251,244,240,.96);
  backdrop-filter:blur(10px);
}
.romantic-picker__wheel>header small{
  color:#a26a7d;
  font-size:.5rem;
  font-weight:900;
  letter-spacing:.12em;
}
.romantic-picker__wheel>header strong{
  color:#573f4a;
  font:500 1.15rem/1 Georgia,serif;
}

.romantic-picker__wheel-list{
  height:250px;
  overflow-y:auto;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:4px!important;
  padding:7px;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#d7bdc6 transparent;
  scroll-behavior:smooth;
}
.romantic-picker__wheel-list button{
  min-height:40px!important;
  width:100%;
  border:0;
  border-radius:11px;
  color:#745d68;
  background:rgba(255,250,246,.74);
  cursor:pointer;
  font-size:.78rem!important;
  font-weight:800!important;
}
.romantic-picker__wheel-list button:hover{
  background:#f3e4e8;
}
.romantic-picker__wheel-list button.is-selected{
  color:#fff!important;
  background:linear-gradient(135deg,#b76d86,#87749d)!important;
  box-shadow:0 7px 18px rgba(100,61,80,.14);
}

.romantic-picker__quick-minutes{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:8px 9px;
  overflow-x:auto;
  border-radius:14px;
  background:#faf1ed;
}
.romantic-picker__quick-minutes>span{
  margin-right:auto;
  color:#927c86;
  font-size:.56rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.romantic-picker__quick-minutes button{
  flex:0 0 auto;
  width:37px;
  height:32px;
  padding:0;
  border:1px solid rgba(112,75,92,.09);
  border-radius:10px;
  color:#785f6b;
  background:#fff9f5;
  cursor:pointer;
  font-size:.62rem;
  font-weight:900;
}

@media(max-width:430px){
  .romantic-picker__panel{
    padding:12px!important;
  }
  .romantic-picker__wheel-list{
    height:220px;
  }
  .romantic-picker__time-columns{
    grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);
    gap:4px;
  }
  .romantic-picker__fine button{
    padding:0 8px;
    font-size:.56rem;
  }
}


/* =========================================================
   V46 — COMMANDES CONTEXTUELLES COHÉRENTES
   ========================================================= */

/* Every module has the same clear management anchor. */
.section-title:has(.module-manage-button){
  position:relative!important;
  padding-right:56px!important;
}
.section-title:has(.module-manage-button) .section-title__side{
  min-height:0!important;
}
.section-title:has(.module-manage-button) .module-manage-button{
  position:absolute!important;
  z-index:7!important;
  top:0!important;
  right:0!important;
  width:43px!important;
  min-width:43px!important;
  height:43px!important;
  min-height:43px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(112,75,92,.14)!important;
  border-radius:14px!important;
  color:#8b5e72!important;
  background:rgba(255,249,246,.88)!important;
  box-shadow:0 9px 24px rgba(66,39,53,.09)!important;
  backdrop-filter:blur(12px)!important;
  opacity:1!important;
  transform:none!important;
}
.section-title:has(.module-manage-button) .module-manage-button>span{
  width:auto!important;
  height:auto!important;
  display:block!important;
  color:inherit!important;
  background:transparent!important;
  font-size:1.05rem!important;
  line-height:1!important;
}
.section-title:has(.module-manage-button) .module-manage-button>strong{
  position:absolute!important;
  top:48px!important;
  right:0!important;
  width:max-content!important;
  padding:5px 8px!important;
  border-radius:8px!important;
  color:#fff!important;
  background:#5d4552!important;
  font-size:.54rem!important;
  line-height:1!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(-3px)!important;
  transition:.16s ease!important;
}
.section-title:has(.module-manage-button) .module-manage-button:hover,
.section-title:has(.module-manage-button) .module-manage-button:focus-visible{
  border-color:rgba(176,105,131,.28)!important;
  color:#a35d78!important;
  background:#fffaf7!important;
  box-shadow:0 12px 28px rgba(66,39,53,.13)!important;
}
.section-title:has(.module-manage-button) .module-manage-button:hover>span,
.section-title:has(.module-manage-button) .module-manage-button:focus-visible>span{
  transform:rotate(34deg)!important;
}
.section-title:has(.module-manage-button) .module-manage-button:hover>strong,
.section-title:has(.module-manage-button) .module-manage-button:focus-visible>strong{
  opacity:1!important;
  visibility:visible!important;
  transform:translateY(0)!important;
}

/* Stronger contrast in dark universes. */
.section-title--dark:has(.module-manage-button) .module-manage-button{
  color:#f1e5eb!important;
  border-color:rgba(255,255,255,.17)!important;
  background:rgba(255,255,255,.095)!important;
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
}
.section-title--dark:has(.module-manage-button) .module-manage-button:hover,
.section-title--dark:has(.module-manage-button) .module-manage-button:focus-visible{
  color:#fff!important;
  border-color:rgba(255,255,255,.26)!important;
  background:rgba(255,255,255,.15)!important;
}

/* One compact contextual trigger per item. */
.module-action-menu{
  position:relative;
  z-index:30;
  width:max-content;
}
.module-action-trigger{
  width:34px;
  height:30px;
  min-width:34px;
  min-height:30px;
  display:grid;
  place-items:center;
  padding:0 0 5px;
  border:1px solid rgba(105,72,87,.12);
  border-radius:10px;
  color:#7d6671;
  background:rgba(255,250,247,.88);
  box-shadow:0 6px 16px rgba(65,40,52,.055);
  cursor:pointer;
  font:900 1rem/1 system-ui,sans-serif;
  letter-spacing:1px;
  opacity:.76;
  transition:.16s ease;
}
.module-action-trigger:hover,
.module-action-trigger:focus-visible,
.module-action-menu.is-open .module-action-trigger{
  opacity:1;
  color:#985f76;
  border-color:rgba(171,102,128,.24);
  background:#fffaf7;
  box-shadow:0 8px 20px rgba(65,40,52,.10);
}
.module-action-popover{
  position:absolute;
  z-index:100;
  top:calc(100% + 6px);
  right:0;
  width:138px;
  padding:5px;
  border:1px solid rgba(100,67,82,.12);
  border-radius:13px;
  background:rgba(255,250,247,.98);
  box-shadow:0 16px 42px rgba(45,27,39,.18);
  backdrop-filter:blur(15px);
}
.module-action-popover[hidden]{display:none!important}
.module-action-option{
  width:100%;
  min-height:36px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 9px;
  border:0;
  border-radius:9px;
  color:#65505a;
  background:transparent;
  cursor:pointer;
  text-align:left;
  font-size:.64rem;
  font-weight:800;
}
.module-action-option>span{
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:7px;
  color:#8f6476;
  background:#f1e4e7;
}
.module-action-option:hover{background:#f7eeeb}
.module-action-option--danger{color:#925866}
.module-action-option--danger>span{
  color:#a25262;
  background:#f5e3e6;
}
.module-action-option--danger:hover{background:#f7e6e8}
.module-action-option[data-confirm="1"]{
  color:#fff;
  background:#9b5968;
}
.module-action-option[data-confirm="1"]>span{
  color:#fff;
  background:rgba(255,255,255,.13);
}

/* Module-specific placement: same interaction, adapted to each composition. */
.memory-main__actions{
  position:absolute!important;
  z-index:20!important;
  top:13px!important;
  right:13px!important;
  bottom:auto!important;
  left:auto!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}
.memory-main__actions .module-action-trigger{
  color:#fff;
  border-color:rgba(255,255,255,.18);
  background:rgba(32,24,31,.42);
  box-shadow:0 7px 20px rgba(0,0,0,.16);
  backdrop-filter:blur(10px);
}
.memory-main__actions .module-action-trigger:hover,
.memory-main__actions .module-action-menu.is-open .module-action-trigger{
  color:#fff;
  border-color:rgba(255,255,255,.28);
  background:rgba(32,24,31,.62);
}

.constellation-letter__actions{
  position:absolute!important;
  z-index:12!important;
  right:16px!important;
  bottom:14px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.constellation-letter__actions .module-action-trigger{
  color:#f0e3e9;
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.055);
  box-shadow:none;
}
.constellation-letter__actions .module-action-popover{
  top:auto;
  bottom:calc(100% + 6px);
}

.idea-panel__actions{
  position:absolute!important;
  z-index:8!important;
  top:10px!important;
  right:10px!important;
  bottom:auto!important;
  margin:0!important;
}
.idea-panel__number{padding-right:35px}

.real-book{
  position:relative!important;
}
.real-book__actions{
  position:absolute!important;
  z-index:8!important;
  top:10px!important;
  right:10px!important;
  margin:0!important;
}
.real-book__actions .module-action-popover{
  right:0;
}

.intimate-copy{
  position:relative!important;
  padding-top:42px!important;
}
.intimate-copy__actions{
  position:absolute!important;
  z-index:8!important;
  top:0!important;
  right:0!important;
  margin:0!important;
}
.intimate-section .module-action-trigger{
  color:#eadde4;
  border-color:rgba(255,255,255,.13);
  background:rgba(255,255,255,.07);
  box-shadow:none;
}
.intimate-section .module-action-trigger:hover,
.intimate-section .module-action-menu.is-open .module-action-trigger{
  color:#fff;
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.12);
}

.calendar28-detail-event{
  position:relative!important;
  padding-right:47px!important;
}
.calendar28-detail-actions{
  position:absolute!important;
  z-index:8!important;
  top:9px!important;
  right:9px!important;
  margin:0!important;
  padding:0!important;
}

.book30-reader__actions{
  position:absolute!important;
  z-index:20!important;
  right:58px!important;
  top:18px!important;
  margin:0!important;
}
.book30-reader__actions .module-action-popover{
  right:0;
}

/* Keep the central Gérer view explicit: no hidden contextual controls there. */
.manage-item .module-item-actions{
  position:static!important;
}
.manage-item .module-item-actions button{
  opacity:1!important;
}

/* Obsolete V44 inline controls no longer participate in layout. */
.module-inline-actions{display:contents!important}

@media(max-width:760px){
  .section-title:has(.module-manage-button){
    padding-right:49px!important;
  }
  .section-title:has(.module-manage-button) .module-manage-button{
    width:39px!important;
    min-width:39px!important;
    height:39px!important;
    min-height:39px!important;
    border-radius:13px!important;
  }
  .section-title:has(.module-manage-button) .module-manage-button>strong{
    display:none!important;
  }

  .module-action-trigger{
    width:36px;
    min-width:36px;
    height:33px;
    min-height:33px;
    opacity:.9;
  }
  .module-action-popover{
    width:146px;
  }

  .memory-main__actions{top:10px!important;right:10px!important}
  .idea-panel__actions{top:9px!important;right:9px!important}

  .real-book__actions{
    top:8px!important;
    right:8px!important;
  }

  .intimate-copy{
    padding-top:39px!important;
  }

  .book30-reader__actions{
    top:13px!important;
    right:52px!important;
  }
}


/* =========================================================
   V47 — GÉRER DANS LE CONTENU + MENU D'ACTIONS AU PREMIER PLAN
   ========================================================= */

/* The manage control is no longer attached to section titles. */
.module-manage-button{
  width:auto!important;
  min-width:0!important;
  height:40px!important;
  min-height:40px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  padding:0 12px!important;
  border:1px solid rgba(111,75,92,.13)!important;
  border-radius:13px!important;
  color:#755765!important;
  background:rgba(255,250,247,.94)!important;
  box-shadow:0 8px 22px rgba(62,38,50,.09)!important;
  backdrop-filter:blur(12px)!important;
  cursor:pointer!important;
  opacity:1!important;
  transform:none!important;
}
.module-manage-button>span{
  width:auto!important;
  height:auto!important;
  display:block!important;
  color:#9d6078!important;
  background:transparent!important;
  font-size:.98rem!important;
  line-height:1!important;
}
.module-manage-button>strong{
  position:static!important;
  width:auto!important;
  padding:0!important;
  color:inherit!important;
  background:transparent!important;
  font-size:.62rem!important;
  font-weight:900!important;
  line-height:1!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
.module-manage-button:hover,
.module-manage-button:focus-visible{
  color:#9a5f76!important;
  border-color:rgba(169,99,125,.26)!important;
  background:#fffaf7!important;
  box-shadow:0 10px 26px rgba(62,38,50,.13)!important;
}
.module-manage-button:hover>span,
.module-manage-button:focus-visible>span{
  transform:rotate(28deg)!important;
}

.module-manage-button--dark{
  color:#f2e8ed!important;
  border-color:rgba(255,255,255,.17)!important;
  background:rgba(38,29,38,.54)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.18)!important;
}
.module-manage-button--dark>span{color:#f0dce5!important}
.module-manage-button--dark:hover,
.module-manage-button--dark:focus-visible{
  color:#fff!important;
  border-color:rgba(255,255,255,.27)!important;
  background:rgba(38,29,38,.72)!important;
}

/* Story / constellation: the command belongs to the visual module itself. */
.memory-stage,
.constellation-universe{
  position:relative!important;
}
.module-manage-dock{
  position:absolute;
  z-index:65;
  top:13px;
  right:13px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.module-manage-dock--story .module-manage-button,
.module-manage-dock--constellation .module-manage-button{
  color:#f4e8ed!important;
  border-color:rgba(255,255,255,.18)!important;
  background:rgba(37,27,36,.48)!important;
  box-shadow:0 9px 24px rgba(0,0,0,.16)!important;
}
.module-manage-dock--story .module-manage-button>span,
.module-manage-dock--constellation .module-manage-button>span{
  color:#f3dce6!important;
}

/* Ideas, books and Book of Us: a small utility row directly beside the content. */
.module-manage-row{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-height:40px;
  margin:7px 0 10px;
}
.module-manage-row--book-us{
  margin-top:5px;
  margin-bottom:8px;
}

/* Envies already has a real module header: management belongs there. */
.envies-block__head{
  align-items:center!important;
  gap:14px!important;
}
.envies-block__head>.module-manage-button{
  flex:0 0 auto;
}

/* Calendar: Gérer is one of the actual calendar tools. */
.calendar28-header-actions>.module-manage-button{
  height:39px!important;
  min-height:39px!important;
  padding:0 10px!important;
  border-radius:11px!important;
  box-shadow:none!important;
  background:#f8eeeb!important;
}

/* The action menu is now rendered at body level, above every card/text/image. */
.module-action-portal{
  position:fixed!important;
  z-index:10050!important;
  display:grid;
  gap:3px;
  padding:6px;
  border:1px solid rgba(92,61,76,.14);
  border-radius:14px;
  background:rgba(255,251,248,.99);
  box-shadow:
    0 22px 60px rgba(36,21,31,.24),
    0 3px 10px rgba(36,21,31,.08);
  backdrop-filter:blur(18px);
  isolation:isolate;
  transform-origin:top right;
  animation:moduleActionPortalIn .14s ease both;
}
.module-action-portal[hidden]{display:none!important}
@keyframes moduleActionPortalIn{
  from{opacity:0;transform:translateY(-4px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.module-action-portal .module-action-option{
  width:100%;
  min-height:39px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 10px;
  border:0;
  border-radius:9px;
  color:#5f4a55;
  background:transparent;
  cursor:pointer;
  text-align:left;
  font-size:.67rem;
  font-weight:850;
}
.module-action-portal .module-action-option>span{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:7px;
  color:#8c6072;
  background:#f2e4e8;
}
.module-action-portal .module-action-option:hover,
.module-action-portal .module-action-option:focus-visible{
  outline:0;
  background:#f7eeeb;
}
.module-action-portal .module-action-option--danger{
  color:#945563;
}
.module-action-portal .module-action-option--danger>span{
  color:#a34f60;
  background:#f5e2e6;
}
.module-action-portal .module-action-option--danger:hover,
.module-action-portal .module-action-option--danger:focus-visible{
  background:#f7e5e8;
}
.module-action-portal .module-action-option[data-confirm="1"]{
  color:#fff;
  background:#985767;
}
.module-action-portal .module-action-option[data-confirm="1"]>span{
  color:#fff;
  background:rgba(255,255,255,.13);
}

/* Nested popovers from V46 are intentionally no longer used. */
.module-action-popover{display:none!important}

/* The trigger remains visible but never competes with the content. */
.module-action-trigger{
  z-index:2!important;
  opacity:.88!important;
}
.module-action-menu.is-open .module-action-trigger{
  opacity:1!important;
  color:#9b5e76!important;
  border-color:rgba(168,97,124,.26)!important;
  background:#fffaf7!important;
}

/* Remove old title-padding behavior from V46. */
.section-title:has(.module-manage-button){
  padding-right:0!important;
}

/* Mobile: keep Gérer readable instead of hiding it. */
@media(max-width:760px){
  .module-manage-button{
    height:38px!important;
    min-height:38px!important;
    padding:0 10px!important;
    gap:6px!important;
  }
  .module-manage-button>strong{
    display:block!important;
    font-size:.58rem!important;
  }
  .module-manage-dock{
    top:10px;
    right:10px;
  }
  .module-manage-dock .module-manage-button{
    padding:0 9px!important;
  }
  .module-manage-row{
    margin:5px 0 9px;
  }
  .calendar28-header-actions>.module-manage-button{
    flex:0 0 auto;
  }
}


/* =========================================================
   V48 — COHÉRENCE VISUELLE + CALENDRIER PLUS LISIBLE
   ========================================================= */

:root{
  --ink:#3a2f37;
  --muted:#70616a;
  --paper:#faf5f0;
  --paper-2:#f3e9e5;
  --paper-3:#eadedc;

  --night:#17131c;
  --night-2:#211a29;
  --night-3:#352838;

  --rose:#b96f88;
  --rose-deep:#94566d;
  --peach:#c9826c;
  --lavender:#81739f;
  --lavender-soft:#ddd6eb;
  --gold:#c39a62;
  --sage:#78917f;
  --blue:#708ba5;

  --line:rgba(73,49,64,.12);
  --shadow:0 26px 70px rgba(58,36,49,.10);
  --shadow-soft:0 13px 34px rgba(58,36,49,.075);
}

/* More consistent rhythm and typography. */
body{
  color:var(--ink);
  background:
    linear-gradient(180deg,#faf5f0 0%,#f7efea 52%,#faf5f0 100%);
}
.section{
  padding-top:104px;
  padding-bottom:104px;
}
.section-title{
  margin-bottom:38px;
  gap:42px;
}
.section-title h2{
  font-size:clamp(3.15rem,5.35vw,6rem);
  line-height:.9;
  letter-spacing:-.048em;
}
.eyebrow{
  margin-bottom:10px;
  color:#9e6a4e;
  font-size:.61rem;
}
.section-title>p,
.section-title__side>p{
  color:#6f6069;
  font-size:.82rem;
  line-height:1.68;
}

/* Light sections now belong to the same paper family. */
.story-section,
.little-things,
.books-section,
.book30-section{
  background:
    radial-gradient(circle at 88% 8%,rgba(185,111,136,.07),transparent 25%),
    linear-gradient(180deg,#fbf6f1,#f4e9e4)!important;
}
.calendar28-section{
  background:
    radial-gradient(circle at 88% 9%,rgba(129,115,159,.08),transparent 25%),
    radial-gradient(circle at 8% 70%,rgba(185,111,136,.06),transparent 25%),
    linear-gradient(180deg,#f8f0eb,#f5ebe6)!important;
}

/* Dark sections use one common deep-plum family instead of unrelated blacks. */
.constellation-section{
  background:
    radial-gradient(circle at 50% 15%,#3a2b45 0,#241b2d 46%,#17131c 100%)!important;
}
.together-section{
  background:
    radial-gradient(circle at 10% 10%,rgba(185,111,136,.12),transparent 27%),
    linear-gradient(150deg,#201822,#352536 62%,#493044)!important;
}
.intimate-section{
  background:
    radial-gradient(circle at 85% 15%,rgba(185,111,136,.12),transparent 30%),
    linear-gradient(150deg,#1d171f,#2c202b 62%,#3f2938)!important;
}

/* Cleaner cards throughout the light areas. */
.calendar28-shell,
.real-book,
.idea-panel,
.journey-card,
.sky-card,
.flip-note,
.wish-card{
  border-color:rgba(72,48,62,.10)!important;
}
.calendar28-shell{
  box-shadow:0 28px 72px rgba(58,35,48,.11)!important;
}

/* =========================================================
   CALENDAR — stronger hierarchy and readable text
   ========================================================= */

.calendar28-title{
  margin-bottom:32px!important;
}
.calendar28-shell{
  border-radius:26px!important;
  background:#fffaf6!important;
}
.calendar28-header{
  min-height:86px!important;
  border-bottom-color:rgba(72,48,62,.10)!important;
  background:
    linear-gradient(180deg,rgba(255,252,249,.98),rgba(248,239,235,.98))!important;
}
.calendar28-navigation button{
  color:#4c3f47!important;
  background:#eee2e1!important;
  font-size:.68rem!important;
}
.calendar28-navigation button:hover{
  background:#e7d8da!important;
}
.calendar28-period small{
  color:#857681!important;
  font-size:.55rem!important;
}
.calendar28-period strong{
  color:#392f36!important;
  font-size:1.78rem!important;
}
.calendar28-switcher{
  background:#ede2e2!important;
}
.calendar28-switcher button{
  color:#6d5f68!important;
  font-size:.62rem!important;
}
.calendar28-switcher button.is-active{
  color:#8f536a!important;
  background:#fffaf6!important;
}
.calendar28-tools-toggle{
  background:#4a3947!important;
  font-size:.61rem!important;
}
.calendar28-add{
  font-size:.62rem!important;
}

.calendar28-time-legend{
  min-height:48px!important;
  color:#756871!important;
  background:#f4e9e6!important;
  font-size:.56rem!important;
}
.calendar28-time-legend b{
  color:#766772!important;
  font-size:.52rem!important;
  letter-spacing:.06em!important;
}
.calendar28-time-legend>div::after{
  color:#756873!important;
  background:#f4e9e6!important;
  font-size:.48rem!important;
}

.calendar28-tools{
  background:#f0e5e3!important;
}
.calendar28-tools.is-open{
  max-height:150px!important;
}
.calendar28-search{
  border-color:rgba(74,50,64,.12)!important;
  background:#fffaf6!important;
}
.calendar28-search input{
  color:#3f343b!important;
  font-size:.76rem!important;
}
.calendar28-search input::placeholder{
  color:#9a8992!important;
}
.calendar28-filters{
  gap:6px!important;
}
.calendar28-filter{
  padding:8px 11px!important;
  border:1px solid rgba(73,49,64,.09)!important;
  color:#70636b!important;
  background:rgba(255,250,246,.62)!important;
  opacity:1!important;
  font-size:.61rem!important;
}
.calendar28-filter:not(.is-active){
  color:#94868e!important;
  background:rgba(255,255,255,.30)!important;
}
.calendar28-filter.is-active{
  color:#493e45!important;
  border-color:rgba(73,49,64,.13)!important;
  background:#fffaf6!important;
  box-shadow:0 5px 15px rgba(59,39,51,.055)!important;
}
.calendar28-filter i{
  width:8px!important;
  height:8px!important;
}
.calendar28-filter[data-cal28-filter="couple"] i{background:#a75d7c!important}
.calendar28-filter[data-cal28-filter="custody"] i{background:#568066!important}
.calendar28-filter[data-cal28-filter="work"] i{background:#695b82!important}
.calendar28-filter[data-cal28-filter="important"] i{background:#a07a3f!important}
.calendar28-filter[data-cal28-filter="holiday"] i{background:#95536b!important}
.calendar28-filter[data-cal28-filter="organization"] i{background:#758c7b!important}
.calendar28-filter[data-cal28-filter="school"] i{background:#5c7992!important}
.calendar28-reset{
  min-height:34px!important;
  padding:0 10px!important;
  border:1px solid rgba(73,49,64,.09)!important;
  border-radius:999px!important;
  color:#765f69!important;
  background:#fff8f4!important;
  text-decoration:none!important;
  font-size:.59rem!important;
  font-weight:850!important;
}

.calendar28-main{
  background:linear-gradient(180deg,#fffdf9,#faf4f0)!important;
}
.calendar28-weekday-head span{
  color:#776a72!important;
  font-size:.67rem!important;
}
.calendar28-day{
  min-height:164px!important;
  padding:9px!important;
  border-color:rgba(68,45,58,.09)!important;
  border-radius:12px!important;
  color:#3f343b!important;
  background:#fffdfa!important;
}
.calendar28-day.is-out{
  opacity:.48!important;
  background:#f6eeea!important;
}
.calendar28-day-head>span{
  color:#453941!important;
  font-size:.84rem!important;
}
.calendar28-day-head small{
  color:#71636c!important;
  background:#eee3e1!important;
  font-size:.52rem!important;
}
.calendar28-half-hint{
  color:#91828a!important;
  font-size:.44rem!important;
}
.calendar28-all-day-chip{
  min-height:28px!important;
  padding:6px 7px!important;
}
.calendar28-all-day-chip b{
  font-size:.62rem!important;
}
.calendar28-timed-label{
  margin-bottom:3px!important;
  font-size:.55rem!important;
}
.calendar28-24h-track{
  height:12px!important;
  border-color:rgba(67,46,64,.08)!important;
}
.calendar28-time-block{
  top:2px!important;
  bottom:2px!important;
}

/* Event palette: more distinct, less washed-out, same visual language. */
.cal28-together-pierre,
.cal28-custom-couple{background:#ece8f5!important;color:#655789!important}
.cal28-together-leonor{background:#f6e5dd!important;color:#995a46!important}
.cal28-milestone,
.cal28-custom-important{background:#f3e2e8!important;color:#8e4e66!important}
.cal28-birthday{background:#f3ead8!important;color:#806134!important}
.cal28-holiday,
.cal28-event,
.cal28-custom-holiday{background:#f2e2e8!important;color:#895067!important}
.cal28-localholiday{background:#f3e0da!important;color:#8e584c!important}
.cal28-work,
.cal28-custom-work{background:#ece8f2!important;color:#625677!important}
.cal28-custody,
.cal28-custom-custody{background:#e3efe7!important;color:#4d7159!important}
.cal28-zoneb,
.cal28-custom-school{background:#e3edf4!important;color:#526f86!important}
.cal28-zonec{background:#f0eadc!important;color:#76643f!important}
.cal28-custom-organization{background:#e7eee8!important;color:#587061!important}

/* Week view */
.calendar28-week-row{
  border-color:rgba(68,45,58,.09)!important;
  background:#fffdfa!important;
}
.calendar28-week-date{
  color:#473b42!important;
  background:#f1e6e3!important;
}
.calendar28-week-date span,
.calendar28-week-date small{
  color:#7d6f78!important;
  font-size:.57rem!important;
}
.calendar28-week-all-day-event strong{
  font-size:.69rem!important;
}
.calendar28-week-all-day-event span{
  font-size:.57rem!important;
}
.calendar28-week-clock-head{
  color:#81737b!important;
  font-size:.48rem!important;
}
.calendar28-week-timed-copy strong{
  color:#443840!important;
  font-size:.72rem!important;
}
.calendar28-week-timed-copy span{
  font-size:.62rem!important;
}

/* Agenda */
.calendar28-agenda-date{
  color:#453940!important;
  background:#f0e4e2!important;
}
.calendar28-agenda-date span{
  color:#786a72!important;
  font-size:.60rem!important;
}
.calendar28-agenda-date small{
  color:#8b7d85!important;
  font-size:.54rem!important;
}
.calendar28-agenda-event{
  border-color:rgba(68,45,58,.09)!important;
  background:#fffdfa!important;
}
.calendar28-agenda-event strong{
  color:#443840!important;
  font-size:.82rem!important;
}
.calendar28-agenda-event span{
  color:#70626a!important;
  font-size:.68rem!important;
}
.calendar28-agenda-event>small{
  color:#81747c!important;
  font-size:.52rem!important;
}

/* Detail column */
.calendar28-details{
  background:
    radial-gradient(circle at 80% 8%,rgba(185,111,136,.08),transparent 30%),
    linear-gradient(180deg,#f7eeea,#efe3e0)!important;
}
.calendar28-details-date>small{
  color:#786a73!important;
  font-size:.57rem!important;
}
.calendar28-details-date strong{
  color:#392e36!important;
}
.calendar28-details-date span{
  color:#63565f!important;
}
.calendar28-day-snapshot>div{
  color:#766972!important;
  font-size:.49rem!important;
}
.calendar28-day-snapshot b{
  font-size:.47rem!important;
}
.calendar28-detail-event{
  padding:14px 0!important;
}
.calendar28-detail-event strong{
  color:#41363d!important;
  font-size:.82rem!important;
}
.calendar28-detail-event span{
  color:#695b64!important;
  font-size:.69rem!important;
  line-height:1.52!important;
}
.calendar28-empty-day{
  color:#766871!important;
  font-size:.74rem!important;
}
.calendar28-next-meeting{
  background:rgba(255,251,247,.72)!important;
}
.calendar28-next-meeting small{
  color:#7d7078!important;
  font-size:.52rem!important;
}
.calendar28-next-meeting strong{
  color:#5c4251!important;
  font-size:1.12rem!important;
}

.calendar28-bottom{
  color:#71636b!important;
  background:#efe4e2!important;
  font-size:.58rem!important;
}
.calendar28-bottom>small{
  font-size:.53rem!important;
}

/* =========================================================
   REPEAT RULES — one clear sentence, one clear end condition
   ========================================================= */

.studio-schedule-panel--repeat{
  display:grid;
  gap:12px;
  padding:14px!important;
  background:
    linear-gradient(145deg,#fbf4f0,#f6e9ed)!important;
}
.studio-schedule-panel--repeat .studio-schedule-panel__head{
  margin-bottom:0!important;
}
.repeat-presets{
  margin:0!important;
  padding:0!important;
}
.repeat-presets button{
  min-height:38px!important;
  padding:0 11px!important;
  color:#6e5a64!important;
  border-color:rgba(109,73,90,.12)!important;
  background:#fffaf6!important;
  font-size:.63rem!important;
}
.repeat-presets button.is-active{
  color:#fff!important;
  border-color:transparent!important;
  background:linear-gradient(135deg,#a9627c,#7d6c99)!important;
}

.repeat-rule{
  display:grid;
  grid-template-columns:auto 72px minmax(130px,1fr);
  align-items:center;
  gap:8px;
  padding:11px;
  border:1px solid rgba(108,72,89,.10);
  border-radius:14px;
  color:#5f4c56;
  background:#fff9f5;
}
.repeat-rule>span{
  font-size:.72rem;
  font-weight:850;
}
.repeat-rule input,
.repeat-rule select{
  min-height:42px!important;
  padding:8px 10px!important;
  text-align:center;
  border-radius:11px!important;
  background:#f7eceb!important;
}

.repeat-end{
  display:grid;
  gap:6px;
}
.repeat-end>small{
  margin:2px 0 1px;
  color:#986277;
  font-size:.53rem;
  font-weight:900;
  letter-spacing:.12em;
}
.repeat-end__option{
  min-height:49px;
  display:flex!important;
  align-items:center;
  gap:8px!important;
  padding:7px 10px;
  border:1px solid rgba(109,73,90,.10);
  border-radius:13px;
  color:#6b5761;
  background:rgba(255,250,246,.72);
  cursor:pointer;
}
.repeat-end__option.is-active{
  border-color:rgba(166,96,122,.27);
  background:#fff9f5;
  box-shadow:0 6px 18px rgba(91,54,72,.055);
}
.repeat-end__option>input[type="radio"]{
  width:16px!important;
  min-height:16px!important;
  height:16px!important;
  flex:0 0 auto;
  accent-color:#a8627b!important;
}
.repeat-end__option>input[type="number"]{
  width:72px!important;
  min-height:38px!important;
  padding:6px 8px!important;
  text-align:center;
}
.repeat-end__option>span{
  color:inherit!important;
  font-size:.69rem!important;
  font-weight:780!important;
}
.repeat-end__option .romantic-field{
  flex:1;
  min-width:0;
}
.repeat-end__option :disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
}

.repeat-summary{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-height:50px;
  padding:9px 11px;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(135deg,#8f6176,#756a91);
}
.repeat-summary>span{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(255,255,255,.10);
  font-size:1rem;
}
.repeat-summary strong{
  font-size:.68rem;
  line-height:1.45;
}

/* Editor labels and inputs have stronger contrast everywhere. */
.studio-fields label>span{
  color:#5f4c56!important;
  font-size:.74rem!important;
  font-weight:760!important;
}
.studio-fields input,
.studio-fields select,
.studio-fields textarea{
  color:#3f333a!important;
  border-color:rgba(109,73,90,.14)!important;
}
.studio-fields input::placeholder,
.studio-fields textarea::placeholder{
  color:#9b8891!important;
}

/* =========================================================
   MOBILE CALENDAR
   ========================================================= */

@media(max-width:760px){
  .section{
    padding-top:82px;
    padding-bottom:82px;
  }
  .section-title{
    margin-bottom:28px;
  }
  .section-title h2{
    font-size:clamp(2.65rem,13vw,4.5rem);
  }

  .calendar28-section{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .calendar28-shell{
    border-radius:20px!important;
  }
  .calendar28-header{
    top:64px!important;
    padding:10px!important;
    gap:9px!important;
  }
  .calendar28-period strong{
    font-size:1.5rem!important;
  }
  .calendar28-header-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    gap:6px!important;
  }
  .calendar28-switcher{
    order:1;
    width:100%;
    justify-content:center;
  }
  .calendar28-add,
  .calendar28-header-actions>.module-manage-button,
  .calendar28-tools-toggle{
    order:2;
  }
  .calendar28-tools.is-open{
    max-height:320px!important;
  }
  .calendar28-filter{
    font-size:.60rem!important;
  }
  .calendar28-time-legend{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    padding:7px 8px!important;
    font-size:.50rem!important;
  }
  .calendar28-time-legend>div b{
    font-size:.43rem!important;
  }
  .calendar28-weekday-head span{
    font-size:.55rem!important;
  }
  .calendar28-day{
    min-height:82px!important;
    padding:6px!important;
  }
  .calendar28-day-head>span{
    font-size:.66rem!important;
  }
  .calendar28-mobile-summary{
    height:32px!important;
  }
  .calendar28-details{
    padding:17px!important;
  }
  .calendar28-detail-event strong{
    font-size:.78rem!important;
  }
  .calendar28-detail-event span{
    font-size:.66rem!important;
  }
  .calendar28-agenda-event strong{
    font-size:.75rem!important;
  }
  .calendar28-agenda-event span{
    font-size:.63rem!important;
  }
  .calendar28-week-timed-copy strong{
    font-size:.69rem!important;
  }
  .calendar28-week-timed-copy span{
    font-size:.59rem!important;
  }

  .repeat-rule{
    grid-template-columns:1fr 64px minmax(112px,1fr);
    gap:6px;
  }
  .repeat-rule>span{
    grid-column:1/-1;
  }
  .repeat-end__option{
    flex-wrap:wrap;
  }
  .repeat-end__option .romantic-field{
    flex-basis:100%;
  }
}


/* V49 — calendrier allégé */
.calendar28-time-legend{
  display:none!important;
}
.calendar28-main{
  border-top:0!important;
}


/* =========================================================
   V50 — APP SHELL / RESPONSIVE / CALENDRIER RECONSTRUIT
   ========================================================= */

:root{
  --app50-top:64px;
  --app50-rail:0px;
  --app50-safe-bottom:84px;
  --app50-glass:rgba(255,249,246,.82);
  --app50-glass-dark:rgba(29,22,30,.76);
  --app50-border:rgba(83,57,71,.12);
  --app50-shadow:0 18px 55px rgba(44,28,39,.12);
}

/* ---------- global application shell ---------- */
html{
  scroll-behavior:smooth;
  scroll-padding-top:74px;
}
body.app-v50{
  min-height:100svh;
  background:#f8f1ec;
}
.app-v50 #site{
  min-height:100svh;
  width:100%;
  overflow:clip;
}
.app-v50 main{
  position:relative;
  width:100%;
  min-width:0;
}
.app-v50 .hero{
  min-height:100svh!important;
}
.app-v50 .section{
  width:100%;
  min-height:100svh;
  padding:
    clamp(88px,10vh,132px)
    clamp(18px,5vw,88px)
    clamp(100px,11vh,144px)!important;
  scroll-margin-top:76px;
}
.app-v50 .section > *{
  width:min(100%,1540px);
  margin-left:auto;
  margin-right:auto;
}
.app-v50 .section-title{
  margin-bottom:clamp(28px,4vw,48px)!important;
}
.app-v50 .section-title h2{
  max-width:900px;
}
.app-v50 .chapter-divider{
  position:relative;
  z-index:2;
}

/* One cohesive app atmosphere, without covering content. */
.app-v50 #site::before,
.app-v50 #site::after{
  content:"";
  position:fixed;
  z-index:0;
  width:420px;
  height:420px;
  border-radius:50%;
  filter:blur(80px);
  opacity:.07;
  pointer-events:none;
}
.app-v50 #site::before{
  left:-210px;
  top:18vh;
  background:#be7891;
}
.app-v50 #site::after{
  right:-230px;
  bottom:6vh;
  background:#8878a4;
}
.app-v50 main,
.app-v50 .app50-topbar,
.app-v50 .mobile29{
  z-index:2;
}

/* ---------- sticky app header ---------- */
.app50-topbar{
  position:fixed!important;
  z-index:900!important;
  top:10px!important;
  left:10px!important;
  right:10px!important;
  width:auto!important;
  min-height:54px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  padding:7px 8px!important;
  border:1px solid rgba(255,255,255,.46)!important;
  border-radius:18px!important;
  background:rgba(255,249,246,.68)!important;
  box-shadow:0 12px 38px rgba(43,28,38,.08)!important;
  backdrop-filter:blur(20px) saturate(1.15)!important;
  transition:
    background .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    transform .22s ease!important;
}
.app50-scrolled .app50-topbar{
  background:rgba(255,249,246,.91)!important;
  border-color:rgba(86,57,72,.10)!important;
  box-shadow:0 14px 42px rgba(43,28,38,.14)!important;
}
.app50-topbar .nav29-brand{
  position:static!important;
  min-width:0!important;
  height:40px!important;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  padding:0 8px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.app50-topbar .nav29-brand>span{
  width:35px!important;
  height:35px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:12px!important;
  color:#fff!important;
  background:linear-gradient(135deg,#a7607a,#7d6b98)!important;
  box-shadow:0 7px 18px rgba(89,53,73,.15)!important;
  font-size:.65rem!important;
}
.app50-topbar .nav29-brand small{
  color:#9b7182!important;
  font-size:.44rem!important;
  letter-spacing:.12em!important;
}
.app50-topbar .nav29-brand strong{
  color:#493943!important;
  font-size:.83rem!important;
}
.app50-context{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:#4c3c46;
}
.app50-context>i{
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:50%;
  background:#b86d87;
  box-shadow:0 0 0 5px rgba(184,109,135,.10);
}
.app50-context>div{
  min-width:0;
  display:grid;
  gap:1px;
  text-align:center;
}
.app50-context small{
  color:#9a818d;
  font-size:.43rem;
  font-weight:900;
  letter-spacing:.13em;
}
.app50-context strong{
  overflow:hidden;
  color:#4b3b45;
  font-size:.72rem;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app50-context strong.is-changing{
  animation:app50ContextIn .34s ease both;
}
@keyframes app50ContextIn{
  from{opacity:0;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}
.app50-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
}
.app50-manage,
.app50-topbar .nav29-lock{
  position:static!important;
  min-height:38px!important;
  height:38px!important;
  border:1px solid rgba(87,59,73,.09)!important;
  border-radius:12px!important;
  color:#745766!important;
  background:rgba(248,238,235,.82)!important;
  box-shadow:none!important;
}
.app50-manage{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 10px;
  cursor:pointer;
}
.app50-manage>span{font-size:.85rem}
.app50-manage>strong{
  font-size:.58rem;
  font-weight:900;
}
.app50-topbar .nav29-lock{
  width:38px!important;
  min-width:38px!important;
  display:grid!important;
  place-items:center!important;
}
.app50-manage:hover,
.app50-topbar .nav29-lock:hover{
  color:#9c5e76!important;
  border-color:rgba(164,95,121,.20)!important;
  background:#fffaf7!important;
}
.app50-topbar .nav29-progress{
  position:absolute!important;
  left:12px!important;
  right:12px!important;
  bottom:-1px!important;
  width:auto!important;
  height:2px!important;
  overflow:hidden!important;
  border-radius:99px!important;
  background:transparent!important;
}
.app50-topbar .nav29-progress i{
  height:100%!important;
  transform-origin:left center!important;
  background:linear-gradient(90deg,#b96e88,#83729e)!important;
}

/* ---------- mobile/tablet bottom navigation ---------- */
.app-v50 .mobile29{
  position:fixed!important;
  z-index:880!important;
  left:10px!important;
  right:10px!important;
  bottom:max(10px,env(safe-area-inset-bottom))!important;
  width:auto!important;
  max-width:none!important;
  min-height:60px!important;
  display:flex!important;
  align-items:stretch!important;
  gap:4px!important;
  padding:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  border:1px solid rgba(255,255,255,.52)!important;
  border-radius:20px!important;
  background:rgba(255,249,246,.90)!important;
  box-shadow:0 16px 44px rgba(42,27,37,.15)!important;
  backdrop-filter:blur(22px) saturate(1.12)!important;
  scrollbar-width:none!important;
}
.app-v50 .mobile29::-webkit-scrollbar{display:none!important}
.app-v50 .mobile29>a,
.app-v50 .mobile29>button{
  flex:0 0 64px!important;
  min-width:64px!important;
  min-height:48px!important;
  display:grid!important;
  place-items:center!important;
  align-content:center!important;
  gap:3px!important;
  padding:4px!important;
  border:0!important;
  border-radius:14px!important;
  color:#7f7078!important;
  background:transparent!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
.app-v50 .mobile29>a>span,
.app-v50 .mobile29>button>span{
  font-size:.88rem!important;
  line-height:1!important;
}
.app-v50 .mobile29>a>strong,
.app-v50 .mobile29>button>strong{
  font-size:.48rem!important;
  font-weight:850!important;
  line-height:1!important;
}
.app-v50 .mobile29>a.is-current{
  color:#985b74!important;
  background:linear-gradient(180deg,#f4e5ea,#f8efec)!important;
  box-shadow:inset 0 0 0 1px rgba(165,96,122,.10)!important;
}
.app-v50 .mobile29>a.is-current>span{
  transform:translateY(-1px) scale(1.08);
}

/* ---------- full-screen adaptive sections ---------- */
.app-v50 [data-motion-section]{
  position:relative;
}
.app-v50 [data-motion-section].app50-section-enter > .section-title{
  animation:app50SectionTitle .52s cubic-bezier(.2,.75,.2,1) both;
}
@keyframes app50SectionTitle{
  from{opacity:.68;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

/* Avoid endless decorative motion from older versions. */
.app-v50 .shooting,
.app-v50 .hero-orbit,
.app-v50 .ambient-v13 i{
  animation-iteration-count:1!important;
}

/* =========================================================
   V50 CALENDAR — rebuilt as an application panel
   ========================================================= */

.calendar50-section{
  isolation:isolate;
  min-height:100svh!important;
  background:
    linear-gradient(180deg,rgba(248,240,235,.94),rgba(244,233,229,.97)),
    url("../images/painting-calendar.webp") center top/cover fixed!important;
}
.calendar50-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 88% 13%,rgba(130,111,159,.11),transparent 24%),
    radial-gradient(circle at 9% 75%,rgba(187,111,136,.08),transparent 22%);
}
.calendar50-title{
  margin-bottom:24px!important;
}
.calendar50-title h2{
  font-size:clamp(3rem,5.2vw,5.8rem)!important;
}
.calendar50-app{
  width:min(100%,1660px)!important;
}
.calendar50-shell{
  width:100%!important;
  min-height:min(760px,calc(100svh - 170px))!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
  border:1px solid rgba(71,48,60,.11)!important;
  border-radius:28px!important;
  background:rgba(255,251,248,.96)!important;
  box-shadow:
    0 35px 90px rgba(54,34,47,.14),
    inset 0 1px 0 rgba(255,255,255,.9)!important;
}
.calendar50-header{
  position:relative!important;
  top:auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr)!important;
  align-items:center!important;
  gap:16px!important;
  padding:14px 16px!important;
  border-bottom:1px solid rgba(75,50,64,.09)!important;
  background:
    linear-gradient(180deg,rgba(255,252,249,.99),rgba(248,239,235,.96))!important;
  backdrop-filter:none!important;
}
.calendar50-period-row{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:14px;
}
.calendar50-header .calendar28-navigation{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
}
.calendar50-header .calendar28-navigation button{
  min-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0 10px!important;
  border:1px solid rgba(78,53,67,.09)!important;
  border-radius:11px!important;
  color:#5c4a54!important;
  background:#f1e6e3!important;
  box-shadow:none!important;
}
.calendar50-header #cal28-today{
  min-width:auto!important;
  padding:0 12px!important;
  font-size:.58rem!important;
  font-weight:850!important;
}
.calendar50-header .calendar28-period{
  min-width:0!important;
  display:grid!important;
  justify-items:start!important;
  text-align:left!important;
}
.calendar50-header .calendar28-period small{
  margin-bottom:2px!important;
  color:#9a7182!important;
  font-size:.48rem!important;
  letter-spacing:.13em!important;
}
.calendar50-header .calendar28-period strong{
  max-width:100%;
  overflow:hidden;
  color:#3d3138!important;
  font-size:clamp(1.25rem,2vw,1.85rem)!important;
  line-height:1.05!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.calendar50-actions{
  min-width:0;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
}
.calendar50-actions .calendar28-switcher{
  flex:0 1 260px!important;
  min-width:220px!important;
  height:40px!important;
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  padding:3px!important;
  border-radius:12px!important;
  background:#ede2e2!important;
}
.calendar50-actions .calendar28-switcher button{
  min-height:34px!important;
  padding:0 8px!important;
  border-radius:9px!important;
  font-size:.58rem!important;
}
.calendar50-action-buttons{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:5px;
}
.calendar50-action-buttons>button{
  height:40px!important;
  min-height:40px!important;
  border-radius:11px!important;
}
.calendar50-action-buttons .calendar28-add{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  padding:0 11px!important;
}
.calendar50-action-buttons .calendar28-add>span{
  font-size:.9rem!important;
}
.calendar50-action-buttons .calendar28-add>strong{
  font-size:.57rem!important;
  font-weight:900!important;
}
.calendar50-action-buttons .module-manage-button{
  padding:0 10px!important;
  box-shadow:none!important;
  background:#f3e8e6!important;
}
.calendar50-action-buttons .calendar28-tools-toggle{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  padding:0 10px!important;
  color:#fff!important;
  background:#4b3947!important;
}
.calendar50-action-buttons .calendar28-tools-toggle>span{
  font-size:.72rem!important;
}
.calendar50-action-buttons .calendar28-tools-toggle>strong{
  font-size:.57rem!important;
  font-weight:900!important;
}
.calendar50-action-buttons .calendar28-tools-toggle>i{
  font-style:normal!important;
  font-size:.55rem!important;
}

/* filter drawer */
.calendar50-tools{
  position:relative!important;
  z-index:8!important;
  display:grid!important;
  grid-template-columns:minmax(220px,340px) minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  max-height:0!important;
  padding:0 16px!important;
  overflow:hidden!important;
  border-bottom:0!important;
  background:#f0e5e3!important;
  opacity:0!important;
  transition:
    max-height .26s ease,
    padding .26s ease,
    opacity .2s ease!important;
}
.calendar50-tools.is-open{
  max-height:150px!important;
  padding:11px 16px!important;
  border-bottom:1px solid rgba(75,50,64,.08)!important;
  opacity:1!important;
}
.calendar50-tools .calendar28-search{
  min-height:40px!important;
  border-radius:12px!important;
}
.calendar50-tools .calendar28-filters{
  min-width:0;
  display:flex!important;
  gap:5px!important;
  overflow-x:auto!important;
  scrollbar-width:none!important;
}
.calendar50-tools .calendar28-filters::-webkit-scrollbar{display:none!important}
.calendar50-tools .calendar28-filter{
  flex:0 0 auto!important;
  min-height:34px!important;
  padding:0 9px!important;
}
.calendar50-tools .calendar28-reset{
  flex:0 0 auto!important;
}

/* main calendar + selected-day panel */
.calendar50-body{
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 330px!important;
  background:#fffdf9!important;
}
.calendar50-main{
  min-width:0!important;
  min-height:0!important;
  overflow:auto!important;
  padding:14px!important;
  background:
    linear-gradient(180deg,#fffdfa,#faf4f0)!important;
}
.calendar50-main .calendar28-view{
  min-height:100%;
}
.calendar50-details{
  min-width:0!important;
  min-height:0!important;
  overflow:auto!important;
  padding:20px!important;
  border-left:1px solid rgba(72,48,61,.09)!important;
  background:
    radial-gradient(circle at 90% 0,rgba(185,111,136,.09),transparent 31%),
    linear-gradient(180deg,#f7eeea,#efe3df)!important;
}

/* month view */
.calendar50-main .calendar28-weekday-head{
  position:sticky;
  z-index:3;
  top:-14px;
  height:34px!important;
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  align-items:center!important;
  padding:0!important;
  border-bottom:1px solid rgba(72,48,61,.08)!important;
  background:rgba(255,253,250,.95)!important;
  backdrop-filter:blur(10px)!important;
}
.calendar50-main .calendar28-weekday-head span{
  color:#7a6972!important;
  font-size:.55rem!important;
  font-weight:900!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
.calendar50-main .calendar28-month-grid{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:6px!important;
  padding-top:8px!important;
}
.calendar50-main .calendar28-day{
  position:relative!important;
  min-width:0!important;
  min-height:112px!important;
  padding:8px!important;
  overflow:hidden!important;
  border:1px solid rgba(74,50,63,.08)!important;
  border-radius:12px!important;
  color:#40343b!important;
  background:#fffaf7!important;
  box-shadow:none!important;
  text-align:left!important;
  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease,
    box-shadow .15s ease!important;
}
.calendar50-main .calendar28-day:hover{
  z-index:2;
  transform:translateY(-1px);
  border-color:rgba(164,95,121,.22)!important;
  background:#fffdfb!important;
  box-shadow:0 8px 22px rgba(60,38,49,.07)!important;
}
.calendar50-main .calendar28-day.is-selected{
  border-color:rgba(168,96,123,.38)!important;
  background:#fff8f6!important;
  box-shadow:inset 0 0 0 1px rgba(168,96,123,.13)!important;
}
.calendar50-main .calendar28-day.is-today::after{
  content:"";
  position:absolute;
  top:8px;
  right:8px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#b56782;
  box-shadow:0 0 0 4px rgba(181,103,130,.10);
}
.calendar50-main .calendar28-day.is-out{
  opacity:.42!important;
  background:#f5ece8!important;
}
.calendar50-main .calendar28-day-head{
  min-height:22px!important;
}
.calendar50-main .calendar28-day-head>span{
  color:#43373e!important;
  font-size:.70rem!important;
  font-weight:900!important;
}
.calendar50-main .calendar28-day-head>small{
  padding:2px 5px!important;
  border-radius:999px!important;
  color:#89596c!important;
  background:#f1dfe5!important;
  font-size:.48rem!important;
}
.calendar50-main .calendar28-half-hint{display:none!important}
.calendar50-main .calendar28-day-all-day,
.calendar50-main .calendar28-day-timed{
  display:grid!important;
  gap:4px!important;
}
.calendar50-main .calendar28-all-day-chip{
  min-width:0!important;
  min-height:25px!important;
  padding:5px 6px!important;
  overflow:hidden!important;
  border-radius:7px!important;
  box-shadow:none!important;
}
.calendar50-main .calendar28-all-day-chip b{
  overflow:hidden;
  font-size:.54rem!important;
  font-weight:850!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.calendar50-main .calendar28-timed-label{
  overflow:hidden;
  color:#5f5058!important;
  font-size:.49rem!important;
  font-weight:800!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.calendar50-main .calendar28-24h-track{
  height:9px!important;
  margin-top:2px!important;
  overflow:hidden!important;
  border-radius:99px!important;
  background:#eee4e2!important;
}
.calendar50-main .calendar28-mobile-summary{
  display:none!important;
}

/* week view */
.calendar50-main .calendar28-week-list{
  display:grid!important;
  gap:7px!important;
}
.calendar50-main .calendar28-week-row{
  min-height:104px!important;
  display:grid!important;
  grid-template-columns:74px minmax(0,1fr)!important;
  overflow:hidden!important;
  border:1px solid rgba(73,49,62,.08)!important;
  border-radius:13px!important;
  background:#fffaf7!important;
}
.calendar50-main .calendar28-week-date{
  min-height:100%!important;
  border:0!important;
  border-right:1px solid rgba(73,49,62,.08)!important;
  border-radius:0!important;
  background:#f2e7e4!important;
}
.calendar50-main .calendar28-week-content{
  min-width:0!important;
  padding:8px 10px!important;
}
.calendar50-main .calendar28-week-clock-head{display:none!important}
.calendar50-main .calendar28-week-clock{
  display:grid!important;
  gap:5px!important;
}
.calendar50-main .calendar28-week-timed-event,
.calendar50-main .calendar28-week-all-day-event{
  border-radius:9px!important;
}
.calendar50-main .calendar28-week-timed-copy strong{
  color:#44373f!important;
  font-size:.66rem!important;
}
.calendar50-main .calendar28-week-timed-copy span{
  color:#6d5e66!important;
  font-size:.56rem!important;
}

/* agenda view */
.calendar50-main .calendar28-agenda-list{
  display:grid!important;
  gap:9px!important;
}
.calendar50-main .calendar28-agenda-day{
  display:grid!important;
  grid-template-columns:78px minmax(0,1fr)!important;
  overflow:hidden!important;
  border:1px solid rgba(73,49,62,.08)!important;
  border-radius:14px!important;
  background:#fffaf7!important;
}
.calendar50-main .calendar28-agenda-date{
  min-height:100%!important;
  border-radius:0!important;
  background:#f0e4e2!important;
}
.calendar50-main .calendar28-agenda-events{
  min-width:0!important;
  display:grid!important;
  gap:5px!important;
  padding:8px!important;
}
.calendar50-main .calendar28-agenda-event{
  min-width:0!important;
  min-height:52px!important;
  border-radius:10px!important;
}

/* details */
.calendar50-details .calendar28-details-date{
  padding-bottom:15px!important;
  border-bottom:1px solid rgba(75,50,64,.09)!important;
}
.calendar50-details .calendar28-details-date>small{
  color:#9a667b!important;
  font-size:.50rem!important;
  font-weight:900!important;
  letter-spacing:.12em!important;
}
.calendar50-details .calendar28-details-date strong{
  color:#3c3037!important;
  font-size:clamp(2.5rem,4vw,4rem)!important;
}
.calendar50-details .calendar28-details-date span{
  color:#66575f!important;
  font-size:.78rem!important;
}
.calendar50-details .calendar28-details-content{
  padding-top:16px!important;
}
.calendar50-details .calendar28-detail-event{
  position:relative!important;
  padding:12px 44px 12px 12px!important;
  margin-bottom:7px!important;
  border:1px solid rgba(73,49,62,.08)!important;
  border-radius:12px!important;
  background:rgba(255,251,248,.68)!important;
}
.calendar50-details .calendar28-detail-event>i{
  width:7px!important;
  height:7px!important;
  margin-top:5px!important;
}
.calendar50-details .calendar28-detail-event strong{
  color:#40343b!important;
  font-size:.72rem!important;
}
.calendar50-details .calendar28-detail-event span{
  margin-top:3px!important;
  color:#665861!important;
  font-size:.61rem!important;
  line-height:1.45!important;
}
.calendar50-details .calendar28-empty-day{
  min-height:86px!important;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  border:1px dashed rgba(74,50,63,.13)!important;
  border-radius:12px!important;
  color:#8a7881!important;
  background:rgba(255,251,248,.45)!important;
}
.calendar50-details .calendar28-next-meeting{
  margin-top:15px!important;
  padding:13px!important;
  border:1px solid rgba(75,50,64,.08)!important;
  border-radius:13px!important;
  background:#fff9f5!important;
}

/* concise footer */
.calendar50-bottom{
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:8px 14px!important;
  border-top:1px solid rgba(75,50,64,.08)!important;
  background:#efe4e1!important;
}
.calendar50-bottom .calendar28-route-legend{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:9px!important;
}
.calendar50-bottom .calendar28-route-legend span,
.calendar50-bottom #cal28-status{
  color:#71616a!important;
  font-size:.53rem!important;
}

/* view change feels like an app transition */
.calendar50-shell.is-refreshing .calendar28-view.is-active{
  animation:calendar50ViewIn .24s ease both;
}
@keyframes calendar50ViewIn{
  from{opacity:.58;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}

/* =========================================================
   V50 RECURRENCE — compact, explicit, with preview
   ========================================================= */

.studio-schedule-panel--repeat{
  gap:10px!important;
}
.repeat-presets{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:6px!important;
  overflow:visible!important;
}
.repeat-presets button{
  min-width:0!important;
  min-height:42px!important;
  white-space:normal!important;
  line-height:1.2!important;
}
.repeat-rule{
  grid-template-columns:auto 70px minmax(120px,1fr)!important;
  min-height:60px!important;
}
.repeat-end{
  padding-top:3px!important;
}
.repeat-end__option{
  min-height:47px!important;
}
.repeat-summary{
  min-height:58px!important;
  grid-template-columns:36px minmax(0,1fr)!important;
}
.repeat-summary>div{
  min-width:0;
  display:grid;
  gap:2px;
}
.repeat-summary strong{
  color:#fff!important;
  font-size:.66rem!important;
}
.repeat-summary small{
  overflow:hidden;
  color:rgba(255,255,255,.72)!important;
  font-size:.54rem!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ---------- utility hover polish ---------- */
@media (hover:hover) and (pointer:fine){
  .app50-manage,
  .calendar50-action-buttons>button,
  .module-manage-button,
  .mobile29>a,
  .mobile29>button{
    transition:
      transform .16s ease,
      background .16s ease,
      color .16s ease,
      box-shadow .16s ease!important;
  }
  .app50-manage:hover,
  .calendar50-action-buttons>button:hover,
  .module-manage-button:hover{
    transform:translateY(-1px)!important;
  }
}

/* =========================================================
   PHONE — genuinely mobile layout
   ========================================================= */
@media(max-width:699px){
  :root{
    --app50-top:58px;
    --app50-safe-bottom:78px;
  }
  html{scroll-padding-top:66px}
  .app-v50 .section{
    min-height:100svh;
    padding:
      78px
      12px
      calc(96px + env(safe-area-inset-bottom))!important;
    scroll-margin-top:66px;
  }
  .app50-topbar{
    top:6px!important;
    left:6px!important;
    right:6px!important;
    min-height:50px!important;
    padding:5px!important;
    border-radius:16px!important;
  }
  .app50-topbar .nav29-brand{
    height:38px!important;
    padding:0 4px!important;
  }
  .app50-topbar .nav29-brand>span{
    width:34px!important;
    height:34px!important;
  }
  .app50-topbar .nav29-brand>div{
    display:none!important;
  }
  .app50-context{
    justify-content:flex-start;
  }
  .app50-context small{display:none}
  .app50-context strong{
    font-size:.68rem;
  }
  .app50-manage{
    width:36px;
    min-width:36px;
    padding:0;
  }
  .app50-manage>strong{display:none}
  .app50-topbar .nav29-lock{
    width:36px!important;
    min-width:36px!important;
    height:36px!important;
  }

  .app-v50 .mobile29{
    left:6px!important;
    right:6px!important;
    bottom:max(6px,env(safe-area-inset-bottom))!important;
    min-height:58px!important;
    padding:5px!important;
    border-radius:18px!important;
  }
  .app-v50 .mobile29>a,
  .app-v50 .mobile29>button{
    flex-basis:59px!important;
    min-width:59px!important;
    min-height:46px!important;
  }

  /* calendar fills the screen width like a native app */
  .calendar50-section{
    padding-left:6px!important;
    padding-right:6px!important;
  }
  .calendar50-title{
    padding-left:8px;
    padding-right:8px;
    margin-bottom:16px!important;
  }
  .calendar50-title h2{
    font-size:clamp(2.55rem,13vw,4.2rem)!important;
  }
  .calendar50-shell{
    min-height:0!important;
    border-radius:20px!important;
  }
  .calendar50-header{
    grid-template-columns:1fr!important;
    gap:10px!important;
    padding:10px!important;
  }
  .calendar50-period-row{
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:10px!important;
  }
  .calendar50-header .calendar28-navigation button{
    min-width:35px!important;
    height:35px!important;
    min-height:35px!important;
    padding:0 8px!important;
  }
  .calendar50-header #cal28-today{
    padding:0 9px!important;
  }
  .calendar50-header .calendar28-period strong{
    font-size:1.25rem!important;
  }
  .calendar50-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .calendar50-actions .calendar28-switcher{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    flex:none!important;
  }
  .calendar50-action-buttons{
    display:grid!important;
    grid-template-columns:1.1fr .9fr .9fr!important;
    gap:6px!important;
  }
  .calendar50-action-buttons>button{
    width:100%!important;
    min-width:0!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }
  .calendar50-action-buttons .calendar28-add,
  .calendar50-action-buttons .module-manage-button,
  .calendar50-action-buttons .calendar28-tools-toggle{
    justify-content:center!important;
  }
  .calendar50-action-buttons strong{
    display:block!important;
  }

  .calendar50-tools{
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .calendar50-tools.is-open{
    max-height:260px!important;
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
  .calendar50-tools .calendar28-filters{
    width:100%;
  }
  .calendar50-tools .calendar28-reset{
    justify-self:start;
  }

  .calendar50-body{
    display:block!important;
  }
  .calendar50-main{
    overflow:visible!important;
    padding:8px!important;
  }
  .calendar50-main .calendar28-weekday-head{
    position:static!important;
    top:auto!important;
    height:27px!important;
  }
  .calendar50-main .calendar28-weekday-head span{
    font-size:.47rem!important;
  }
  .calendar50-main .calendar28-month-grid{
    gap:3px!important;
    padding-top:5px!important;
  }
  .calendar50-main .calendar28-day{
    aspect-ratio:1/1.04;
    min-height:0!important;
    padding:5px!important;
    border-radius:9px!important;
  }
  .calendar50-main .calendar28-day-head{
    min-height:17px!important;
  }
  .calendar50-main .calendar28-day-head>span{
    font-size:.59rem!important;
  }
  .calendar50-main .calendar28-day-head>small{
    padding:1px 4px!important;
    font-size:.43rem!important;
  }
  .calendar50-main .calendar28-day-all-day,
  .calendar50-main .calendar28-day-timed{
    display:none!important;
  }
  .calendar50-main .calendar28-mobile-summary{
    position:absolute!important;
    left:5px!important;
    right:5px!important;
    bottom:6px!important;
    height:13px!important;
    display:flex!important;
    align-items:flex-end!important;
    gap:2px!important;
  }
  .calendar50-main .calendar28-mobile-summary i{
    width:5px!important;
    height:5px!important;
    border-radius:50%!important;
    flex:0 0 auto!important;
  }
  .calendar50-main .calendar28-mobile-summary span{
    position:absolute!important;
    bottom:0!important;
    height:3px!important;
    min-width:3px!important;
    border-radius:99px!important;
  }
  .calendar50-main .calendar28-day.is-today::after{
    top:5px;
    right:5px;
    width:4px;
    height:4px;
    box-shadow:0 0 0 2px rgba(181,103,130,.11);
  }

  .calendar50-main .calendar28-week-row{
    grid-template-columns:60px minmax(0,1fr)!important;
    min-height:92px!important;
  }
  .calendar50-main .calendar28-week-content{
    padding:6px!important;
  }
  .calendar50-main .calendar28-agenda-day{
    grid-template-columns:62px minmax(0,1fr)!important;
  }
  .calendar50-main .calendar28-agenda-events{
    padding:6px!important;
  }

  .calendar50-details{
    max-height:none!important;
    overflow:visible!important;
    padding:14px!important;
    border-top:1px solid rgba(72,48,61,.09)!important;
    border-left:0!important;
  }
  .calendar50-details .calendar28-details-date{
    display:flex!important;
    align-items:end!important;
    justify-content:space-between!important;
    gap:12px!important;
  }
  .calendar50-details .calendar28-details-date>small{
    align-self:flex-start;
  }
  .calendar50-details .calendar28-details-date strong{
    font-size:2.6rem!important;
  }

  .calendar50-bottom{
    display:grid!important;
    gap:5px!important;
    padding:9px 11px!important;
  }
  .calendar50-bottom #cal28-status{
    order:-1;
  }

  /* recurrence editor becomes a simple vertical flow */
  .studio-calendar-mode{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .studio-calendar-mode__item{
    min-height:58px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    text-align:center!important;
  }
  .repeat-presets{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .repeat-rule{
    grid-template-columns:60px minmax(0,1fr)!important;
    gap:6px!important;
  }
  .repeat-rule>span{
    grid-column:1/-1!important;
  }
  .repeat-end__option{
    align-items:center!important;
  }
  .repeat-summary small{
    white-space:normal!important;
  }
}

/* =========================================================
   TABLET — comfortable app, still bottom navigation
   ========================================================= */
@media(min-width:700px) and (max-width:1099px){
  .app-v50 .mobile29{
    left:50%!important;
    right:auto!important;
    width:min(760px,calc(100vw - 28px))!important;
    transform:translateX(-50%)!important;
  }
  .app-v50 .mobile29>a,
  .app-v50 .mobile29>button{
    flex:1 1 0!important;
    min-width:72px!important;
  }

  .calendar50-header{
    grid-template-columns:1fr!important;
  }
  .calendar50-actions{
    justify-content:space-between!important;
  }
  .calendar50-body{
    grid-template-columns:1fr!important;
  }
  .calendar50-details{
    max-height:360px!important;
    border-top:1px solid rgba(72,48,61,.09)!important;
    border-left:0!important;
  }
  .calendar50-main .calendar28-day{
    min-height:96px!important;
  }
}

/* =========================================================
   DESKTOP — dedicated app rail + wide content
   ========================================================= */
@media(min-width:1100px){
  :root{
    --app50-rail:92px;
    --app50-safe-bottom:18px;
  }
  html{scroll-padding-top:78px}
  body.app-v50{
    background:#eee6e2;
  }
  .app-v50 #site{
    padding-left:92px!important;
  }
  .app50-topbar{
    left:106px!important;
    right:16px!important;
    top:12px!important;
  }

  .app-v50 .mobile29{
    left:14px!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    width:68px!important;
    max-height:calc(100svh - 120px)!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    transform:translateY(-50%)!important;
    gap:4px!important;
    padding:6px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border-radius:22px!important;
    background:rgba(255,249,246,.88)!important;
  }
  .app-v50 .mobile29>a,
  .app-v50 .mobile29>button{
    flex:0 0 54px!important;
    width:54px!important;
    min-width:54px!important;
    min-height:54px!important;
    border-radius:15px!important;
  }
  .app-v50 .mobile29>a>span,
  .app-v50 .mobile29>button>span{
    font-size:.92rem!important;
  }
  .app-v50 .mobile29>a>strong,
  .app-v50 .mobile29>button>strong{
    max-width:48px;
    overflow:hidden;
    font-size:.45rem!important;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .app-v50 .section{
    padding-left:clamp(42px,5vw,96px)!important;
    padding-right:clamp(42px,5vw,96px)!important;
  }
  .app-v50 .hero{
    width:100%!important;
  }

  .calendar50-shell{
    min-height:min(790px,calc(100svh - 160px))!important;
  }
}

/* Ultrawide: use the space rather than a narrow centered website. */
@media(min-width:1600px){
  .app-v50 .section > *{
    width:min(100%,1760px);
  }
  .calendar50-body{
    grid-template-columns:minmax(0,1fr) 380px!important;
  }
  .calendar50-main .calendar28-day{
    min-height:126px!important;
  }
  .calendar50-header{
    grid-template-columns:minmax(390px,.85fr) minmax(620px,1.15fr)!important;
  }
}

/* Accessibility */
@media(prefers-reduced-motion:reduce){
  .app-v50 *,
  .app-v50 *::before,
  .app-v50 *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}


/* V50 shell hard reset against legacy nav positioning. */
.app-v50 .app50-topbar{
  bottom:auto!important;
  max-width:none!important;
  margin:0!important;
  transform:none!important;
}
@media(max-width:699px){
  .app-v50 .app50-topbar{
    transform:none!important;
  }
}


/* Legacy versions used the individual CSS translate property. */
.app-v50 .app50-topbar{
  translate:none!important;
}


/* V50 mobile calendar header final pass */
@media(max-width:699px){
  .calendar50-period-row{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .calendar50-header .calendar28-period{
    order:1!important;
    width:100%!important;
    justify-items:start!important;
  }
  .calendar50-header .calendar28-navigation{
    order:2!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr) 40px!important;
  }
  .calendar50-header #cal28-today{
    width:100%!important;
  }
  .calendar50-actions .calendar28-switcher{
    order:1!important;
  }
  .calendar50-action-buttons{
    order:2!important;
  }
}


/* V50 action order stays identical on every screen. */
.calendar50-action-buttons .calendar28-add{order:1!important}
.calendar50-action-buttons .calendar50-manage{order:2!important}
.calendar50-action-buttons .calendar28-tools-toggle{order:3!important}


/* =========================================================
   V51 — calmer visuals, lighter image use, better editor UX
   ========================================================= */

/* --- Header / logo --- */
.app50-topbar{
  grid-template-columns:auto minmax(0,1fr) auto!important;
}
.app51-brand{
  gap:10px!important;
}
.app51-brand .app51-brand-mark{
  width:40px!important;
  height:40px!important;
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  align-items:center!important;
  justify-items:center!important;
  border-radius:14px!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.14), transparent 34%),
    linear-gradient(135deg,#b26b84,#7b6a9a)!important;
  box-shadow:0 10px 24px rgba(89,53,73,.18)!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
}
.app51-brand .app51-brand-mark i,
.app51-brand .app51-brand-mark em{
  font-style:normal!important;
  line-height:1!important;
}
.app51-brand .app51-brand-mark i{font-size:.70rem!important}
.app51-brand .app51-brand-mark em{font-size:.55rem!important;opacity:.92!important}
.app50-topbar .nav29-brand > span:not(.app51-brand-mark){display:none!important}
.app50-context strong{color:#43353f!important}
.app50-context small{color:#8d7280!important}
.app50-topbar .nav29-lock{
  color:#7d5f6e!important;
  background:rgba(252,246,244,.92)!important;
}
@media(max-width:699px){
  .app51-brand .app51-brand-mark{
    width:36px!important;
    height:36px!important;
    border-radius:13px!important;
  }
  .app51-brand > div{display:none!important}
}

/* --- Navigation readability --- */
.app-v50 .mobile29{gap:6px!important}
.app-v50 .mobile29>a,
.app-v50 .mobile29>button{color:#5e4b57!important}
.app-v50 .mobile29>a>strong,
.app-v50 .mobile29>button>strong{
  color:#5a4753!important;
  font-size:.53rem!important;
  font-weight:900!important;
  letter-spacing:.015em!important;
}
.app-v50 .mobile29>a>span,
.app-v50 .mobile29>button>span{color:#8e6478!important}
.app-v50 .mobile29>a.is-current{
  color:#8d5871!important;
  background:linear-gradient(180deg,#f7e7ec,#fff8f5)!important;
  box-shadow:
    inset 0 0 0 1px rgba(165,96,122,.12),
    0 10px 20px rgba(145,91,113,.10)!important;
}
.mobile29-manage{background:linear-gradient(145deg,#efe5d5,#f4e8e5)!important}
.mobile29-manage span{color:#9e774b!important}
@media(min-width:1100px){
  .app-v50 .mobile29>a>strong,
  .app-v50 .mobile29>button>strong{font-size:.49rem!important}
}

/* --- Remove heavy image blocks and rely on soft atmospheres --- */
.story-gallery,
.section-scene,
.envies-scene,
.painting-breath{display:none!important}

.story-section,
.together-section,
.books-section,
.envies-section,
.book30-section,
.little-things{
  position:relative;
  overflow:hidden;
}
.story-section::before,
.together-section::before,
.books-section::before,
.envies-section::before,
.book30-section::before,
.little-things::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.55) 18%, rgba(0,0,0,.22) 70%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.55) 18%, rgba(0,0,0,.22) 70%, transparent 100%);
}
.story-section::before{background-image:url("../images/painting-story.webp")}
.together-section::before{background-image:url("../images/painting-ideas.webp")}
.books-section::before{background-image:url("../images/painting-reading.webp")}
.envies-section::before{background-image:url("../images/painting-gifts.webp")}
.book30-section::before{background-image:url("../images/painting-book-us.webp")}
.little-things::before{background-image:url("../images/painting-divider.webp")}
.story-section > *,
.together-section > *,
.books-section > *,
.envies-section > *,
.book30-section > *,
.little-things > *{
  position:relative;
  z-index:1;
}
.books-section{
  background:
    radial-gradient(circle at 80% 16%, rgba(179,105,133,.09), transparent 24%),
    linear-gradient(180deg,#f9f2ef,#f3ebe7)!important;
}
.envies-section{
  background:
    radial-gradient(circle at 15% 20%, rgba(194,118,145,.08), transparent 22%),
    linear-gradient(180deg,#312536,#2a1f30)!important;
}
.book30-section{
  background:
    radial-gradient(circle at 88% 16%, rgba(196,119,145,.10), transparent 23%),
    linear-gradient(180deg,#fbf5f0,#f2e8e3)!important;
}

/* --- Cute ambient micro-decorations --- */
.chapter-divider{overflow:hidden!important}
.app51-divider-hearts{
  position:absolute;
  inset:auto 0 8px 0;
  display:flex;
  justify-content:space-around;
  pointer-events:none;
  opacity:.38;
}
.app51-divider-hearts i{
  color:rgba(181,103,130,.75);
  font-style:normal;
  font-size:.70rem;
  animation:app51HeartTravel 11s linear infinite;
}
.app51-divider-hearts i:nth-child(2){
  animation-duration:13s;
  animation-delay:-4.2s;
  font-size:.55rem;
}
.app51-divider-hearts i:nth-child(3){
  animation-duration:15s;
  animation-delay:-7.3s;
}
@keyframes app51HeartTravel{
  0%{transform:translate(-28vw,8px) scale(.84);opacity:0}
  16%{opacity:.26}
  50%{transform:translate(0,-7px) scale(1)}
  84%{opacity:.26}
  100%{transform:translate(28vw,-15px) scale(1.05);opacity:0}
}
.divider-train .tiny-train{
  display:inline-block;
  transition:transform .55s ease, opacity .4s ease;
  animation:app51TrainRide 5.2s ease-in-out infinite;
}
.divider-train .tiny-train.is-moving{opacity:.95}
@keyframes app51TrainRide{
  0%,100%{transform:translateX(-6px)}
  50%{transform:translateX(10px)}
}
.train-line i{
  background:linear-gradient(90deg,transparent,rgba(173,106,131,.18),rgba(173,106,131,.36),transparent)!important;
}

/* --- Calendar: week & agenda use full width --- */
.calendar50-shell.is-week-mode .calendar50-body,
.calendar50-shell.is-agenda-mode .calendar50-body{
  grid-template-columns:minmax(0,1fr)!important;
}
.calendar50-shell.is-week-mode .calendar50-details,
.calendar50-shell.is-agenda-mode .calendar50-details{
  display:none!important;
}
.calendar50-shell.is-week-mode .calendar50-main,
.calendar50-shell.is-agenda-mode .calendar50-main{
  padding-right:16px!important;
}
.calendar28-week-empty{display:none!important}

/* --- Content editor / popup --- */
.content-editor-backdrop{
  background:rgba(28,20,28,.32)!important;
  backdrop-filter:blur(10px)!important;
}
.content-editor{
  padding:14px!important;
  align-items:flex-end!important;
}
.content-editor__sheet{
  width:min(860px,100%)!important;
  max-height:min(94svh,980px)!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  border:1px solid rgba(93,60,76,.10)!important;
  border-radius:28px!important;
  background:
    linear-gradient(180deg,rgba(255,252,249,.98),rgba(250,243,239,.98))!important;
  box-shadow:0 40px 90px rgba(35,22,31,.22)!important;
}
.content-editor__head{
  position:sticky!important;
  top:0!important;
  z-index:3!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:15px 18px!important;
  border-bottom:1px solid rgba(95,65,79,.08)!important;
  background:rgba(255,251,248,.92)!important;
  backdrop-filter:blur(14px)!important;
}
.content-editor__head small{
  color:#9d7082!important;
  font-size:.52rem!important;
  letter-spacing:.16em!important;
  font-weight:900!important;
}
.content-editor__head strong{
  color:#453640!important;
  font-size:1.03rem!important;
}
#content-editor-close{
  width:40px!important;
  height:40px!important;
  border:1px solid rgba(89,60,74,.10)!important;
  border-radius:13px!important;
  color:#7c6170!important;
  background:#f7eeea!important;
}
#studio-fields{
  min-height:0!important;
  overflow:auto!important;
  padding:15px!important;
  display:grid!important;
  gap:14px!important;
}
#studio-fields > label,
#studio-fields > .studio-grid,
#studio-fields > .studio-schedule-panel,
#studio-fields > .studio-kind-block,
#studio-fields > .calendar-editor-intro,
#studio-fields > .studio-calendar-mode,
#studio-fields > .editor-step-label{
  border:1px solid rgba(95,65,79,.08)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.78)!important;
  box-shadow:0 10px 25px rgba(48,29,40,.04)!important;
}
.calendar-editor-intro{
  display:grid!important;
  grid-template-columns:46px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  padding:14px 16px!important;
}
.calendar-editor-intro > span{
  width:46px;height:46px;
  display:grid;place-items:center;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(135deg,#b56b86,#8672a3);
  font-size:1rem;
}
.calendar-editor-intro strong{color:#41333d!important;font-size:.94rem!important}
.calendar-editor-intro small{display:block;margin-top:4px;color:#7c6973!important;font-size:.64rem!important;line-height:1.5!important}
.editor-step-label{
  display:grid!important;
  grid-template-columns:40px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  padding:10px 14px!important;
}
.editor-step-label span{
  width:40px;height:40px;
  display:grid;place-items:center;
  border-radius:14px;
  color:#9d6178;
  background:#f6e6eb;
  font-weight:900;
}
.editor-step-label strong{color:#463740!important;font-size:.80rem!important}
.editor-step-label small{display:block;margin-top:3px;color:#7d6a74!important;font-size:.60rem!important;line-height:1.45!important}
#studio-fields label{
  display:grid!important;
  gap:7px!important;
  color:#4d3d47!important;
}
#studio-fields label > span{
  color:#61505a!important;
  font-size:.66rem!important;
  font-weight:850!important;
  letter-spacing:.01em!important;
}
#studio-fields label > span small{
  color:#9a7e8b!important;
  font-size:.55rem!important;
}
#studio-fields input[type="text"],
#studio-fields input[type="url"],
#studio-fields input[type="number"],
#studio-fields input[type="search"],
#studio-fields select,
#studio-fields textarea{
  min-height:52px!important;
  border:1px solid rgba(96,67,81,.10)!important;
  border-radius:16px!important;
  color:#41343d!important;
  background:#fffdfb!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85)!important;
}
#studio-fields textarea{
  min-height:120px!important;
  padding-top:14px!important;
  padding-bottom:14px!important;
  resize:vertical!important;
}
.romantic-field{
  min-height:52px!important;
  border:1px solid rgba(96,67,81,.10)!important;
  border-radius:16px!important;
  background:#fffdfb!important;
  overflow:hidden!important;
}
.romantic-field b{color:#a27186!important}
.studio-grid,
.studio-schedule-panel,
.studio-kind-block{padding:14px!important}
.studio-schedule-panel__head strong,
.studio-kind-block__title strong{color:#453640!important}
.studio-schedule-panel__head small,
.studio-kind-block__title small{color:#9a7182!important}
.repeat-presets button,
.multi-date-adder button{
  min-height:46px!important;
  border-radius:14px!important;
}
.repeat-summary{border-radius:16px!important}
.studio-kind-tags{gap:8px!important}
.studio-kind-tag{
  min-height:56px!important;
  border-radius:16px!important;
}
.studio-kind-tag.is-active{
  background:linear-gradient(180deg,#fff7fa,#fffdfb)!important;
  border-color:rgba(174,100,128,.18)!important;
  box-shadow:0 10px 22px rgba(173,99,127,.08)!important;
}
.studio-check{
  min-height:52px!important;
  padding:0 14px!important;
  border:1px solid rgba(96,67,81,.08)!important;
  border-radius:16px!important;
  background:#fffdfb!important;
}
.content-editor__foot{
  position:sticky!important;
  bottom:0!important;
  z-index:3!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px 15px!important;
  border-top:1px solid rgba(95,65,79,.08)!important;
  background:rgba(255,251,248,.94)!important;
  backdrop-filter:blur(14px)!important;
}
.content-editor__cancel,
.studio-save{
  min-height:48px!important;
  padding:0 16px!important;
  border-radius:16px!important;
}
#studio-status{
  color:#7d6672!important;
  font-size:.63rem!important;
  line-height:1.5!important;
  text-align:center!important;
}

/* Module manage buttons slightly softer */
.module-manage-button{
  min-height:36px!important;
  padding:0 10px!important;
  border-radius:12px!important;
  background:rgba(255,251,248,.72)!important;
  box-shadow:0 6px 18px rgba(46,28,39,.06)!important;
}
.module-manage-button strong{font-size:.56rem!important;font-weight:900!important}
.module-manage-button span{font-size:.80rem!important}

@media(max-width:699px){
  .content-editor{padding:0!important}
  .content-editor__sheet{
    width:100%!important;
    max-height:100svh!important;
    border-radius:24px 24px 0 0!important;
  }
  #studio-fields{padding:12px!important;gap:12px!important}
  .content-editor__head{padding:12px 14px!important}
  .content-editor__foot{grid-template-columns:1fr 1fr!important}
  #studio-status{
    grid-column:1/-1!important;
    order:3!important;
    text-align:left!important;
  }
  .editor-step-label{
    grid-template-columns:36px minmax(0,1fr)!important;
    gap:10px!important;
  }
  .editor-step-label span{
    width:36px;height:36px;border-radius:12px;
  }
  .repeat-presets{grid-template-columns:1fr 1fr!important}
}



/* =========================================================
   V52 — GÉRER / MOT DE PASSE : ÉTATS COMPLÈTEMENT SÉPARÉS
   ========================================================= */
.manage-view{
  z-index:1200!important;
}
.manage-view__top{
  z-index:1202!important;
}
body.manage-open .app50-topbar,
body.manage-open .nav29,
body.manage-open .mobile29{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.manage-open #gate{
  display:none!important;
  pointer-events:none!important;
}
body.locked .manage-view{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}


/* =========================================================
   V53 — HEADER CINÉMATIQUE + LIVRE RÉPARÉ + DÉCOR ROMANTIQUE
   ========================================================= */

:root{
  --app53-header-h:72px;
}

/* HEADER: full-width adaptive ribbon instead of a floating rounded card */
.app-v50 .app53-topbar{
  position:fixed!important;
  z-index:940!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  min-height:var(--app53-header-h)!important;
  display:grid!important;
  grid-template-columns:minmax(230px,1fr) auto minmax(140px,1fr)!important;
  align-items:center!important;
  gap:18px!important;
  padding:
    max(8px,env(safe-area-inset-top))
    clamp(16px,3vw,46px)
    8px!important;
  border:0!important;
  border-bottom:1px solid rgba(76,50,64,.10)!important;
  border-radius:0!important;
  background:
    linear-gradient(180deg,rgba(255,250,247,.96),rgba(255,250,247,.82) 68%,rgba(255,250,247,.62))!important;
  box-shadow:0 10px 34px rgba(45,28,39,.08)!important;
  backdrop-filter:blur(20px) saturate(1.12)!important;
  transform:none!important;
  translate:none!important;
}
.app-v50 .app53-topbar::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-18px;
  height:18px;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(55,35,48,.045),transparent);
}
.app-v50 .app53-topbar.is-dark-context{
  border-bottom-color:rgba(255,255,255,.10)!important;
  background:
    linear-gradient(180deg,rgba(28,21,30,.87),rgba(28,21,30,.64) 68%,rgba(28,21,30,.36))!important;
  box-shadow:0 10px 36px rgba(8,6,10,.18)!important;
}
.app53-brand{
  min-width:0;
  display:flex;
  align-items:center;
  justify-self:start;
  gap:12px;
  text-decoration:none;
}
.app53-emblem{
  position:relative;
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 8px 18px rgba(84,53,71,.14));
}
.app53-emblem svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.app53-emblem-letters{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:3px;
  color:#765265;
  font-family:Georgia,serif;
  line-height:1;
}
.app53-emblem-letters b{
  font-size:.68rem;
  font-weight:800;
}
.app53-emblem-letters i{
  color:#b66d88;
  font-size:.55rem;
  font-style:normal;
}
.app53-brand-copy{
  min-width:0;
  display:grid;
  gap:2px;
}
.app53-brand-copy small{
  color:#a06f82;
  font-size:.47rem;
  font-weight:900;
  letter-spacing:.14em;
}
.app53-brand-copy strong{
  color:#46363f;
  font:600 .92rem/1.1 Georgia,serif;
}
.app53-context{
  justify-self:center;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:8px 13px;
  border:1px solid rgba(82,56,69,.08);
  border-radius:999px;
  background:rgba(255,255,255,.44);
}
.app53-context-mark{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#a45f79;
  background:#f4e2e8;
  font-size:.62rem;
}
.app53-context>div{
  min-width:0;
  display:grid;
  gap:1px;
}
.app53-context small{
  color:#987c88;
  font-size:.40rem;
  font-weight:900;
  letter-spacing:.12em;
}
.app53-context strong{
  min-width:0;
  overflow:hidden;
  color:#45363f;
  font-size:.67rem;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app53-lock{
  justify-self:end;
  min-height:39px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0 12px;
  border:1px solid rgba(82,56,69,.09);
  border-radius:13px;
  color:#765b69;
  background:rgba(248,239,235,.72);
  cursor:pointer;
}
.app53-lock>span{
  font-size:.82rem;
}
.app53-lock>small{
  font-size:.52rem;
  font-weight:900;
}
.app53-progress{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:-1px!important;
  height:2px!important;
  overflow:hidden!important;
}
.app53-progress i{
  height:100%!important;
  background:linear-gradient(90deg,#d08ca5,#aa708e,#8170a0,#d6a56d)!important;
  box-shadow:0 0 12px rgba(185,111,136,.28);
}
.app53-topbar.is-dark-context .app53-brand-copy small,
.app53-topbar.is-dark-context .app53-context small{
  color:rgba(247,229,237,.60);
}
.app53-topbar.is-dark-context .app53-brand-copy strong,
.app53-topbar.is-dark-context .app53-context strong{
  color:#fff7fb;
}
.app53-topbar.is-dark-context .app53-emblem-letters{
  color:#fff6fa;
}
.app53-topbar.is-dark-context .app53-context{
  border-color:rgba(255,255,255,.09);
  background:rgba(255,255,255,.055);
}
.app53-topbar.is-dark-context .app53-context-mark{
  color:#f3d6e1;
  background:rgba(255,255,255,.08);
}
.app53-topbar.is-dark-context .app53-lock{
  color:#f4e6ed;
  border-color:rgba(255,255,255,.09);
  background:rgba(255,255,255,.055);
}

/* Keep content clear of the fixed ribbon */
.app-v50 .hero{
  padding-top:var(--app53-header-h)!important;
}
.app-v50 .section{
  scroll-margin-top:calc(var(--app53-header-h) + 10px)!important;
}
html{
  scroll-padding-top:calc(var(--app53-header-h) + 10px)!important;
}

@media(min-width:1100px){
  .app-v50 .app53-topbar{
    left:92px!important;
    width:calc(100% - 92px)!important;
  }
}
@media(max-width:699px){
  :root{--app53-header-h:60px}
  .app-v50 .app53-topbar{
    grid-template-columns:auto minmax(0,1fr) auto!important;
    gap:8px!important;
    min-height:60px!important;
    padding:
      max(6px,env(safe-area-inset-top))
      10px
      6px!important;
  }
  .app53-emblem{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
  .app53-brand-copy{
    display:none;
  }
  .app53-context{
    justify-self:stretch;
    justify-content:center;
    padding:6px 9px;
  }
  .app53-context small{
    display:none;
  }
  .app53-context strong{
    font-size:.65rem;
  }
  .app53-lock{
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px;
    padding:0;
    justify-content:center;
  }
  .app53-lock small{
    display:none;
  }
}

/* BOOK OF US reader must always sit above the app shell */
.book30-reader-backdrop{
  z-index:1340!important;
}
.book30-reader{
  z-index:1350!important;
}
body.book30-open .app53-topbar,
body.book30-open .mobile29{
  opacity:.18!important;
  pointer-events:none!important;
}
.book30-reader.is-open{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

/* ROMANTIC DECORATION LAYER */
.app53-romance-layer{
  position:fixed;
  z-index:3;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.app53-float{
  position:absolute;
  left:var(--x);
  bottom:-8vh;
  color:#ba7891;
  font:600 var(--size) Georgia,serif;
  opacity:var(--opacity);
  filter:drop-shadow(0 0 8px rgba(204,133,160,.15));
  animation:app53Float var(--duration) linear var(--delay) infinite;
}
.app53-float--1{color:#8d7aa9}
.app53-float--2{color:#cf9e6a}
@keyframes app53Float{
  0%{
    transform:translate3d(0,8vh,0) rotate(-8deg) scale(.82);
    opacity:0;
  }
  12%{opacity:var(--opacity)}
  52%{
    transform:translate3d(var(--drift),-52vh,0) rotate(10deg) scale(1);
  }
  88%{opacity:calc(var(--opacity) * .8)}
  100%{
    transform:translate3d(calc(var(--drift) * -.35),-112vh,0) rotate(24deg) scale(1.08);
    opacity:0;
  }
}
.app53-section-charm{
  position:absolute;
  z-index:8;
  right:0;
  top:-4px;
  width:92px;
  height:40px;
  pointer-events:none;
  opacity:0;
}
.app53-section-charm i{
  position:absolute;
  color:#ba738d;
  font-style:normal;
  filter:drop-shadow(0 4px 9px rgba(174,98,128,.16));
}
.app53-section-charm i:nth-child(1){left:5px;bottom:5px}
.app53-section-charm i:nth-child(2){left:40px;top:2px;color:#9d89bb;font-size:.72rem}
.app53-section-charm i:nth-child(3){right:5px;bottom:12px;font-size:.58rem}
.app53-section-charm.is-alive{
  animation:app53Charm 4s ease both;
}
.app53-section-charm.is-alive i:nth-child(1){animation:app53CharmHeart 2.8s ease .12s both}
.app53-section-charm.is-alive i:nth-child(2){animation:app53CharmStar 2.4s ease .28s both}
.app53-section-charm.is-alive i:nth-child(3){animation:app53CharmHeart 3.2s ease .4s both}
@keyframes app53Charm{
  0%{opacity:0;transform:translateY(6px)}
  15%,72%{opacity:.58}
  100%{opacity:0;transform:translateY(-8px)}
}
@keyframes app53CharmHeart{
  0%{transform:translateY(8px) scale(.6) rotate(-8deg)}
  45%{transform:translateY(-4px) scale(1.06) rotate(7deg)}
  100%{transform:translateY(-13px) scale(.9) rotate(12deg)}
}
@keyframes app53CharmStar{
  0%{transform:scale(.35) rotate(0)}
  50%{transform:scale(1.15) rotate(40deg)}
  100%{transform:scale(.8) rotate(90deg)}
}
.app53-click-heart{
  position:fixed;
  z-index:1800;
  pointer-events:none;
  color:#c77f99;
  font:700 .9rem Georgia,serif;
  animation:app53ClickHeart .86s ease-out forwards;
}
@keyframes app53ClickHeart{
  0%{
    opacity:0;
    transform:translate(-50%,-50%) scale(.5) rotate(0);
  }
  18%{opacity:.9}
  100%{
    opacity:0;
    transform:translate(calc(-50% + var(--hx)),calc(-50% + var(--hy))) scale(1.15) rotate(var(--hr));
  }
}

/* Tiny decorative shine on cards, only on hover-capable devices */
@media(hover:hover) and (pointer:fine){
  .memory-main,
  .idea-panel,
  .real-book,
  .wish-card,
  .book30-entry{
    position:relative;
    overflow:hidden;
  }
  .memory-main::before,
  .idea-panel::before,
  .real-book::before,
  .wish-card::before,
  .book30-entry::before{
    content:"";
    position:absolute;
    z-index:1;
    top:-25%;
    left:-55%;
    width:36%;
    height:150%;
    pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);
    transform:rotate(13deg);
    transition:left .62s ease;
  }
  .memory-main:hover::before,
  .idea-panel:hover::before,
  .real-book:hover::before,
  .wish-card:hover::before,
  .book30-entry:hover::before{
    left:120%;
  }
}

@media(prefers-reduced-motion:reduce){
  .app53-romance-layer,
  .app53-section-charm,
  .app53-click-heart{
    display:none!important;
  }
}


/* =========================================================
   V54 — TODAY FIX + YEAR VIEW + SEMANTIC DECORATIONS
   ========================================================= */

/* Today: no dark disc behind the number. */
.calendar50-main .calendar28-day.is-today .calendar28-day-head>span{
  width:26px!important;
  height:26px!important;
  display:grid!important;
  place-items:center!important;
  margin:-3px 0 0 -3px!important;
  border:1px solid rgba(181,103,130,.55)!important;
  border-radius:9px!important;
  color:#8d536b!important;
  background:#fff7fa!important;
  box-shadow:0 5px 14px rgba(181,103,130,.08)!important;
}
.calendar50-main .calendar28-day.is-today::after{
  top:7px!important;
  right:7px!important;
  width:5px!important;
  height:5px!important;
  background:#b56782!important;
  box-shadow:0 0 0 3px rgba(181,103,130,.09)!important;
}
@media(max-width:699px){
  .calendar50-main .calendar28-day.is-today .calendar28-day-head>span{
    width:21px!important;
    height:21px!important;
    margin:-2px 0 0 -2px!important;
    border-radius:7px!important;
  }
}

/* Clear today indication in week / agenda. */
.calendar28-week-row.is-today{
  border-color:rgba(181,103,130,.34)!important;
  box-shadow:0 8px 24px rgba(181,103,130,.08)!important;
}
.calendar28-week-row.is-today .calendar28-week-date{
  background:linear-gradient(180deg,#f7e7ec,#f2e5e5)!important;
}
.calendar28-week-date em,
.calendar28-agenda-date em{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:20px;
  margin-top:5px;
  padding:0 6px;
  border-radius:999px;
  color:#975b72;
  background:#f8e4eb;
  font-size:.45rem;
  font-style:normal;
  font-weight:900;
  letter-spacing:.02em;
}
.calendar28-agenda-day.is-today{
  border-color:rgba(181,103,130,.30)!important;
  box-shadow:0 8px 24px rgba(181,103,130,.07)!important;
}
.calendar28-agenda-day.is-today .calendar28-agenda-date{
  background:linear-gradient(180deg,#f7e7ec,#eee1e2)!important;
}

/* Year view */
.calendar50-shell.is-year-mode .calendar50-body{
  grid-template-columns:minmax(0,1fr)!important;
}
.calendar50-shell.is-year-mode .calendar50-details{
  display:none!important;
}
.calendar28-year-board{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.calendar28-year-month{
  min-width:0;
  padding:11px;
  border:1px solid rgba(74,50,63,.08);
  border-radius:16px;
  background:#fffaf7;
  box-shadow:0 10px 24px rgba(58,36,49,.045);
}
.calendar28-year-month>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.calendar28-year-month>header button{
  padding:0;
  border:0;
  color:#503e48;
  background:transparent;
  cursor:pointer;
  font:600 .92rem/1 Georgia,serif;
  text-transform:capitalize;
}
.calendar28-year-month>header small{
  min-width:26px;
  height:24px;
  display:grid;
  place-items:center;
  padding:0 6px;
  border-radius:999px;
  color:#8b6071;
  background:#f3e5e9;
  font-size:.50rem;
  font-weight:900;
}
.calendar28-year-weekdays,
.calendar28-year-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:3px;
}
.calendar28-year-weekdays span{
  padding:3px 0;
  color:#9a8991;
  text-align:center;
  font-size:.44rem;
  font-weight:900;
}
.calendar28-year-empty{
  aspect-ratio:1;
}
.calendar28-year-day{
  position:relative;
  aspect-ratio:1;
  min-width:0;
  display:grid;
  place-items:center;
  padding:0;
  overflow:hidden;
  border:1px solid transparent;
  border-radius:8px;
  color:#62535b;
  background:transparent;
  cursor:pointer;
}
.calendar28-year-day:hover{
  border-color:rgba(174,99,128,.16);
  background:#fbf0f3;
}
.calendar28-year-day b{
  font-size:.52rem;
  font-weight:800;
}
.calendar28-year-day>span{
  position:absolute;
  left:50%;
  bottom:2px;
  display:flex;
  gap:1px;
  transform:translateX(-50%);
}
.calendar28-year-day>span i{
  width:3px;
  height:3px;
  border-radius:50%;
  background:#a87588;
}
.calendar28-year-day>span i[data-group="couple"]{background:#a75d7c}
.calendar28-year-day>span i[data-group="custody"]{background:#568066}
.calendar28-year-day>span i[data-group="work"]{background:#695b82}
.calendar28-year-day>span i[data-group="important"]{background:#a07a3f}
.calendar28-year-day>span i[data-group="holiday"]{background:#95536b}
.calendar28-year-day>span i[data-group="organization"]{background:#758c7b}
.calendar28-year-day>span i[data-group="school"]{background:#5c7992}
.calendar28-year-day.is-today{
  color:#fff;
  background:linear-gradient(135deg,#b76d86,#8b739d);
  box-shadow:0 5px 13px rgba(127,82,105,.18);
}
.calendar28-year-day.is-selected:not(.is-today){
  border-color:rgba(181,103,130,.36);
  background:#fff4f7;
}
.calendar50-actions .calendar28-switcher{
  grid-template-columns:repeat(4,1fr)!important;
}
@media(max-width:1099px){
  .calendar28-year-board{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:699px){
  .calendar28-year-board{
    grid-template-columns:1fr;
    gap:8px;
  }
  .calendar28-year-month{
    padding:10px;
  }
  .calendar28-year-day b{
    font-size:.58rem;
  }
}

/* Story action menu restored and deliberately separated from Gérer. */
.memory-main__actions{
  top:auto!important;
  right:12px!important;
  bottom:12px!important;
  z-index:75!important;
}
.memory-main__actions .module-action-trigger{
  width:38px!important;
  min-width:38px!important;
  height:34px!important;
  min-height:34px!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  background:rgba(34,25,34,.60)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.18)!important;
  opacity:1!important;
}
.memory-main__actions .module-action-trigger::after{
  content:"Modifier";
  position:absolute;
  right:44px;
  top:50%;
  padding:5px 7px;
  border-radius:8px;
  color:#fff;
  background:rgba(32,24,31,.68);
  font-size:.46rem;
  font-weight:850;
  opacity:0;
  pointer-events:none;
  transform:translateY(-50%) translateX(4px);
  transition:.16s ease;
  white-space:nowrap;
}
@media(hover:hover){
  .memory-main__actions .module-action-trigger:hover::after{
    opacity:.9;
    transform:translateY(-50%) translateX(0);
  }
}
@media(max-width:699px){
  .memory-main__actions{
    right:9px!important;
    bottom:9px!important;
  }
}

/* Integrated decorative images: faded corner washes, never separate banners. */
.story-section::after,
.together-section::after,
.books-section::after,
.envies-section::after,
.book30-section::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  width:min(46vw,640px);
  height:min(58vh,620px);
  opacity:.12;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:saturate(.92) contrast(.98);
  -webkit-mask-image:radial-gradient(ellipse at center,black 18%,rgba(0,0,0,.78) 42%,transparent 76%);
  mask-image:radial-gradient(ellipse at center,black 18%,rgba(0,0,0,.78) 42%,transparent 76%);
}
.story-section::after{
  right:-12vw; bottom:-6vh;
  background-image:url("../images/painting-reunion.webp");
}
.together-section::after{
  left:-13vw; top:20vh;
  background-image:url("../images/painting-ideas.webp");
}
.books-section::after{
  right:-12vw; top:16vh;
  background-image:url("../images/painting-reading.webp");
}
.envies-section::after{
  left:-12vw; bottom:3vh;
  background-image:url("../images/painting-gifts.webp");
  opacity:.10;
}
.book30-section::after{
  right:-11vw; bottom:0;
  background-image:url("../images/painting-book-us.webp");
}
.story-section>*,
.together-section>*,
.books-section>*,
.envies-section>*,
.book30-section>*{
  position:relative;
  z-index:1;
}

/* Purposeful animated "objects" attached to precise sections. */
.app54-scene-charm{
  position:absolute;
  z-index:5;
  width:120px;
  height:90px;
  pointer-events:none;
  opacity:.56;
}
.app54-scene-charm span,
.app54-scene-charm i,
.app54-scene-charm b{
  position:absolute;
  font-style:normal;
  font-weight:700;
}
.app54-scene-charm i{color:#c47b97}
.app54-scene-charm b{color:#9a86b6}

.app54-scene-charm--story{
  right:5vw;
  top:19vh;
}
.app54-envelope{
  left:14px;
  top:27px;
  color:#a66580;
  font-size:1.28rem;
  animation:app54Envelope 6.8s ease-in-out infinite;
  filter:drop-shadow(0 6px 10px rgba(113,67,88,.12));
}
.app54-scene-charm--story i{
  left:69px; top:14px;
  animation:app54TinyHeart 4.6s ease-in-out infinite;
}
.app54-scene-charm--story b{
  right:7px; bottom:15px;
  animation:app54StarBlink 3.2s ease-in-out infinite;
}
@keyframes app54Envelope{
  0%,100%{transform:translate(0,8px) rotate(-6deg)}
  48%{transform:translate(42px,-13px) rotate(7deg)}
}
@keyframes app54TinyHeart{
  0%,100%{transform:translateY(8px) scale(.72);opacity:.25}
  48%{transform:translateY(-9px) scale(1.1);opacity:.76}
}
@keyframes app54StarBlink{
  0%,100%{transform:scale(.55) rotate(0);opacity:.22}
  50%{transform:scale(1.05) rotate(55deg);opacity:.72}
}

.app54-scene-charm--together{
  left:4vw;
  bottom:14vh;
}
.app54-train{
  left:5px; top:35px;
  color:#b47c62;
  font-size:1.12rem;
  animation:app54TrainTrip 7.5s ease-in-out infinite;
}
.app54-scene-charm--together i{
  left:77px; top:17px;
  animation:app54TinyHeart 4.8s ease-in-out infinite .8s;
}
.app54-scene-charm--together b{
  left:20px; bottom:9px;
  color:rgba(224,184,159,.65);
  letter-spacing:.28em;
}
@keyframes app54TrainTrip{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(54px)}
}

.app54-scene-charm--books{
  right:5vw;
  top:24vh;
}
.app54-scene-charm--books span{
  left:12px; top:18px;
  color:#9d6f7f;
  font-size:1.5rem;
  animation:app54Leaf 6s ease-in-out infinite;
}
.app54-scene-charm--books i{
  right:18px; top:9px;
  animation:app54StarBlink 3.5s ease-in-out infinite .3s;
}
.app54-scene-charm--books b{
  right:8px; bottom:13px;
  color:#bb8b6a;
  font-size:1rem;
  animation:app54Quill 5.2s ease-in-out infinite;
}
@keyframes app54Leaf{
  0%,100%{transform:rotate(-7deg) translateY(4px)}
  50%{transform:rotate(8deg) translateY(-8px)}
}
@keyframes app54Quill{
  0%,100%{transform:translate(0,0) rotate(-8deg)}
  50%{transform:translate(-7px,-4px) rotate(5deg)}
}

.app54-scene-charm--gift{
  right:5vw;
  bottom:18vh;
}
.app54-scene-charm--gift span{
  left:20px; top:18px;
  color:#e0b3c1;
  font-size:1.55rem;
  animation:app54Bow 4.8s ease-in-out infinite;
}
.app54-scene-charm--gift i{
  right:17px; top:12px;
  color:#e8b9c9;
  animation:app54TinyHeart 4.4s ease-in-out infinite;
}
.app54-scene-charm--gift b{
  right:9px; bottom:12px;
  color:#c4afd8;
  animation:app54StarBlink 3s ease-in-out infinite;
}
@keyframes app54Bow{
  0%,100%{transform:rotate(-5deg) scale(.96)}
  50%{transform:rotate(6deg) scale(1.05)}
}

.app54-scene-charm--bookus{
  left:4vw;
  top:22vh;
}
.app54-scene-charm--bookus span{
  left:13px; top:24px;
  color:#996a7d;
  font-size:1.38rem;
  animation:app54Pen 6.2s ease-in-out infinite;
}
.app54-scene-charm--bookus i{
  left:72px; top:8px;
  animation:app54TinyHeart 4.2s ease-in-out infinite .6s;
}
.app54-scene-charm--bookus b{
  right:6px; bottom:12px;
  animation:app54StarBlink 3.3s ease-in-out infinite .2s;
}
@keyframes app54Pen{
  0%,100%{transform:translate(0,4px) rotate(-12deg)}
  50%{transform:translate(22px,-8px) rotate(3deg)}
}

@media(max-width:699px){
  .app54-scene-charm{
    width:82px;
    height:64px;
    opacity:.36;
  }
  .app54-scene-charm--story{right:1vw;top:16vh}
  .app54-scene-charm--together{left:1vw;bottom:12vh}
  .app54-scene-charm--books{right:1vw;top:20vh}
  .app54-scene-charm--gift{right:1vw;bottom:14vh}
  .app54-scene-charm--bookus{left:1vw;top:18vh}
}
@media(prefers-reduced-motion:reduce){
  .app54-scene-charm *{
    animation:none!important;
  }
}


/* =========================================================
   V55 — MOIS MOBILE : JOURS ENSEMBLE PLUS VISIBLES
   ========================================================= */

/* Couleur travail Leonor plus distincte de Pierre → Leonor. */
.cal28-work,
.cal28-custom-work{
  background:#e2ecf7!important;
  color:#486a88!important;
}

/* Les jours "Ensemble" ont aussi une teinte de case complète, utile surtout sur téléphone. */
.calendar28-day.is-couple-day{
  border-color:rgba(168,104,128,.14)!important;
}
.calendar28-day.is-couple-day .calendar28-day-head{
  position:relative;
}
.calendar28-day.is-couple-day::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:1;
}
.calendar28-day.is-couple-pierre::before{
  background:
    linear-gradient(180deg,rgba(233,228,248,.95),rgba(245,241,250,.90) 44%,rgba(255,252,255,.84));
}
.calendar28-day.is-couple-leonor::before{
  background:
    linear-gradient(180deg,rgba(251,234,226,.95),rgba(255,244,238,.91) 44%,rgba(255,252,250,.84));
}
.calendar28-day.is-couple-custom::before{
  background:
    linear-gradient(180deg,rgba(245,230,238,.95),rgba(252,245,248,.90) 44%,rgba(255,252,254,.84));
}
.calendar28-day.is-couple-day>*{
  position:relative;
  z-index:1;
}
.calendar28-day.is-couple-pierre{
  box-shadow:inset 0 0 0 1px rgba(110,96,149,.14);
}
.calendar28-day.is-couple-leonor{
  box-shadow:inset 0 0 0 1px rgba(169,96,75,.14);
}
.calendar28-day.is-couple-custom{
  box-shadow:inset 0 0 0 1px rgba(159,92,125,.14);
}

/* Sur téléphone, la teinte est un peu plus marquée pour repérer vite les jours ensemble. */
@media(max-width:699px){
  .calendar28-day.is-couple-pierre::before{
    background:
      linear-gradient(180deg,rgba(228,221,247,.98),rgba(242,237,251,.96) 48%,rgba(255,251,255,.90));
  }
  .calendar28-day.is-couple-leonor::before{
    background:
      linear-gradient(180deg,rgba(250,228,219,.98),rgba(255,240,234,.96) 48%,rgba(255,250,247,.90));
  }
  .calendar28-day.is-couple-custom::before{
    background:
      linear-gradient(180deg,rgba(244,225,235,.98),rgba(250,241,246,.96) 48%,rgba(255,251,253,.90));
  }
  .calendar28-day.is-couple-day .calendar28-day-head>span{
    font-weight:900!important;
  }
}

/* Si la date du jour tombe aussi sur un jour Ensemble, on garde la lisibilité. */
.calendar28-day.is-couple-day.is-today::before{
  opacity:.93;
}


/* =========================================================
   V56 — HEADER CLICK FIX + DÉCORS ANIMÉS PLUS VISIBLES
   ========================================================= */

/* V38 legacy made .nav29 pointer-events:none. New header controls need explicit re-enable. */
.app-v50 .app53-topbar{
  pointer-events:auto!important;
}
.app53-brand,
.app53-lock,
.app53-context{
  pointer-events:auto!important;
}
.app53-brand{
  position:relative;
  z-index:4;
  cursor:pointer;
}
.app53-lock{
  position:relative;
  z-index:4;
  cursor:pointer;
}
.app53-brand:focus-visible,
.app53-lock:focus-visible{
  outline:2px solid rgba(190,112,143,.55)!important;
  outline-offset:3px!important;
}

/* Logo gets a subtle living glow so it feels intentional, not flat. */
.app53-emblem::after{
  content:"";
  position:absolute;
  inset:7px;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(205,132,160,.24),transparent 68%);
  filter:blur(7px);
  animation:app56LogoGlow 4.6s ease-in-out infinite;
}
@keyframes app56LogoGlow{
  0%,100%{opacity:.35;transform:scale(.90)}
  50%{opacity:.72;transform:scale(1.08)}
}

/* Global floating symbols are now actually noticeable, but remain behind content. */
.app53-romance-layer{
  z-index:1!important;
}
.app53-float{
  text-shadow:0 3px 12px rgba(178,104,134,.15);
}
.app-v50 main,
.app-v50 .app53-topbar,
.app-v50 .mobile29{
  position:relative;
  z-index:2;
}

/* =========================================================
   SMALL PURPOSEFUL ANIMATED OBJECTS
   ========================================================= */

.app54-scene-charm{
  opacity:.82!important;
  filter:drop-shadow(0 8px 18px rgba(64,39,54,.10));
}

/* Flying love letter */
.app56-love-letter{
  width:154px!important;
  height:94px!important;
}
.app56-envelope{
  position:absolute;
  left:6px;
  top:30px;
  width:42px;
  height:29px;
  border:1px solid rgba(151,91,116,.30);
  border-radius:7px;
  background:linear-gradient(145deg,#fff7f4,#f2e3e7);
  box-shadow:0 8px 18px rgba(95,55,75,.10);
  animation:app56LetterFlight 7s ease-in-out infinite;
}
.app56-envelope::before,
.app56-envelope::after{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  height:1px;
  top:12px;
  background:rgba(159,96,122,.26);
  transform-origin:center;
}
.app56-envelope::before{transform:rotate(29deg)}
.app56-envelope::after{transform:rotate(-29deg)}
.app56-envelope>b{
  position:absolute;
  left:50%;
  top:50%;
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#b96d88;
  font-size:.48rem;
  transform:translate(-50%,-22%);
}
.app56-trail{
  position:absolute;
  inset:0;
}
.app56-trail i{
  position:absolute;
  color:#bd7994;
  font-style:normal;
}
.app56-trail i:nth-child(1){left:72px;top:21px;animation:app56TrailHeart 4.5s ease-in-out infinite}
.app56-trail i:nth-child(2){left:104px;top:49px;color:#a990b9;animation:app56TrailHeart 4.9s ease-in-out infinite .5s}
.app56-trail i:nth-child(3){right:6px;top:12px;color:#b39cc5;animation:app56Spark 3.1s ease-in-out infinite}
@keyframes app56LetterFlight{
  0%,100%{transform:translate(0,7px) rotate(-5deg)}
  50%{transform:translate(54px,-11px) rotate(7deg)}
}
@keyframes app56TrailHeart{
  0%,100%{opacity:.18;transform:translateY(8px) scale(.75)}
  50%{opacity:.85;transform:translateY(-7px) scale(1.08)}
}
@keyframes app56Spark{
  0%,100%{opacity:.18;transform:scale(.55) rotate(0)}
  50%{opacity:.9;transform:scale(1.2) rotate(65deg)}
}

/* Tiny train on a rail */
.app56-mini-trip{
  width:160px!important;
  height:80px!important;
}
.app56-rail{
  position:absolute;
  left:4px;
  right:4px;
  bottom:19px;
  height:2px;
  border-radius:99px;
  background:
    repeating-linear-gradient(90deg,rgba(207,168,145,.48) 0 9px,transparent 9px 15px);
}
.app56-train{
  position:absolute;
  left:7px;
  bottom:22px;
  width:42px;
  height:24px;
  border-radius:7px 9px 5px 5px;
  background:linear-gradient(145deg,#d99b7d,#b86d68);
  box-shadow:0 7px 14px rgba(94,55,55,.12);
  animation:app56TrainTravel 8s ease-in-out infinite;
}
.app56-train::before{
  content:"";
  position:absolute;
  left:8px;
  top:5px;
  width:17px;
  height:8px;
  border-radius:3px;
  background:rgba(255,245,237,.75);
}
.app56-train>i{
  position:absolute;
  bottom:-5px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#5e4650;
}
.app56-train>i:nth-child(1){left:7px}
.app56-train>i:nth-child(2){right:7px}
.app56-train>b{
  position:absolute;
  right:-8px;
  top:-13px;
  color:#c67791;
  font-size:.56rem;
  animation:app56SmokeHeart 2.8s ease-out infinite;
}
.app56-trip-heart{
  position:absolute;
  right:10px;
  top:3px;
  color:#c77d98;
  animation:app56TrailHeart 4.4s ease-in-out infinite .6s;
}
@keyframes app56TrainTravel{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(92px)}
}
@keyframes app56SmokeHeart{
  0%{opacity:0;transform:translate(0,6px) scale(.6)}
  35%{opacity:.9}
  100%{opacity:0;transform:translate(10px,-17px) scale(1.05)}
}

/* Botanical little drawing */
.app56-botanical{
  width:104px!important;
  height:112px!important;
}
.app56-stem{
  position:absolute;
  left:48px;
  top:18px;
  width:2px;
  height:70px;
  border-radius:99px;
  background:linear-gradient(#8ca08f,#718677);
  transform:rotate(12deg);
  transform-origin:bottom center;
  animation:app56StemSway 5.8s ease-in-out infinite;
}
.app56-leaf{
  position:absolute;
  width:24px;
  height:13px;
  border-radius:100% 0 100% 0;
  background:linear-gradient(135deg,#9fb0a1,#6f8a77);
  transform-origin:100% 50%;
}
.app56-leaf--1{left:26px;top:47px;transform:rotate(15deg);animation:app56LeafSway 4.8s ease-in-out infinite}
.app56-leaf--2{left:48px;top:68px;transform:rotate(194deg);animation:app56LeafSway 5.2s ease-in-out infinite .5s}
.app56-petal{
  position:absolute;
  left:57px;
  top:15px;
  color:#c7859b;
  animation:app56Spark 3.4s ease-in-out infinite;
}
@keyframes app56StemSway{
  0%,100%{transform:rotate(7deg)}
  50%{transform:rotate(17deg)}
}
@keyframes app56LeafSway{
  0%,100%{scale:.94}
  50%{scale:1.08}
}

/* Bow / ribbon */
.app56-ribbon{
  width:116px!important;
  height:96px!important;
}
.app56-bow{
  position:absolute;
  left:25px;
  top:30px;
  width:52px;
  height:26px;
  animation:app56BowPulse 4.5s ease-in-out infinite;
}
.app56-bow>i{
  position:absolute;
  top:1px;
  width:29px;
  height:22px;
  border:2px solid rgba(222,165,187,.80);
  background:rgba(215,142,171,.13);
}
.app56-bow>i:nth-child(1){
  left:-6px;
  border-radius:60% 38% 56% 40%;
  transform:rotate(-18deg);
}
.app56-bow>i:nth-child(2){
  right:-6px;
  border-radius:38% 60% 40% 56%;
  transform:rotate(18deg);
}
.app56-bow>b{
  position:absolute;
  left:50%;
  top:7px;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#c8839e;
  transform:translateX(-50%);
}
.app56-ribbon-heart{
  position:absolute;
  right:6px;
  top:10px;
  color:#e1aec0;
  animation:app56TrailHeart 4s ease-in-out infinite;
}
.app56-ribbon-star{
  position:absolute;
  left:11px;
  bottom:7px;
  color:#b5a0c7;
  animation:app56Spark 3.2s ease-in-out infinite .3s;
}
@keyframes app56BowPulse{
  0%,100%{transform:scale(.94) rotate(-2deg)}
  50%{transform:scale(1.06) rotate(3deg)}
}

/* Quill drawing a heart */
.app56-quill-scene{
  width:132px!important;
  height:94px!important;
}
.app56-quill{
  position:absolute;
  left:10px;
  top:23px;
  color:#986b7c;
  font-size:1.45rem;
  transform-origin:80% 80%;
  animation:app56QuillWrite 5.7s ease-in-out infinite;
}
.app56-ink-heart{
  position:absolute;
  right:22px;
  top:10px;
  color:#bd7993;
  animation:app56InkHeart 5.7s ease-in-out infinite;
}
.app56-ink-line{
  position:absolute;
  left:33px;
  right:7px;
  bottom:20px;
  height:18px;
  border-bottom:2px solid rgba(146,105,121,.40);
  border-radius:50%;
  transform:rotate(-5deg);
  clip-path:inset(0 100% 0 0);
  animation:app56InkLine 5.7s ease-in-out infinite;
}
@keyframes app56QuillWrite{
  0%,100%{transform:translate(0,5px) rotate(-14deg)}
  48%{transform:translate(45px,-2px) rotate(3deg)}
  72%{transform:translate(61px,-8px) rotate(8deg)}
}
@keyframes app56InkLine{
  0%,14%{clip-path:inset(0 100% 0 0);opacity:.15}
  58%{clip-path:inset(0 0 0 0);opacity:.7}
  100%{clip-path:inset(0 0 0 0);opacity:.18}
}
@keyframes app56InkHeart{
  0%,54%{opacity:0;transform:scale(.4)}
  72%{opacity:.85;transform:scale(1.08)}
  100%{opacity:.12;transform:scale(.9)}
}

/* Keep them visible without covering actual controls/text. */
.app54-scene-charm--story{right:2.5vw!important;top:16vh!important}
.app54-scene-charm--together{left:2.5vw!important;bottom:11vh!important}
.app54-scene-charm--books{right:2.5vw!important;top:20vh!important}
.app54-scene-charm--gift{right:2.5vw!important;bottom:14vh!important}
.app54-scene-charm--bookus{left:2.5vw!important;top:18vh!important}

@media(max-width:699px){
  .app54-scene-charm{
    opacity:.58!important;
    transform:scale(.82);
    transform-origin:center;
  }
  .app54-scene-charm--story{right:-8px!important;top:15vh!important}
  .app54-scene-charm--together{left:-14px!important;bottom:9vh!important}
  .app54-scene-charm--books{right:-10px!important;top:18vh!important}
  .app54-scene-charm--gift{right:-8px!important;bottom:12vh!important}
  .app54-scene-charm--bookus{left:-12px!important;top:17vh!important}
}

@media(prefers-reduced-motion:reduce){
  .app53-emblem::after,
  .app56-envelope,
  .app56-trail i,
  .app56-train,
  .app56-train b,
  .app56-trip-heart,
  .app56-stem,
  .app56-leaf,
  .app56-petal,
  .app56-bow,
  .app56-ribbon-heart,
  .app56-ribbon-star,
  .app56-quill,
  .app56-ink-heart,
  .app56-ink-line{
    animation:none!important;
  }
}


/* =========================================================
   V57 — PETITS RIENS VIVANT + REPÈRE "AUJOURD'HUI" AGENDA
   ========================================================= */

/* Fill the empty desktop space beside "Toucher l'étoile". */
.little-live-scene{
  position:relative;
  grid-column:2 / 4;
  min-height:255px;
  overflow:hidden;
  border:1px solid rgba(101,70,84,.09);
  border-radius:28px;
  background:
    linear-gradient(90deg,rgba(42,31,45,.70),rgba(53,40,56,.42) 42%,rgba(249,231,220,.18)),
    url("../images/painting-little-things.webp") center 58%/cover no-repeat;
  box-shadow:var(--shadow-soft);
  isolation:isolate;
}
.little-live-scene::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 75% 20%,rgba(255,225,190,.24),transparent 24%),
    linear-gradient(180deg,rgba(18,15,27,.05),rgba(20,16,28,.28));
}
.little-live-scene__wash{
  position:absolute;
  z-index:2;
  inset:auto -8% -42% 28%;
  height:82%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(213,143,168,.22),transparent 68%);
  filter:blur(15px);
  animation:littleLiveWash 7.5s ease-in-out infinite;
}
@keyframes littleLiveWash{
  0%,100%{transform:translateY(5px) scale(.92);opacity:.55}
  50%{transform:translateY(-7px) scale(1.08);opacity:.9}
}

/* A tiny moon/light source. */
.little-live-scene__moon{
  position:absolute;
  z-index:4;
  right:7.5%;
  top:18%;
  width:48px;
  height:48px;
  border-radius:50%;
  background:radial-gradient(circle at 37% 35%,#fff8e9,#efd1b4 52%,rgba(237,194,158,.22) 69%,transparent 71%);
  filter:drop-shadow(0 0 18px rgba(255,218,177,.32));
  animation:littleMoonFloat 6s ease-in-out infinite;
}
.little-live-scene__moon i{
  position:absolute;
  right:-7px;
  top:10px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:rgba(56,42,59,.65);
  box-shadow:-5px 2px 10px rgba(45,33,50,.14);
}
@keyframes littleMoonFloat{
  0%,100%{transform:translateY(2px)}
  50%{transform:translateY(-8px)}
}

/* CSS garden: actual small flowers rather than generic symbols. */
.little-live-scene__garden{
  position:absolute;
  z-index:5;
  left:4%;
  right:22%;
  bottom:0;
  height:118px;
  pointer-events:none;
}
.live-stem{
  position:absolute;
  bottom:-4px;
  width:2px;
  border-radius:99px;
  background:linear-gradient(#9bad9c,#667d6e);
  transform-origin:bottom center;
  opacity:.78;
}
.live-stem::after{
  content:"";
  position:absolute;
  width:17px;
  height:9px;
  border-radius:100% 0 100% 0;
  background:#839887;
}
.live-stem--1{left:19%;height:78px;transform:rotate(-7deg);animation:littleStem1 5.4s ease-in-out infinite}
.live-stem--1::after{left:-15px;top:31px;transform:rotate(18deg)}
.live-stem--2{left:42%;height:93px;transform:rotate(4deg);animation:littleStem2 6.2s ease-in-out infinite}
.live-stem--2::after{left:1px;top:42px;transform:rotate(176deg)}
.live-stem--3{left:66%;height:67px;transform:rotate(10deg);animation:littleStem1 5.8s ease-in-out infinite .7s}
.live-stem--3::after{left:-14px;top:29px;transform:rotate(20deg)}
@keyframes littleStem1{0%,100%{rotate:-2deg}50%{rotate:7deg}}
@keyframes littleStem2{0%,100%{rotate:4deg}50%{rotate:-5deg}}

.live-flower{
  position:absolute;
  z-index:2;
  width:35px;
  height:35px;
  animation:littleFlowerBreath 5s ease-in-out infinite;
}
.live-flower>i{
  position:absolute;
  left:50%;
  top:50%;
  width:17px;
  height:10px;
  border-radius:70% 30% 70% 30%;
  background:linear-gradient(135deg,#f2bdca,#c97f99);
  transform-origin:0 50%;
}
.live-flower>i:nth-child(1){transform:rotate(0deg) translateX(2px)}
.live-flower>i:nth-child(2){transform:rotate(90deg) translateX(2px)}
.live-flower>i:nth-child(3){transform:rotate(180deg) translateX(2px)}
.live-flower>i:nth-child(4){transform:rotate(270deg) translateX(2px)}
.live-flower>b{
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#e8c481;
  transform:translate(-50%,-50%);
  box-shadow:0 0 8px rgba(232,196,129,.35);
}
.live-flower--1{left:15%;bottom:66px;transform:rotate(-8deg);animation-delay:-1.2s}
.live-flower--2{left:38%;bottom:82px;scale:.82;animation-delay:-3s}
.live-flower--2>i{background:linear-gradient(135deg,#d9c6ed,#9d80b6)}
.live-flower--3{left:63%;bottom:55px;scale:.72;animation-delay:-.4s}
.live-flower--3>i{background:linear-gradient(135deg,#f7d2bd,#d98a72)}
@keyframes littleFlowerBreath{
  0%,100%{rotate:-2deg;scale:.96}
  50%{rotate:4deg;scale:1.06}
}

/* Fireflies move on distinct paths. */
.little-live-scene__fireflies{
  position:absolute;
  z-index:6;
  inset:0;
  pointer-events:none;
}
.little-live-scene__fireflies i{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#f4cf87;
  box-shadow:0 0 11px 3px rgba(244,207,135,.28);
  animation:littleFirefly 5.8s ease-in-out infinite;
}
.little-live-scene__fireflies i:nth-child(1){left:32%;top:23%;animation-delay:-1s}
.little-live-scene__fireflies i:nth-child(2){left:48%;top:35%;animation-delay:-3.6s;scale:.72}
.little-live-scene__fireflies i:nth-child(3){left:66%;top:18%;animation-delay:-2.1s;scale:.82}
.little-live-scene__fireflies i:nth-child(4){left:77%;top:57%;animation-delay:-4.4s;scale:.58}
.little-live-scene__fireflies i:nth-child(5){left:25%;top:59%;animation-delay:-.4s;scale:.68}
@keyframes littleFirefly{
  0%,100%{translate:0 7px;opacity:.22}
  32%{translate:12px -8px;opacity:.95}
  67%{translate:-7px -17px;opacity:.42}
}

/* One heart actually travels across the little refuge scene. */
.little-live-scene__heart-path{
  position:absolute;
  z-index:7;
  left:24%;
  right:22%;
  top:30%;
  height:44px;
  pointer-events:none;
}
.little-live-scene__heart-path::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(226,177,197,.20),transparent);
}
.little-live-scene__heart-path span{
  position:absolute;
  left:0;
  top:0;
  color:#f0b8cb;
  font:500 1rem Georgia,serif;
  filter:drop-shadow(0 3px 9px rgba(196,112,144,.26));
  animation:littleHeartJourney 8.5s ease-in-out infinite;
}
@keyframes littleHeartJourney{
  0%{left:0;top:22px;opacity:0;transform:rotate(-10deg) scale(.75)}
  12%{opacity:.85}
  48%{top:0;transform:rotate(7deg) scale(1.05)}
  88%{opacity:.8}
  100%{left:calc(100% - 16px);top:18px;opacity:0;transform:rotate(16deg) scale(.82)}
}

.little-live-scene__signature{
  position:absolute;
  z-index:8;
  right:6%;
  bottom:18%;
  display:grid;
  justify-items:center;
  gap:5px;
  color:#f9edf3;
  text-shadow:0 3px 14px rgba(23,15,27,.35);
}
.little-live-scene__signature small{
  font-size:.43rem;
  font-weight:900;
  letter-spacing:.14em;
  opacity:.68;
}
.little-live-scene__signature strong{
  font:600 1.45rem Georgia,serif;
}
.little-live-scene__signature strong i{
  color:#eab2c5;
  font-style:normal;
  font-size:.85rem;
  margin:0 3px;
}

/* Agenda: a visible "you are here" marker even when today has no event. */
.calendar28-agenda-now{
  position:relative;
  min-height:54px;
  display:grid;
  grid-template-columns:minmax(24px,1fr) auto auto minmax(24px,1fr);
  align-items:center;
  gap:9px;
  padding:6px 4px;
  cursor:pointer;
}
.calendar28-agenda-now>i{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,105,136,.44));
}
.calendar28-agenda-now>i:last-child{
  transform:scaleX(-1);
}
.calendar28-agenda-now>span{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border:1px solid rgba(184,105,136,.18);
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#c27692,#8f79aa);
  box-shadow:0 7px 18px rgba(129,81,104,.16);
  animation:agendaNowPulse 3.2s ease-in-out infinite;
}
.calendar28-agenda-now>div{
  min-width:105px;
  display:grid;
  gap:2px;
}
.calendar28-agenda-now strong{
  color:#975b73;
  font-size:.59rem;
  font-weight:900;
  text-align:center;
}
.calendar28-agenda-now small{
  color:#817079;
  font-size:.49rem;
  text-align:center;
  text-transform:capitalize;
}
@keyframes agendaNowPulse{
  0%,100%{transform:scale(.94);box-shadow:0 7px 18px rgba(129,81,104,.12)}
  50%{transform:scale(1.06);box-shadow:0 8px 24px rgba(129,81,104,.24)}
}
.calendar28-no-result--after-now{
  margin-top:4px!important;
}

/* Responsive placement of the living scene. */
@media(max-width:1099px){
  .little-live-scene{
    grid-column:auto;
    min-height:250px;
  }
}
@media(max-width:699px){
  .little-live-scene{
    min-height:220px;
    border-radius:23px;
  }
  .little-live-scene__signature{
    right:5%;
    bottom:13%;
  }
  .little-live-scene__moon{
    right:8%;
    top:14%;
    scale:.84;
  }
  .little-live-scene__garden{
    left:0;
    right:20%;
    scale:.86;
    transform-origin:left bottom;
  }
  .calendar28-agenda-now{
    grid-template-columns:minmax(12px,1fr) auto auto minmax(12px,1fr);
    gap:6px;
  }
  .calendar28-agenda-now>span{
    width:29px;
    height:29px;
  }
}

@media(prefers-reduced-motion:reduce){
  .little-live-scene__wash,
  .little-live-scene__moon,
  .live-stem,
  .live-flower,
  .little-live-scene__fireflies i,
  .little-live-scene__heart-path span,
  .calendar28-agenda-now>span{
    animation:none!important;
  }
}


/* =========================================================
   V58 — PROFILS PIERRE / LEONOR + SAUVEGARDE FUSIONNABLE
   ========================================================= */

.manage-profile-card{
  min-height:100%;
  display:grid;
  align-content:start;
  gap:14px;
  padding:18px;
  border:1px solid rgba(84,58,71,.10);
  border-radius:22px;
  background:
    radial-gradient(circle at 90% 0,rgba(188,112,142,.10),transparent 30%),
    linear-gradient(145deg,#fffaf7,#f6ece9);
  box-shadow:0 16px 38px rgba(48,30,41,.07);
}
.manage-profile-card>.manage-card-head>span{
  min-width:72px;
  min-height:31px;
  display:grid;
  place-items:center;
  padding:0 10px;
  border-radius:999px;
  color:#8f5870;
  background:#f4e2e8;
  font-size:.52rem;
  font-weight:900;
  letter-spacing:.08em;
}
.manage-profile-card>p{
  margin:0;
  color:#76646e;
  font-size:.68rem;
  line-height:1.62;
}
.manage-profile-switch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.manage-profile-switch>button{
  min-width:0;
  min-height:74px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:9px;
  border:1px solid rgba(87,59,73,.09);
  border-radius:16px;
  color:#56444f;
  background:rgba(255,255,255,.66);
  cursor:pointer;
  text-align:left;
}
.manage-profile-switch>button>span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(135deg,#b36b85,#84719d);
  font:800 .72rem Georgia,serif;
}
.manage-profile-switch>button[data-profile-id="leonor"]>span{
  background:linear-gradient(135deg,#cb806f,#b3667d);
}
.manage-profile-switch>button>div{
  min-width:0;
  display:grid;
  gap:3px;
}
.manage-profile-switch>button strong{
  color:#493943;
  font-size:.70rem;
}
.manage-profile-switch>button small{
  color:#89737e;
  font-size:.50rem;
  line-height:1.35;
}
.manage-profile-switch>button.is-active{
  border-color:rgba(172,98,126,.30);
  background:#fff9f7;
  box-shadow:
    inset 0 0 0 1px rgba(172,98,126,.09),
    0 10px 22px rgba(122,74,95,.08);
}
.manage-profile-switch>button.is-active::after{
  content:"Actif";
  justify-self:end;
  grid-column:2;
  padding:3px 7px;
  border-radius:999px;
  color:#965b72;
  background:#f4e2e8;
  font-size:.44rem;
  font-weight:900;
}
.manage-profile-status{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 11px;
  border-radius:14px;
  color:#735c68;
  background:rgba(255,255,255,.56);
}
.manage-profile-status i{
  color:#b56d86;
  font-style:normal;
}
.manage-profile-status span{
  font-size:.57rem;
  line-height:1.45;
}
.manage-item__profile{
  display:block;
  margin-top:4px;
  color:#9a7283!important;
  font-size:.49rem!important;
  font-weight:850;
}
@media(max-width:699px){
  .manage-profile-switch{
    grid-template-columns:1fr;
  }
}

/* Reunion routes: two nearby shades of the same romantic family. */
.cal28-together-pierre{
  background:#eadfea!important;
  color:#73576e!important;
}
.cal28-together-leonor{
  background:#f2dfe5!important;
  color:#8e596d!important;
}

/* Work stays clearly separate. */
.cal28-work,
.cal28-custom-work{
  background:#e1edf8!important;
  color:#496d8c!important;
}

.calendar28-day.is-couple-pierre::before{
  background:
    linear-gradient(180deg,rgba(235,224,236,.97),rgba(247,240,246,.94) 48%,rgba(255,252,255,.90))!important;
}
.calendar28-day.is-couple-leonor::before{
  background:
    linear-gradient(180deg,rgba(247,225,233,.97),rgba(253,241,246,.94) 48%,rgba(255,252,253,.90))!important;
}
.calendar28-day.is-couple-pierre{
  box-shadow:inset 0 0 0 1px rgba(115,87,110,.15)!important;
}
.calendar28-day.is-couple-leonor{
  box-shadow:inset 0 0 0 1px rgba(142,89,109,.15)!important;
}
@media(max-width:699px){
  .calendar28-day.is-couple-pierre::before{
    background:
      linear-gradient(180deg,rgba(231,217,234,.99),rgba(244,235,245,.97) 48%,rgba(255,251,255,.92))!important;
  }
  .calendar28-day.is-couple-leonor::before{
    background:
      linear-gradient(180deg,rgba(246,219,229,.99),rgba(252,236,243,.97) 48%,rgba(255,250,252,.92))!important;
  }
}


/* =========================================================
   V59 — REUNION + IDEAS SECTION POLISH
   Better "Quand est-ce qu'on se retrouve ?" composition
   and richer "À deux / idées" readability + card styling.
   ========================================================= */

/* ---------- Prochaines retrouvailles ---------- */
.reunion-quick-v17{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:
    linear-gradient(115deg,rgba(24,17,25,.92) 0%,rgba(34,22,31,.74) 34%,rgba(47,29,42,.58) 62%,rgba(34,22,31,.80) 100%),
    url("../images/painting-reunion.webp") center/cover no-repeat!important;
}
.reunion-quick-v17::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  background:
    radial-gradient(circle at 18% 18%,rgba(227,175,196,.12),transparent 24%),
    radial-gradient(circle at 76% 28%,rgba(239,194,122,.10),transparent 18%),
    radial-gradient(circle at 82% 82%,rgba(139,118,182,.14),transparent 26%)!important;
  pointer-events:none!important;
}
.reunion-quick__inner{
  position:relative!important;
  z-index:1!important;
  display:grid!important;
  grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr)!important;
  grid-template-areas:
    "intro card"
    "intro list"!important;
  gap:16px!important;
  align-items:stretch!important;
  width:min(1240px,100%)!important;
  margin:auto!important;
}
.reunion-quick__intro{
  grid-area:intro!important;
  align-self:stretch!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:14px!important;
  padding:24px 24px 22px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:30px!important;
  background:linear-gradient(160deg,rgba(37,25,39,.46),rgba(24,17,26,.24))!important;
  backdrop-filter:blur(10px)!important;
  box-shadow:0 24px 60px rgba(15,10,18,.16)!important;
}
.reunion-quick__intro .eyebrow{
  margin:0!important;
  color:#d9a8ba!important;
}
.reunion-quick__intro h2{
  margin:0!important;
  max-width:10.5ch!important;
  color:#fff8f5!important;
  font:500 clamp(2.7rem,5vw,5rem)/.89 Georgia,serif!important;
  letter-spacing:-.05em!important;
  text-shadow:0 10px 30px rgba(15,10,16,.32)!important;
}
.reunion-quick__intro h2 em{
  color:#efbfd0!important;
}
.reunion-quick__intro > p:not(.eyebrow){
  margin:0!important;
  max-width:30ch!important;
  color:#efe4ea!important;
  font-size:.96rem!important;
  line-height:1.7!important;
}
.big-event-mini{
  margin-top:2px!important;
  width:min(360px,100%)!important;
  grid-template-columns:42px 1fr!important;
  gap:12px!important;
  padding:12px 14px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.03))!important;
}
.big-event-mini__icon{
  width:42px!important;
  height:42px!important;
  color:#f0cd8f!important;
  background:rgba(232,196,127,.12)!important;
}
.big-event-mini small{
  color:#d3ad78!important;
  font-size:.48rem!important;
}
.big-event-mini strong{
  display:inline-block!important;
  margin-right:8px!important;
  color:#fff2cf!important;
  font-size:1.1rem!important;
}
.big-event-mini div>span{
  margin-left:0!important;
  color:#f0e5eb!important;
  font-size:.66rem!important;
}

.reunion-countdown-card{
  grid-area:card!important;
  min-height:0!important;
  padding:22px 24px!important;
  grid-template-columns:110px 1fr!important;
  gap:18px!important;
  align-items:center!important;
  border-radius:30px!important;
  background:
    linear-gradient(145deg,rgba(40,27,42,.76),rgba(30,21,33,.56))!important;
}
.reunion-countdown-card__orb{
  width:102px!important;
  height:102px!important;
  border-color:rgba(241,193,211,.22)!important;
  background:
    radial-gradient(circle at center,rgba(212,130,163,.22),rgba(103,75,110,.12) 62%,transparent 64%)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.03) inset,0 0 42px rgba(194,111,143,.10)!important;
}
.reunion-countdown-card__orb span{
  font-size:2.55rem!important;
}
.reunion-countdown-card__copy > small{
  color:#d7b37a!important;
  font-size:.5rem!important;
  letter-spacing:.16em!important;
}
.reunion-countdown-card__copy strong{
  margin:5px 0 6px!important;
  color:#fff9f6!important;
  font-size:clamp(1.6rem,2.1vw,2.2rem)!important;
  line-height:1.02!important;
}
.reunion-countdown-card__copy span{
  display:block!important;
  color:#eadde5!important;
  font-size:.76rem!important;
  line-height:1.5!important;
}
.reunion-countdown-card__pulse{
  width:172px!important;
  height:172px!important;
  left:-36px!important;
  border-color:rgba(232,178,196,.10)!important;
}

.reunion-upcoming-list{
  grid-area:list!important;
  position:relative!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  padding:52px 14px 14px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:30px!important;
  background:linear-gradient(145deg,rgba(33,24,35,.70),rgba(33,24,35,.48))!important;
  backdrop-filter:blur(10px)!important;
  box-shadow:0 18px 48px rgba(15,10,15,.14)!important;
}
.reunion-upcoming-list::before{
  content:"APRÈS ÇA"!important;
  position:absolute!important;
  left:16px!important;
  top:16px!important;
  height:26px!important;
  display:grid!important;
  place-items:center!important;
  padding:0 12px!important;
  border-radius:999px!important;
  color:#e8d7df!important;
  border:1px solid rgba(255,255,255,.08)!important;
  background:rgba(255,255,255,.05)!important;
  font-size:.52rem!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
}
.reunion-upcoming-item{
  min-height:92px!important;
  grid-template-columns:56px 1fr!important;
  gap:12px!important;
  padding:14px 14px!important;
  border-radius:18px!important;
  border:1px solid rgba(255,255,255,.08)!important;
  background:linear-gradient(150deg,rgba(255,255,255,.07),rgba(255,255,255,.03))!important;
}
.reunion-upcoming-item:hover{
  transform:translateY(-2px)!important;
  background:linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.05))!important;
}
.reunion-upcoming-item.is-next{
  border-color:rgba(239,193,211,.22)!important;
  box-shadow:0 0 0 1px rgba(239,193,211,.08) inset!important;
}
.reunion-upcoming-item__line{
  align-self:stretch!important;
  align-content:center!important;
  gap:6px!important;
}
.reunion-upcoming-item__line i{
  width:32px!important;
  height:6px!important;
  box-shadow:0 0 10px rgba(200,170,255,.34)!important;
}
.route-l .reunion-upcoming-item__line i{
  box-shadow:0 0 10px rgba(255,187,170,.34)!important;
}
.reunion-upcoming-item__line span{
  padding:4px 7px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.06)!important;
  color:#fff0f5!important;
  font-size:.48rem!important;
  letter-spacing:.04em!important;
}
.reunion-upcoming-item strong{
  color:#fff8f5!important;
  font-size:1.15rem!important;
  line-height:1.1!important;
}
.reunion-upcoming-item small{
  margin-top:4px!important;
  color:#eadce4!important;
  font-size:.64rem!important;
  line-height:1.45!important;
}

@media (max-width: 979px){
  .reunion-quick__inner{
    grid-template-columns:1fr!important;
    grid-template-areas:
      "intro"
      "card"
      "list"!important;
  }
  .reunion-quick__intro{
    max-width:none!important;
  }
  .reunion-upcoming-list{
    grid-template-columns:1fr!important;
  }
}
@media (max-width: 560px){
  .reunion-quick-v17{
    padding:64px 12px!important;
  }
  .reunion-quick__intro{
    padding:20px 18px 18px!important;
    border-radius:24px!important;
  }
  .reunion-quick__intro h2{
    font-size:clamp(2.45rem,12.3vw,3.5rem)!important;
  }
  .reunion-countdown-card{
    grid-template-columns:1fr!important;
    justify-items:start!important;
    padding:20px 18px!important;
    border-radius:24px!important;
  }
  .reunion-countdown-card__orb{
    width:96px!important;
    height:96px!important;
  }
  .reunion-upcoming-list{
    padding:48px 10px 10px!important;
    border-radius:24px!important;
  }
}

/* ---------- Section idées / À deux ---------- */
.together-section{
  position:relative!important;
  overflow:hidden!important;
  background:
    linear-gradient(180deg,rgba(31,22,34,.92) 0%,rgba(48,31,43,.93) 48%,rgba(38,26,38,.96) 100%)!important;
}
.together-section::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    linear-gradient(180deg,rgba(26,18,29,.38),rgba(26,18,29,.62)),
    url("../images/painting-ideas.webp") center/cover no-repeat!important;
  opacity:.52!important;
  pointer-events:none!important;
}
.together-section::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    radial-gradient(circle at 12% 18%,rgba(230,179,194,.15),transparent 20%),
    radial-gradient(circle at 82% 20%,rgba(238,201,126,.10),transparent 18%),
    radial-gradient(circle at 78% 78%,rgba(155,126,198,.10),transparent 22%)!important;
  pointer-events:none!important;
}
.together-section > *{
  position:relative!important;
  z-index:1!important;
}
.together-section .section-title{
  width:min(1260px,100%)!important;
  margin-inline:auto!important;
  margin-bottom:22px!important;
}
.together-section .section-title > div{
  max-width:720px!important;
  padding:18px 20px 18px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:26px!important;
  background:linear-gradient(160deg,rgba(34,23,36,.56),rgba(34,23,36,.18))!important;
  backdrop-filter:blur(10px)!important;
  box-shadow:0 20px 48px rgba(14,9,16,.15)!important;
}
.together-section .section-title h2{
  margin:0!important;
  color:#fff8f6!important;
  text-shadow:0 10px 28px rgba(10,7,12,.32)!important;
}
.together-section .section-title h2 em{
  color:#f1c0d1!important;
}
.together-section .section-title .eyebrow{
  color:#e2bb83!important;
}
.module-manage-row{
  width:min(1260px,100%)!important;
  margin:0 auto 14px!important;
}
.idea-stage{
  width:min(1260px,100%)!important;
  margin:auto!important;
  gap:14px!important;
}
.idea-panel{
  position:relative!important;
  overflow:hidden!important;
  min-height:280px!important;
  padding:20px 20px 18px!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:26px!important;
  background:
    linear-gradient(180deg,rgba(255,250,247,.96),rgba(247,238,236,.92))!important;
  box-shadow:
    0 22px 48px rgba(11,8,13,.16)!important,
    inset 0 1px 0 rgba(255,255,255,.35)!important;
}
.idea-panel::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    radial-gradient(circle at 102% 0,rgba(204,156,177,.14),transparent 28%),
    radial-gradient(circle at 0 100%,rgba(214,191,133,.12),transparent 26%),
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0))!important;
  pointer-events:none!important;
}
.idea-panel::after{
  content:""!important;
  position:absolute!important;
  right:-24px!important;
  top:-26px!important;
  width:120px!important;
  height:120px!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.34)!important;
  filter:blur(2px)!important;
  opacity:.48!important;
  pointer-events:none!important;
}
.idea-panel__top,
.idea-panel__body,
.idea-panel__actions,
.idea-panel__spark{
  position:relative!important;
  z-index:1!important;
}
.idea-panel__top{
  align-items:start!important;
}
.idea-panel__icon{
  width:44px!important;
  height:44px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:14px!important;
  background:linear-gradient(145deg,#fff7fb,#f2dfe7)!important;
  box-shadow:0 10px 18px rgba(73,45,58,.10)!important;
  font-size:1.35rem!important;
}
.idea-panel__number{
  color:#baa2ae!important;
  font:600 2rem/1 Georgia,serif!important;
}
.idea-panel__body{
  display:grid!important;
  gap:8px!important;
}
.idea-panel__rhythm{
  color:#926171!important;
  font-size:.58rem!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
}
.idea-panel__body h3{
  margin:0!important;
  color:#4b3641!important;
  font:500 clamp(1.7rem,2.1vw,2.3rem)/1.02 Georgia,serif!important;
  letter-spacing:-.035em!important;
}
.idea-panel__body p{
  margin:0!important;
  color:#66525c!important;
  font-size:.94rem!important;
  line-height:1.68!important;
}
.idea-panel__spark{
  position:absolute!important;
  right:18px!important;
  bottom:14px!important;
  color:#d7b37a!important;
  opacity:.85!important;
}
.idea-panel__actions{
  margin-top:14px!important;
}
.idea-panel__actions .module-action-root > button,
.idea-panel__actions button{
  background:rgba(255,255,255,.72)!important;
}

.idea-panel--letter{
  background:linear-gradient(180deg,rgba(255,248,250,.97),rgba(248,236,239,.93))!important;
}
.idea-panel--travel{
  background:linear-gradient(180deg,rgba(249,250,255,.97),rgba(236,241,249,.93))!important;
}
.idea-panel--game{
  background:linear-gradient(180deg,rgba(250,248,255,.97),rgba(239,234,249,.93))!important;
}
.idea-panel--movie{
  background:linear-gradient(180deg,rgba(255,249,247,.97),rgba(248,237,234,.93))!important;
}
.idea-panel--bivouac{
  background:linear-gradient(180deg,rgba(248,251,248,.97),rgba(236,243,238,.93))!important;
}
.idea-panel--book{
  background:linear-gradient(180deg,rgba(254,250,244,.97),rgba(247,238,228,.93))!important;
}

.idea-panel--letter .idea-panel__icon{background:linear-gradient(145deg,#fff4f7,#f2dbe4)!important}
.idea-panel--travel .idea-panel__icon{background:linear-gradient(145deg,#f3f8ff,#dde9f6)!important}
.idea-panel--game .idea-panel__icon{background:linear-gradient(145deg,#f8f3ff,#e7def7)!important}
.idea-panel--movie .idea-panel__icon{background:linear-gradient(145deg,#fff6f2,#f4e0da)!important}
.idea-panel--bivouac .idea-panel__icon{background:linear-gradient(145deg,#f3fbf4,#dcefe2)!important}
.idea-panel--book .idea-panel__icon{background:linear-gradient(145deg,#fff8f0,#efe1cd)!important}

.idea-panel--add{
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  border-style:dashed!important;
  border-color:rgba(255,255,255,.16)!important;
  background:linear-gradient(180deg,rgba(255,248,244,.86),rgba(247,235,236,.82))!important;
}
.idea-panel--add .idea-panel__icon{
  background:linear-gradient(145deg,#f7e5ea,#ecd3dc)!important;
  color:#8c5d70!important;
}
.idea-panel--add .idea-panel__body p{
  color:#775e68!important;
}
@media (min-width: 980px){
  .idea-stage{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media (max-width: 979px){
  .together-section .section-title > div{
    max-width:none!important;
  }
}
@media (max-width: 560px){
  .together-section .section-title > div{
    padding:16px 16px 15px!important;
    border-radius:22px!important;
  }
  .idea-panel{
    min-height:0!important;
    border-radius:22px!important;
    padding:18px 16px 16px!important;
  }
  .idea-panel__body h3{
    font-size:1.95rem!important;
  }
}


/* =========================================================
   V60 — PROFIL AU DÉMARRAGE + HEADER REFINI + PETITS RIENS
   ========================================================= */

:root{
  --app60-header-bg:rgba(255,252,252,.76);
  --app60-header-line:rgba(165,118,138,.17);
  --app60-header-shadow:0 22px 60px rgba(62,41,56,.12);
}

.app53-topbar{
  position:sticky;
  top:max(8px,env(safe-area-inset-top));
  z-index:120;
  width:min(calc(100% - 22px), 1580px);
  margin:10px auto 0;
  padding:10px 12px;
  border-radius:28px;
  border:1px solid var(--app60-header-line);
  background:linear-gradient(180deg,rgba(255,255,255,.90),var(--app60-header-bg));
  box-shadow:var(--app60-header-shadow);
  backdrop-filter:blur(18px) saturate(1.08);
  -webkit-backdrop-filter:blur(18px) saturate(1.08);
  overflow:hidden;
}
.app53-topbar::before{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 8% 18%,rgba(241,205,219,.38),transparent 20%),
             radial-gradient(circle at 88% 18%,rgba(205,191,236,.22),transparent 18%),
             linear-gradient(90deg,rgba(216,154,178,.55),rgba(145,113,167,.18),rgba(227,183,160,.4));
  height:2px; top:0; bottom:auto;
}
.app53-brand{
  position:relative;
  gap:12px;
  padding:8px 12px 8px 8px;
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.64),rgba(255,246,249,.36));
  border:1px solid rgba(170,125,145,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
}
.app53-emblem{
  position:relative;
  width:60px;
  height:60px;
  border-radius:22px;
  display:grid; place-items:center;
  background:radial-gradient(circle at 35% 35%,rgba(255,247,251,.96),rgba(243,224,232,.88) 58%,rgba(217,202,236,.7));
  box-shadow:0 12px 24px rgba(101,71,86,.12), inset 0 1px 0 rgba(255,255,255,.92);
}
.app53-emblem::after{
  content:""; position:absolute; inset:6px; border-radius:18px; pointer-events:none;
  border:1px dashed rgba(192,143,163,.35);
  animation:app60HaloSpin 18s linear infinite;
}
.app53-emblem svg{width:46px;height:46px;filter:drop-shadow(0 4px 9px rgba(149,97,127,.16));}
.app53-emblem-letters{
  position:absolute; right:-4px; bottom:-6px;
  display:flex; align-items:center; gap:2px; padding:3px 8px;
  border-radius:999px; font-size:.58rem; font-weight:800; letter-spacing:.14em;
  color:#6f4659; background:rgba(255,250,252,.9); border:1px solid rgba(179,139,157,.24);
  box-shadow:0 8px 16px rgba(79,55,70,.12);
}
.app53-emblem-letters i{font-style:normal;color:#c9839d;}
.app53-brand-copy small{letter-spacing:.18em;color:#98687e;}
.app53-brand-copy strong{font-size:1.48rem;line-height:1;color:#523746;}
@keyframes app60HaloSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

.app53-context{
  padding:10px 14px; border-radius:20px; background:rgba(255,255,255,.58);
  border:1px solid rgba(173,133,151,.12);
}

.app60-profile-chip{
  display:flex; align-items:center; gap:10px;
  margin-left:auto; padding:7px 12px 7px 8px;
  border:none; cursor:pointer;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,247,250,.95),rgba(243,231,245,.88));
  box-shadow:0 10px 22px rgba(83,58,72,.10), inset 0 1px 0 rgba(255,255,255,.92);
  border:1px solid rgba(177,134,157,.18);
  color:#503544;
  transition:transform .24s ease, box-shadow .24s ease, background .24s ease;
}
.app60-profile-chip:hover,.app60-profile-chip:focus-visible{transform:translateY(-1px);box-shadow:0 14px 28px rgba(83,58,72,.14), inset 0 1px 0 rgba(255,255,255,.96);}
.app60-profile-chip__initial{
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center; flex:none;
  background:linear-gradient(135deg,#e8bfd0,#bfa7d9); color:#5b3d4d; font-weight:800; font-size:.95rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.app60-profile-chip__copy{display:grid;text-align:left;line-height:1.05}
.app60-profile-chip__copy small{font-size:.48rem;letter-spacing:.18em;color:#9e6e83;font-weight:800}
.app60-profile-chip__copy strong{font-size:.86rem;color:#553846}

.app53-lock{margin-left:0;}

.hero-v7{overflow:hidden;}
.app60-hero-charms{position:absolute; inset:0; pointer-events:none; z-index:2;}
.app60-hero-charms__item{position:absolute; color:rgba(255,234,242,.75); text-shadow:0 6px 18px rgba(72,38,58,.16); animation:app60FloatCharm 9s ease-in-out infinite;}
.app60-hero-charms__item--1{left:8%; top:18%; font-size:1.1rem; animation-delay:-1.5s}
.app60-hero-charms__item--2{right:14%; top:22%; font-size:.9rem; animation-delay:-4s}
.app60-hero-charms__item--3{left:18%; bottom:20%; font-size:1.15rem; animation-delay:-2.4s}
.app60-hero-charms__item--4{right:26%; bottom:18%; font-size:1rem; animation-delay:-5.5s}
.app60-hero-charms__item--5{right:7%; top:45%; font-size:1rem; animation-delay:-3.3s}
@keyframes app60FloatCharm{0%,100%{transform:translateY(0) rotate(-4deg);opacity:.28}50%{transform:translateY(-12px) rotate(6deg);opacity:.88}}

.section-title--little{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;}
.section-title__soft-note{max-width:630px;margin-top:12px;color:#725765;font-size:1rem;line-height:1.6;}
.section-title__petals{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:rgba(255,251,253,.78);border:1px solid rgba(185,141,161,.14);box-shadow:0 14px 26px rgba(90,62,77,.08);}
.section-title__petals span{color:#c6889f;font-size:1rem;animation:app60FloatCharm 6s ease-in-out infinite;}
.section-title__petals span:nth-child(2){animation-delay:-2s;color:#b996ca;}
.section-title__petals span:nth-child(3){animation-delay:-4.2s;color:#d99a82;}

.wish-card--v8{position:relative;background:linear-gradient(135deg,#4a4060,#8f5d7d 58%,#b67f86);}
.wish-card--v8::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 20%,rgba(255,226,213,.26),transparent 24%), radial-gradient(circle at 82% 76%,rgba(252,215,236,.18),transparent 24%);}
.wish-charms{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;position:relative;z-index:2;}
.wish-charms span{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);font-size:.76rem;letter-spacing:.03em;color:#f8edf4;}
.wish-charms span i{font-style:normal;color:#ffd8e7;}

.sky-card,.journey-card,.flip-note,.wish-card,.little-live-scene{transition:transform .24s ease, box-shadow .24s ease;}
.sky-card:hover,.journey-card:hover,.flip-note:hover,.wish-card:hover,.little-live-scene:hover{transform:translateY(-3px);box-shadow:0 24px 44px rgba(70,44,59,.16);}

.little-live-scene{background:linear-gradient(90deg,rgba(42,31,45,.78),rgba(53,40,56,.46) 42%,rgba(249,231,220,.22)), url("../images/painting-little-things.webp") center 58%/cover no-repeat;}
.little-live-scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 75%,rgba(249,206,222,.16),transparent 18%), radial-gradient(circle at 82% 26%,rgba(250,234,196,.18),transparent 16%);}
.little-live-scene__signature{right:5%;bottom:14%;padding:10px 12px;border-radius:18px;background:rgba(32,24,40,.18);backdrop-filter:blur(6px);}

.chapter-divider{position:relative;overflow:hidden;}
.chapter-divider::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 45%,rgba(255,226,238,.22),transparent 18%), radial-gradient(circle at 78% 55%,rgba(210,189,236,.15),transparent 18%);}

.profile-chooser-backdrop{position:fixed;inset:0;z-index:240;background:rgba(32,23,35,.44);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.profile-chooser{position:fixed;inset:0;z-index:241;display:grid;place-items:center;padding:18px}
.profile-chooser__card{position:relative;width:min(560px,100%);padding:24px 22px 22px;border-radius:30px;border:1px solid rgba(185,143,161,.20);background:linear-gradient(180deg,rgba(255,252,252,.96),rgba(248,239,241,.93));box-shadow:0 28px 70px rgba(53,32,46,.20);color:#533646}
.profile-chooser__card h3{margin:6px 0 10px;font-size:clamp(1.7rem,4vw,2.3rem)}
.profile-chooser__card p:not(.eyebrow){margin:0;color:#6c5360;line-height:1.65}
.profile-chooser__close{position:absolute;right:12px;top:12px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(180,139,158,.18);background:rgba(255,255,255,.7);font-size:1.4rem;cursor:pointer;color:#6a4f5d}
.profile-chooser__actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.profile-choice{display:flex;align-items:center;gap:14px;padding:16px;border-radius:24px;border:1px solid rgba(174,132,150,.18);background:rgba(255,255,255,.74);cursor:pointer;text-align:left;color:#533646;box-shadow:inset 0 1px 0 rgba(255,255,255,.88);transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.profile-choice:hover,.profile-choice:focus-visible{transform:translateY(-2px);box-shadow:0 18px 34px rgba(84,56,71,.14);border-color:rgba(190,129,158,.32)}
.profile-choice__initial{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#ecc1d2,#b7a3d7);font-weight:800;color:#593c4b;font-size:1.15rem}
.profile-choice span strong{display:block;font-size:1.05rem}
.profile-choice span small{display:block;margin-top:4px;color:#7a6170;line-height:1.45}

@media (max-width: 940px){
  .app53-topbar{padding:10px 10px 12px;border-radius:24px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}
  .app60-profile-chip{order:4;grid-column:1 / span 2;justify-self:start;margin-left:0}
  .app53-lock{order:5;justify-self:end}
  .app53-context{justify-self:start;grid-column:2 / 4}
}
@media (max-width: 699px){
  .app53-topbar{top:max(4px,env(safe-area-inset-top));width:calc(100% - 12px);padding:8px 8px 10px;border-radius:22px}
  .app53-brand{padding:8px;gap:10px}
  .app53-brand-copy strong{font-size:1.16rem}
  .app53-brand-copy small{font-size:.46rem}
  .app53-emblem{width:50px;height:50px;border-radius:18px}
  .app53-emblem svg{width:39px;height:39px}
  .app53-context{display:none}
  .app60-profile-chip{padding:6px 10px 6px 6px;gap:8px}
  .app60-profile-chip__initial{width:30px;height:30px;font-size:.82rem}
  .section-title--little{align-items:flex-start}
  .section-title__petals{display:none}
  .section-title__soft-note{font-size:.92rem}
  .wish-charms span{font-size:.72rem;padding:7px 10px}
  .profile-chooser__actions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .app53-emblem::after,
  .app60-hero-charms__item,
  .section-title__petals span{animation:none!important}
}


/* =========================================================
   V61 — FINAL POLISH: HEADER / POPUPS / YEAR / MOBILE
   ========================================================= */

/* HARD override of older !important header rules. */
.app-v50 .app53-topbar{
  position:fixed!important;
  z-index:950!important;
  top:max(10px,env(safe-area-inset-top))!important;
  left:14px!important;
  right:14px!important;
  width:auto!important;
  min-height:72px!important;
  margin:0!important;
  padding:8px 10px!important;
  display:grid!important;
  grid-template-columns:minmax(250px,1fr) auto auto auto!important;
  align-items:center!important;
  gap:10px!important;
  border:1px solid rgba(170,125,145,.16)!important;
  border-radius:26px!important;
  background:
    radial-gradient(circle at 8% 20%,rgba(244,211,224,.34),transparent 21%),
    radial-gradient(circle at 88% 12%,rgba(216,200,239,.20),transparent 18%),
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(252,246,247,.84))!important;
  box-shadow:0 18px 48px rgba(61,41,55,.12)!important;
  backdrop-filter:blur(20px) saturate(1.12)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.12)!important;
  overflow:visible!important;
  transform:none!important;
  translate:none!important;
}
.app-v50 .app53-topbar::after{
  bottom:-12px!important;
  height:12px!important;
  background:linear-gradient(180deg,rgba(63,42,55,.05),transparent)!important;
}
.app-v50 .app53-topbar.is-dark-context{
  border-color:rgba(255,255,255,.12)!important;
  background:
    radial-gradient(circle at 9% 25%,rgba(198,124,154,.16),transparent 21%),
    radial-gradient(circle at 88% 12%,rgba(157,132,197,.14),transparent 18%),
    linear-gradient(180deg,rgba(34,25,36,.92),rgba(40,28,39,.78))!important;
  box-shadow:0 18px 50px rgba(11,7,13,.22)!important;
}
.app-v50 .hero{
  padding-top:94px!important;
}
.app-v50 .section{
  scroll-margin-top:96px!important;
}
html{
  scroll-padding-top:96px!important;
}

.app53-brand{
  min-width:0!important;
}
.app53-emblem{
  flex:0 0 54px!important;
  width:54px!important;
  height:54px!important;
}
.app53-brand-copy strong{
  font-size:1.12rem!important;
}
.app53-brand-copy small{
  font-size:.43rem!important;
}
.app53-context{
  max-width:220px;
}
.app60-profile-chip{
  margin-left:0!important;
  justify-self:end;
}
.app53-lock{
  justify-self:end!important;
}

/* Dark-context profile chip. */
.app53-topbar.is-dark-context .app60-profile-chip{
  color:#faedf4;
  border-color:rgba(255,255,255,.10);
  background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.04));
}
.app53-topbar.is-dark-context .app60-profile-chip__copy small{
  color:rgba(255,234,243,.58);
}
.app53-topbar.is-dark-context .app60-profile-chip__copy strong{
  color:#fff7fa;
}
.app53-topbar.is-dark-context .app60-profile-chip__initial{
  color:#fff5fa;
  background:linear-gradient(135deg,rgba(204,125,156,.82),rgba(137,116,171,.78));
}
.app53-topbar.is-dark-context .app53-brand{
  border-color:rgba(255,255,255,.08);
  background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
}
.app53-topbar.is-dark-context .app53-emblem{
  background:radial-gradient(circle at 35% 35%,rgba(255,246,250,.13),rgba(179,119,146,.12) 58%,rgba(115,92,145,.12));
}

/* Profile chooser must not be escapable before first explicit choice. */
.profile-chooser[data-force-choice="1"] .profile-chooser__close{
  display:none!important;
}
.profile-chooser[hidden],
.profile-chooser-backdrop[hidden]{
  display:none!important;
}
.profile-chooser__card::before{
  content:"♡";
  position:absolute;
  right:24px;
  bottom:18px;
  color:rgba(189,120,148,.14);
  font:500 5rem/1 Georgia,serif;
  pointer-events:none;
}
.profile-choice:first-child .profile-choice__initial{
  background:linear-gradient(135deg,#e5d4ec,#b9a3d7);
}
.profile-choice:last-child .profile-choice__initial{
  background:linear-gradient(135deg,#f0cad6,#d798a9);
}

/* Calendar editor final pass */
.calendar-editor-progress{
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto 1fr auto;
  align-items:center;
  gap:7px;
  padding:9px 12px;
  border:1px solid rgba(94,64,79,.08);
  border-radius:16px;
  background:linear-gradient(180deg,#fffdfa,#faf1ef);
}
.calendar-editor-progress span{
  display:flex;
  align-items:center;
  gap:6px;
  color:#7d6872;
  font-size:.52rem;
  font-weight:900;
  white-space:nowrap;
}
.calendar-editor-progress span b{
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#9a5d75;
  background:#f5e4e9;
  font-size:.50rem;
}
.calendar-editor-progress>i{
  height:1px;
  background:linear-gradient(90deg,rgba(177,108,136,.28),rgba(137,119,166,.20));
}
.content-editor__sheet{
  width:min(790px,calc(100vw - 28px))!important;
  max-height:min(92svh,940px)!important;
}
#studio-fields{
  padding:14px 16px 18px!important;
}
#studio-fields > .editor-step-label{
  position:relative;
  overflow:hidden;
}
#studio-fields > .editor-step-label::after{
  content:"";
  position:absolute;
  right:-34px;
  top:-34px;
  width:86px;
  height:86px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(198,130,157,.10),transparent 68%);
  pointer-events:none;
}
.studio-calendar-mode{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.studio-calendar-mode__item{
  min-height:72px!important;
  padding:11px 10px!important;
}
.repeat-summary{
  background:linear-gradient(135deg,#98667a,#756a93)!important;
}
.content-editor__foot{
  box-shadow:0 -10px 24px rgba(62,40,52,.06);
}

/* Year view is more scan-friendly. */
.calendar28-year-month{
  position:relative;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.calendar28-year-month:hover{
  transform:translateY(-2px);
  border-color:rgba(172,98,126,.18);
  box-shadow:0 15px 30px rgba(64,39,52,.08);
}
.calendar28-year-month.is-current-month{
  border-color:rgba(180,103,132,.30);
  background:
    radial-gradient(circle at 100% 0,rgba(205,130,158,.13),transparent 28%),
    #fffaf7;
  box-shadow:0 14px 34px rgba(142,84,108,.10);
}
.calendar28-year-month.is-current-month::after{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid rgba(180,103,132,.08);
  border-radius:12px;
  pointer-events:none;
}
.calendar28-year-month>header button{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.calendar28-year-month>header button em{
  padding:3px 6px;
  border-radius:999px;
  color:#9c5b73;
  background:#f4e1e8;
  font:800 .42rem/1 sans-serif;
  font-style:normal;
  letter-spacing:.04em;
}

/* Nos petits riens: depth/parallax layers */
.little-live-scene{
  --little-x:0px;
  --little-y:0px;
}
.little-live-scene__depth{
  position:absolute;
  inset:-4%;
  z-index:3;
  pointer-events:none;
  transition:transform .32s ease-out;
}
.little-live-scene__depth--far{
  transform:translate(calc(var(--little-x) * -.35),calc(var(--little-y) * -.25));
  background:
    radial-gradient(circle at 22% 34%,rgba(248,213,225,.14) 0 3px,transparent 4px),
    radial-gradient(circle at 52% 21%,rgba(240,215,167,.12) 0 2px,transparent 3px),
    radial-gradient(circle at 76% 44%,rgba(217,195,240,.12) 0 3px,transparent 4px);
}
.little-live-scene__depth--near{
  transform:translate(calc(var(--little-x) * .45),calc(var(--little-y) * .35));
  background:
    radial-gradient(ellipse at 9% 100%,rgba(196,128,151,.15),transparent 24%),
    radial-gradient(ellipse at 92% 100%,rgba(209,153,118,.11),transparent 20%);
}
.little-live-scene__moon{
  transform:translate(calc(var(--little-x) * .18),calc(var(--little-y) * .15));
}
.little-live-scene__garden{
  transform:translate(calc(var(--little-x) * .35),calc(var(--little-y) * .22));
  transition:transform .32s ease-out;
}
.little-live-scene__fireflies i:nth-child(6){
  left:58%;top:62%;animation-delay:-2.9s;scale:.62;
}
.little-live-scene__fireflies i:nth-child(7){
  left:87%;top:34%;animation-delay:-5.1s;scale:.74;
}
.app60-wish-burst{
  position:fixed;
  z-index:1900;
  pointer-events:none;
  color:#e9b6c9;
  font:700 .92rem Georgia,serif;
  filter:drop-shadow(0 3px 8px rgba(163,94,121,.20));
  animation:app60WishBurst .95s ease-out forwards;
}
@keyframes app60WishBurst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(0)}
  18%{opacity:.95}
  100%{opacity:0;transform:translate(calc(-50% + var(--bx)),calc(-50% + var(--by))) scale(1.15) rotate(var(--br))}
}

/* Phone */
@media(max-width:699px){
  :root{--app53-header-h:64px}
  .app-v50 .app53-topbar{
    top:max(6px,env(safe-area-inset-top))!important;
    left:6px!important;
    right:6px!important;
    width:auto!important;
    min-height:58px!important;
    padding:6px!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    gap:6px!important;
    border-radius:20px!important;
  }
  .app-v50 .hero{
    padding-top:74px!important;
  }
  .app53-brand{
    padding:4px!important;
    border:0!important;
    background:transparent!important;
  }
  .app53-emblem{
    width:44px!important;
    height:44px!important;
    flex-basis:44px!important;
    border-radius:16px!important;
  }
  .app53-emblem svg{
    width:34px!important;
    height:34px!important;
  }
  .app53-brand-copy{
    display:none!important;
  }
  .app53-context{
    display:none!important;
  }
  .app60-profile-chip{
    justify-self:end!important;
    padding:5px 8px 5px 5px!important;
    gap:6px!important;
  }
  .app60-profile-chip__copy small{
    display:none;
  }
  .app60-profile-chip__copy strong{
    font-size:.67rem!important;
  }
  .app60-profile-chip__initial{
    width:29px!important;
    height:29px!important;
    font-size:.76rem!important;
  }
  .app53-lock{
    width:36px!important;
    min-width:36px!important;
    height:36px!important;
    min-height:36px!important;
    padding:0!important;
  }
  .app53-lock small{
    display:none!important;
  }

  .content-editor{
    align-items:stretch!important;
  }
  .content-editor__sheet{
    width:100%!important;
    max-width:none!important;
    height:100svh!important;
    max-height:100svh!important;
    border-radius:0!important;
  }
  .content-editor__head{
    min-height:62px!important;
    padding-top:max(12px,env(safe-area-inset-top))!important;
  }
  .calendar-editor-progress{
    position:sticky;
    top:0;
    z-index:2;
    grid-template-columns:repeat(4,1fr);
    gap:5px;
    padding:7px;
    background:rgba(255,250,247,.94);
    backdrop-filter:blur(10px);
  }
  .calendar-editor-progress>i{
    display:none;
  }
  .calendar-editor-progress span{
    justify-content:center;
    gap:4px;
    font-size:.45rem;
  }
  .calendar-editor-progress span b{
    width:20px;
    height:20px;
    border-radius:7px;
  }
  .studio-calendar-mode{
    grid-template-columns:1fr!important;
  }
  .studio-calendar-mode__item{
    min-height:58px!important;
  }
  .content-editor__foot{
    padding-bottom:max(12px,env(safe-area-inset-bottom))!important;
  }

  .calendar28-year-board{
    grid-template-columns:1fr!important;
  }
  .calendar28-year-month{
    padding:11px!important;
  }
}

/* Tablet */
@media(min-width:700px) and (max-width:1099px){
  .app-v50 .app53-topbar{
    left:12px!important;
    right:12px!important;
    width:auto!important;
    grid-template-columns:minmax(190px,1fr) auto auto!important;
  }
  .app53-context{
    display:none!important;
  }
  .app60-profile-chip{
    justify-self:end;
  }
  .calendar28-year-board{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* Desktop with left app rail. */
@media(min-width:1100px){
  .app-v50 .app53-topbar{
    left:106px!important;
    right:16px!important;
    width:auto!important;
  }
}

/* Very wide desktop. */
@media(min-width:1700px){
  .app-v50 .app53-topbar{
    left:112px!important;
    right:24px!important;
    max-width:1740px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .little-live-scene__depth,
  .app60-wish-burst{
    animation:none!important;
    transition:none!important;
  }
}


/* =========================================================
   V62 — DESIGN SYSTEM FINAL / COHÉRENCE GLOBALE
   Mobile-first application shell + dedicated desktop layout
   ========================================================= */

:root{
  /* One shared palette everywhere */
  --nr-ink:#493843;
  --nr-ink-soft:#6e5965;
  --nr-muted:#927b86;

  --nr-cream:#fbf6f2;
  --nr-paper:#fffaf7;
  --nr-paper-2:#f5ebe8;
  --nr-paper-3:#ecdfdf;

  --nr-plum:#2d202d;
  --nr-plum-2:#3a2938;
  --nr-plum-3:#4b3446;

  --nr-rose:#b76c87;
  --nr-rose-2:#d99bb0;
  --nr-lavender:#81719f;
  --nr-lavender-2:#c5b7da;
  --nr-gold:#c69b62;
  --nr-sage:#789080;
  --nr-blue:#6685a2;

  --nr-line:rgba(86,58,72,.11);
  --nr-line-dark:rgba(255,255,255,.10);
  --nr-shadow:0 20px 55px rgba(62,39,52,.10);
  --nr-shadow-soft:0 10px 28px rgba(62,39,52,.07);

  --nr-r-sm:12px;
  --nr-r-md:16px;
  --nr-r-lg:24px;
  --nr-r-xl:30px;

  --nr-header-mobile:60px;
  --nr-header-desktop:72px;
  --nr-bottom-nav:68px;

  --serif:Georgia,"Times New Roman",serif;
  --sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html{
  background:var(--nr-cream)!important;
  scroll-padding-top:calc(var(--nr-header-mobile) + 12px)!important;
}

body.app-v50{
  min-height:100svh!important;
  color:var(--nr-ink)!important;
  font-family:var(--sans)!important;
  background:
    radial-gradient(circle at 8% 10%,rgba(205,151,173,.06),transparent 22%),
    linear-gradient(180deg,#fbf6f2,#f8f0ec 55%,#fbf6f2)!important;
}

/* -------- TYPOGRAPHY SYSTEM -------- */
.eyebrow{
  margin:0 0 9px!important;
  color:#9e657c!important;
  font-family:var(--sans)!important;
  font-size:.57rem!important;
  font-weight:900!important;
  letter-spacing:.15em!important;
  line-height:1.2!important;
  text-transform:uppercase!important;
}

.section-title{
  position:relative!important;
  width:min(100%,1480px)!important;
  margin:0 auto clamp(28px,4vw,46px)!important;
  align-items:end!important;
  gap:28px!important;
}
.section-title h2{
  margin:0!important;
  color:var(--nr-ink)!important;
  font-family:var(--serif)!important;
  font-size:clamp(2.8rem,7vw,5.9rem)!important;
  font-weight:500!important;
  line-height:.92!important;
  letter-spacing:-.05em!important;
}
.section-title h2 em{
  color:#ad647e!important;
  font-style:italic!important;
}
.section-title>p,
.section-title__side>p,
.section-title__soft-note{
  color:var(--nr-ink-soft)!important;
  font-size:.85rem!important;
  line-height:1.65!important;
}

.section-title--dark h2,
.constellation-section .section-title h2,
.together-section .section-title h2,
.intimate-section .section-title h2{
  color:#fff8f6!important;
}
.section-title--dark h2 em,
.constellation-section .section-title h2 em,
.together-section .section-title h2 em,
.intimate-section .section-title h2 em{
  color:#efbfd0!important;
}
.section-title--dark .eyebrow,
.constellation-section .eyebrow,
.together-section .eyebrow,
.intimate-section .eyebrow{
  color:#dab48c!important;
}

/* -------- COMMON BUTTON LANGUAGE -------- */
.button,
.module-add-button,
.module-manage-button,
.calendar28-add,
.calendar28-tools-toggle,
.calendar28-navigation button,
.manage-view button,
.content-editor button,
.site-footer button,
.site-footer a{
  font-family:var(--sans)!important;
}

.button,
.module-add-button,
.module-manage-button{
  min-height:42px!important;
  border:1px solid var(--nr-line)!important;
  border-radius:var(--nr-r-md)!important;
  font-size:.62rem!important;
  font-weight:900!important;
  letter-spacing:.015em!important;
  box-shadow:none!important;
}

.button--primary,
.module-add-button,
.studio-save{
  color:#fff!important;
  border-color:transparent!important;
  background:linear-gradient(135deg,var(--nr-rose),var(--nr-lavender))!important;
  box-shadow:0 10px 22px rgba(141,84,111,.15)!important;
}
.button--ghost,
.module-manage-button{
  color:#6e5260!important;
  background:rgba(255,250,247,.82)!important;
}
@media(hover:hover){
  .button:hover,
  .module-add-button:hover,
  .module-manage-button:hover{
    transform:translateY(-1px)!important;
  }
}

/* -------- CARD LANGUAGE -------- */
.memory-main,
.idea-panel,
.real-book,
.wish-card,
.journey-card,
.sky-card,
.flip-note,
.calendar28-shell,
.book30-entry,
.manage-profile-card,
.manage-transfer-card,
.manage-restore-card{
  border:1px solid var(--nr-line)!important;
  border-radius:var(--nr-r-lg)!important;
  box-shadow:var(--nr-shadow-soft)!important;
}

/* =========================================================
   PASSWORD GATE — same brand as the application
   ========================================================= */
.gate{
  padding:0!important;
  place-items:stretch!important;
  color:#fff!important;
  background:var(--nr-plum)!important;
}
.gate__image{
  inset:0!important;
  background:url("../images/painting-hero.webp") center/cover no-repeat!important;
  filter:saturate(.88) brightness(.62)!important;
  animation:gateDrift 20s ease-in-out infinite alternate!important;
}
.gate__veil{
  background:
    radial-gradient(circle at 78% 16%,rgba(203,131,158,.17),transparent 27%),
    radial-gradient(circle at 18% 76%,rgba(132,111,172,.16),transparent 25%),
    linear-gradient(180deg,rgba(27,20,30,.23),rgba(29,21,31,.84))!important;
}
.gate__content{
  align-self:end!important;
  width:100%!important;
  max-width:none!important;
  padding:
    34px 20px
    max(34px,env(safe-area-inset-bottom))!important;
  text-align:left!important;
  border:0!important;
  border-radius:32px 32px 0 0!important;
  background:
    linear-gradient(180deg,rgba(43,31,43,.58),rgba(33,24,35,.88))!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  box-shadow:0 -20px 55px rgba(15,10,16,.18)!important;
}
.gate-brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
}
.gate-brand>div:last-child{
  display:grid;
  gap:2px;
}
.gate-brand small{
  color:#d6a5b7;
  font-size:.47rem;
  font-weight:900;
  letter-spacing:.16em;
}
.gate-brand strong{
  color:#fff8f6;
  font:500 1.15rem/1 var(--serif);
}
.gate .seal{
  width:54px!important;
  height:54px!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:18px!important;
  color:#f4d8e2!important;
  background:
    radial-gradient(circle at 30% 30%,rgba(255,255,255,.12),transparent 36%),
    linear-gradient(135deg,rgba(190,108,139,.32),rgba(122,104,159,.28))!important;
  box-shadow:0 10px 24px rgba(9,6,10,.18)!important;
  font-size:.82rem!important;
}
.gate .seal b{
  color:#e9bd79!important;
}
.gate h1{
  margin:2px 0 12px!important;
  max-width:7ch!important;
  color:#fff9f7!important;
  font-family:var(--serif)!important;
  font-size:clamp(3.4rem,15vw,5.2rem)!important;
  line-height:.86!important;
  letter-spacing:-.055em!important;
}
.gate__content>p:not(.eyebrow):not(.hint){
  max-width:520px!important;
  margin:0!important;
  color:#e4d9df!important;
  font-size:.84rem!important;
  line-height:1.65!important;
}
.gate form{
  width:100%!important;
  max-width:560px!important;
  margin-top:24px!important;
}
.gate label[for="password"]{
  color:#e4ccd6!important;
  font-size:.58rem!important;
  letter-spacing:.06em!important;
}
.gate__row{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) 40px!important;
  gap:5px!important;
  padding:5px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.075)!important;
}
.gate__row input#password{
  min-height:46px!important;
  padding:0 9px!important;
  color:#fff!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
}
.gate__key,
.gate__reveal{
  width:38px!important;
  height:46px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border-radius:12px!important;
  color:#ebc6d5!important;
  background:rgba(255,255,255,.055)!important;
}
.gate__enter{
  grid-column:1/-1!important;
  width:100%!important;
  min-height:48px!important;
  margin-top:3px!important;
  border-radius:14px!important;
  color:#fff!important;
  background:linear-gradient(135deg,var(--nr-rose),var(--nr-lavender))!important;
  box-shadow:0 12px 24px rgba(10,7,11,.16)!important;
}
.bare-btn{
  color:#e1ced7!important;
  font-size:.63rem!important;
}

/* =========================================================
   FULL APP HEADER — edge-to-edge, not floating
   ========================================================= */
.app-v50 .app53-topbar{
  position:fixed!important;
  z-index:950!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  max-width:none!important;
  min-height:var(--nr-header-mobile)!important;
  margin:0!important;
  padding:
    max(6px,env(safe-area-inset-top))
    10px
    6px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:7px!important;
  border:0!important;
  border-bottom:1px solid var(--nr-line)!important;
  border-radius:0!important;
  background:rgba(255,250,247,.94)!important;
  box-shadow:0 7px 22px rgba(61,39,52,.08)!important;
  backdrop-filter:blur(18px) saturate(1.12)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.12)!important;
  overflow:visible!important;
  transform:none!important;
  translate:none!important;
}
.app-v50 .app53-topbar::before,
.app-v50 .app53-topbar::after{
  display:none!important;
}
.app-v50 .app53-topbar.is-dark-context{
  border-bottom-color:rgba(255,255,255,.08)!important;
  background:rgba(37,27,38,.93)!important;
  box-shadow:0 7px 24px rgba(10,7,11,.18)!important;
}
.app53-brand{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.app53-emblem{
  width:42px!important;
  height:42px!important;
  flex:0 0 42px!important;
  border-radius:14px!important;
  background:
    radial-gradient(circle at 35% 35%,#fff8fa,#f0dfe6 56%,#d5c6e4)!important;
  box-shadow:0 5px 14px rgba(91,59,77,.10)!important;
}
.app53-emblem::after{
  inset:5px!important;
  border-radius:11px!important;
}
.app53-emblem svg{
  width:34px!important;
  height:34px!important;
}
.app53-emblem-letters{
  display:none!important;
}
.app53-brand-copy{
  display:none!important;
}
.app53-context{
  min-width:0!important;
  justify-self:start!important;
  display:flex!important;
  gap:6px!important;
  padding:6px 9px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.app53-context-mark{
  width:23px!important;
  height:23px!important;
  color:#9d5f77!important;
  background:#f4e4e9!important;
}
.app53-context small{
  display:none!important;
}
.app53-context strong{
  color:#4d3a45!important;
  font-size:.67rem!important;
}
.app53-topbar.is-dark-context .app53-context strong{
  color:#fff4f8!important;
}
.app60-profile-chip{
  justify-self:end!important;
  min-height:36px!important;
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  margin:0!important;
  padding:4px 8px 4px 4px!important;
  border:1px solid var(--nr-line)!important;
  border-radius:999px!important;
  color:#604652!important;
  background:#fff8f6!important;
  box-shadow:none!important;
}
.app60-profile-chip__initial{
  width:28px!important;
  height:28px!important;
  border-radius:50%!important;
  font-size:.73rem!important;
}
.app60-profile-chip__copy small{
  display:none!important;
}
.app60-profile-chip__copy strong{
  font-size:.65rem!important;
}
.app53-lock{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid var(--nr-line)!important;
  border-radius:12px!important;
  color:#745a67!important;
  background:#fff8f5!important;
}
.app53-lock small{
  display:none!important;
}
.app53-progress{
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:2px!important;
}

/* App content begins below the fixed header. */
.app-v50 .hero{
  padding-top:var(--nr-header-mobile)!important;
}
.app-v50 .section{
  min-height:100svh!important;
  padding:
    82px
    14px
    calc(92px + env(safe-area-inset-bottom))!important;
  scroll-margin-top:calc(var(--nr-header-mobile) + 8px)!important;
}
html{
  scroll-padding-top:calc(var(--nr-header-mobile) + 8px)!important;
}

/* =========================================================
   MOBILE NAVIGATION — real app tab bar
   ========================================================= */
.app-v50 .mobile29{
  position:fixed!important;
  z-index:900!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  max-width:none!important;
  min-height:var(--nr-bottom-nav)!important;
  display:flex!important;
  align-items:stretch!important;
  gap:0!important;
  padding:
    5px
    5px
    max(5px,env(safe-area-inset-bottom))!important;
  overflow-x:auto!important;
  border:0!important;
  border-top:1px solid var(--nr-line)!important;
  border-radius:0!important;
  background:rgba(255,250,247,.96)!important;
  box-shadow:0 -8px 26px rgba(61,39,52,.08)!important;
  backdrop-filter:blur(18px)!important;
  transform:none!important;
}
.app-v50 .mobile29>a,
.app-v50 .mobile29>button{
  flex:1 0 56px!important;
  min-width:56px!important;
  min-height:54px!important;
  padding:5px 3px!important;
  border-radius:12px!important;
  color:#68545f!important;
}
.app-v50 .mobile29>a>strong,
.app-v50 .mobile29>button>strong{
  font-size:.46rem!important;
  font-weight:850!important;
}
.app-v50 .mobile29>a.is-current{
  color:#965c73!important;
  background:#f6e8ec!important;
  box-shadow:none!important;
}

/* =========================================================
   SECTION SURFACES — same family, intentional light/dark rhythm
   ========================================================= */
.story-section,
.calendar28-section,
.books-section,
.book30-section,
.little-things{
  background:
    radial-gradient(circle at 90% 10%,rgba(188,107,138,.06),transparent 25%),
    linear-gradient(180deg,var(--nr-cream),var(--nr-paper-2))!important;
}

.constellation-section,
.together-section,
.intimate-section{
  background:
    radial-gradient(circle at 85% 12%,rgba(183,108,135,.11),transparent 28%),
    radial-gradient(circle at 10% 75%,rgba(129,113,159,.11),transparent 28%),
    linear-gradient(155deg,var(--nr-plum),var(--nr-plum-2) 58%,var(--nr-plum-3))!important;
}

/* =========================================================
   POPUPS / MANAGE — same component language
   ========================================================= */
.content-editor-backdrop,
#module-action-backdrop{
  background:rgba(35,24,34,.34)!important;
  backdrop-filter:blur(8px)!important;
}
.content-editor__sheet,
.profile-chooser__card{
  border:1px solid var(--nr-line)!important;
  background:linear-gradient(180deg,#fffdfb,#f7eeeb)!important;
  box-shadow:0 28px 72px rgba(52,32,45,.20)!important;
}
.content-editor__head,
.content-editor__foot{
  background:rgba(255,250,247,.96)!important;
}
.editor-step-label{
  border-radius:var(--nr-r-md)!important;
  box-shadow:none!important;
}
.editor-step-label span{
  color:#925b71!important;
  background:#f4e4e9!important;
}
.studio-kind-tag,
.studio-calendar-mode__item,
.repeat-end__option{
  border-radius:var(--nr-r-md)!important;
}
.manage-view{
  background:
    radial-gradient(circle at 88% 4%,rgba(187,110,139,.06),transparent 22%),
    linear-gradient(180deg,#faf4f0,#f5ece8)!important;
}
.manage-view__top{
  border-bottom:1px solid var(--nr-line)!important;
  background:rgba(255,250,247,.96)!important;
  backdrop-filter:blur(14px)!important;
}
.manage-summary-card,
.manage-profile-card,
.manage-transfer-card,
.manage-restore-card,
.manage-browser{
  border-color:var(--nr-line)!important;
  border-radius:var(--nr-r-lg)!important;
  background:#fffaf7!important;
  box-shadow:var(--nr-shadow-soft)!important;
}

/* =========================================================
   FOOTER — a real closing screen, same identity
   ========================================================= */
.app62-footer{
  position:relative!important;
  min-height:auto!important;
  display:block!important;
  padding:
    56px
    18px
    calc(96px + env(safe-area-inset-bottom))!important;
  overflow:hidden!important;
  color:#f4eaf0!important;
  background:
    linear-gradient(180deg,rgba(34,25,36,.90),rgba(25,19,28,.97)),
    url("../images/painting-divider.webp") center/cover no-repeat!important;
}
.app62-footer::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 15% 25%,rgba(207,130,159,.12),transparent 23%),
    radial-gradient(circle at 82% 30%,rgba(132,113,169,.12),transparent 22%);
}
.app62-footer__line{
  position:relative;
  z-index:1;
  width:min(100%,1280px);
  margin:0 auto 28px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
}
.app62-footer__line i{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(238,197,214,.32));
}
.app62-footer__line i:last-child{
  transform:scaleX(-1);
}
.app62-footer__line span{
  color:#e7b3c6;
}
.app62-footer__main{
  position:relative;
  z-index:1;
  width:min(100%,1280px);
  margin:auto;
  display:grid;
  gap:26px;
}
.app62-footer__brand{
  display:flex!important;
  gap:13px!important;
}
.app62-footer__emblem{
  width:54px!important;
  height:54px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:17px!important;
  color:#f0d5df!important;
  background:linear-gradient(135deg,rgba(188,109,139,.19),rgba(125,110,161,.16))!important;
  font:700 .72rem/1 var(--serif)!important;
}
.app62-footer__emblem i{
  color:#e5b675;
  font-style:normal;
}
.app62-footer__brand small{
  color:#ce9db0!important;
  font-size:.45rem!important;
  font-weight:900;
  letter-spacing:.14em;
}
.app62-footer__brand strong{
  margin-top:3px;
  color:#fff8f6!important;
  font:500 1.45rem/1 var(--serif)!important;
}
.app62-footer__brand p{
  margin:4px 0 0!important;
  color:#9f929a!important;
  font-size:.58rem!important;
}
.app62-footer__message small{
  color:#d2aa76;
  font-size:.48rem;
  font-weight:900;
  letter-spacing:.14em;
}
.app62-footer__message p{
  max-width:520px;
  margin:6px 0 0;
  color:#d7cad1;
  font-size:.82rem;
  line-height:1.65;
}
.app62-footer__actions{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:7px!important;
}
.app62-footer__actions a,
.app62-footer__actions button{
  min-height:50px!important;
  display:grid!important;
  place-items:center!important;
  align-content:center!important;
  gap:3px!important;
  padding:6px!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:14px!important;
  color:#eadde4!important;
  background:rgba(255,255,255,.05)!important;
  text-decoration:none!important;
}
.app62-footer__actions span{
  color:#d7a1b6;
  font-size:.82rem;
}
.app62-footer__actions strong{
  font-size:.52rem;
  font-weight:900;
}
.app62-footer__bottom{
  position:relative;
  z-index:1;
  width:min(100%,1280px);
  margin:30px auto 0;
  padding-top:14px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  border-top:1px solid rgba(255,255,255,.07);
}
.app62-footer__bottom small{
  color:#8f838c!important;
  font-size:.50rem!important;
}
.app62-footer__bottom small:last-child{
  text-align:right;
}
.app62-footer__bottom span{
  color:#b97c94;
}

/* Hide obsolete direct-footer paragraph styles from old versions. */
.app62-footer>p{
  display:none!important;
}

/* =========================================================
   TABLET
   ========================================================= */
@media(min-width:700px){
  :root{
    --nr-header-mobile:66px;
  }
  .app-v50 .app53-topbar{
    min-height:66px!important;
    padding:7px 14px!important;
    grid-template-columns:minmax(190px,.9fr) minmax(180px,1fr) auto auto!important;
  }
  .app53-brand{
    gap:9px!important;
  }
  .app53-emblem{
    width:46px!important;
    height:46px!important;
    flex-basis:46px!important;
  }
  .app53-brand-copy{
    display:grid!important;
    gap:2px!important;
  }
  .app53-brand-copy small{
    display:block!important;
    color:#a16a80!important;
    font-size:.40rem!important;
    font-weight:900!important;
    letter-spacing:.13em!important;
  }
  .app53-brand-copy strong{
    color:#4c3742!important;
    font-size:.88rem!important;
  }
  .app53-topbar.is-dark-context .app53-brand-copy strong{
    color:#fff5f8!important;
  }
  .app53-context{
    justify-self:center!important;
  }
  .app53-context small{
    display:block!important;
    font-size:.37rem!important;
  }
  .app53-lock{
    width:auto!important;
    min-width:40px!important;
    padding:0 9px!important;
  }
  .app-v50 .section{
    padding:
      96px
      clamp(24px,4vw,58px)
      calc(100px + env(safe-area-inset-bottom))!important;
  }
  .gate__content{
    width:min(620px,calc(100% - 44px))!important;
    margin:0 0 28px 28px!important;
    padding:32px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:var(--nr-r-xl)!important;
  }
  .app62-footer__main{
    grid-template-columns:1.15fr .9fr;
    align-items:start;
  }
  .app62-footer__actions{
    grid-column:1/-1;
    width:min(520px,100%);
  }
}

/* =========================================================
   DESKTOP — dedicated side rail, full header
   ========================================================= */
@media(min-width:1100px){
  :root{
    --nr-header-desktop:72px;
  }
  html{
    scroll-padding-top:calc(var(--nr-header-desktop) + 8px)!important;
  }
  .app-v50 #site{
    padding-left:84px!important;
  }
  .app-v50 .app53-topbar{
    min-height:var(--nr-header-desktop)!important;
    grid-template-columns:minmax(260px,1fr) auto auto auto!important;
    padding:9px 20px!important;
  }
  .app53-emblem{
    width:50px!important;
    height:50px!important;
    flex-basis:50px!important;
  }
  .app53-brand-copy strong{
    font-size:1rem!important;
  }
  .app60-profile-chip{
    min-height:40px!important;
    padding-right:11px!important;
  }
  .app60-profile-chip__copy small{
    display:block!important;
    color:#9d7485!important;
    font-size:.38rem!important;
    letter-spacing:.12em!important;
  }
  .app60-profile-chip__copy strong{
    font-size:.72rem!important;
  }
  .app53-lock{
    width:auto!important;
    min-width:42px!important;
    padding:0 11px!important;
  }
  .app53-lock small{
    display:block!important;
    font-size:.48rem!important;
    font-weight:900!important;
  }

  .app-v50 .mobile29{
    top:var(--nr-header-desktop)!important;
    left:0!important;
    bottom:0!important;
    right:auto!important;
    width:84px!important;
    max-height:none!important;
    min-height:0!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:4px!important;
    padding:12px 8px!important;
    overflow:hidden auto!important;
    border:0!important;
    border-right:1px solid var(--nr-line)!important;
    border-top:0!important;
    border-radius:0!important;
    background:rgba(255,250,247,.97)!important;
    box-shadow:6px 0 24px rgba(61,39,52,.055)!important;
  }
  .app-v50 .mobile29>a,
  .app-v50 .mobile29>button{
    flex:0 0 56px!important;
    width:68px!important;
    min-width:68px!important;
    min-height:56px!important;
    border-radius:14px!important;
  }
  .app-v50 .mobile29>a>strong,
  .app-v50 .mobile29>button>strong{
    font-size:.44rem!important;
  }
  .app-v50 .section{
    padding:
      110px
      clamp(46px,5vw,92px)
      110px!important;
    scroll-margin-top:calc(var(--nr-header-desktop) + 8px)!important;
  }
  .app-v50 .hero{
    padding-top:var(--nr-header-desktop)!important;
  }

  /* Gate becomes a cinematic desktop composition */
  .gate{
    grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr)!important;
  }
  .gate__image,
  .gate__veil{
    grid-column:1/-1;
    grid-row:1;
  }
  .gate__content{
    grid-column:2!important;
    grid-row:1!important;
    align-self:center!important;
    justify-self:center!important;
    width:min(560px,calc(100% - 64px))!important;
    margin:0!important;
    padding:36px!important;
    border:1px solid rgba(255,255,255,.13)!important;
    border-radius:var(--nr-r-xl)!important;
    background:linear-gradient(180deg,rgba(42,30,42,.62),rgba(31,23,33,.80))!important;
  }
  .gate h1{
    font-size:clamp(4.5rem,6vw,6.6rem)!important;
  }

  .app62-footer{
    padding:72px clamp(54px,6vw,100px) 54px!important;
  }
  .app62-footer__main{
    grid-template-columns:1.1fr .9fr auto!important;
    align-items:center!important;
    gap:44px!important;
  }
  .app62-footer__actions{
    grid-column:auto!important;
    width:auto!important;
    min-width:300px;
  }
}

/* =========================================================
   ULTRAWIDE
   ========================================================= */
@media(min-width:1700px){
  .app-v50 .section > *,
  .section-title,
  .app62-footer__main,
  .app62-footer__line,
  .app62-footer__bottom{
    width:min(100%,1760px)!important;
  }
}

/* =========================================================
   SMALL PHONES
   ========================================================= */
@media(max-width:380px){
  .app60-profile-chip__copy{
    display:none!important;
  }
  .app-v50 .mobile29>a,
  .app-v50 .mobile29>button{
    min-width:53px!important;
  }
  .section-title h2{
    font-size:2.55rem!important;
  }
}

/* Accessibility */
@media(prefers-reduced-motion:reduce){
  .app53-emblem::after,
  .gate__image{
    animation:none!important;
  }
}


/* =========================================================
   V63 — COHÉRENCE GLOBALE REPRISE
   - header/logo unifiés
   - suppression des panneaux flous derrière les titres
   - couleurs harmonisées dans calendrier + retrouvailles
   - section retrouvailles retravaillée
   - décorations/animations plus visibles
   ========================================================= */

:root{
  --refuge-route-p:#ca8faa;
  --refuge-route-p-soft:#ecd8e3;
  --refuge-route-l:#dda9bb;
  --refuge-route-l-soft:#f4e4ea;
  --refuge-work:#e2edf8;
  --refuge-work-ink:#50708f;
}

/* ---------- Header / logo ---------- */
.app-v50 .app53-topbar,
.app-v50 .app53-topbar.is-dark-context{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  min-height:68px!important;
  padding:10px 14px!important;
  border:0!important;
  border-bottom:1px solid rgba(92,62,76,.10)!important;
  border-radius:0!important;
  background:linear-gradient(180deg,rgba(255,250,247,.97),rgba(248,239,236,.96))!important;
  box-shadow:0 10px 28px rgba(61,39,52,.08)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
.app-v50 .app53-topbar::before,
.app-v50 .app53-topbar::after{
  display:none!important;
}
.app53-brand,
.app53-topbar.is-dark-context .app53-brand{
  gap:10px!important;
  color:#4c3844!important;
}
.app53-emblem{
  width:44px!important;
  height:44px!important;
  flex:0 0 44px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(183,125,147,.28)!important;
  border-radius:14px!important;
  background:linear-gradient(145deg,#fff8fb,#f4e6ed 58%,#e7d8ef)!important;
  box-shadow:0 8px 20px rgba(108,71,89,.10)!important;
}
.app53-emblem svg,
.app53-emblem-letters{
  display:none!important;
}
.app53-emblem-wordmark{
  display:flex!important;
  align-items:center!important;
  gap:2px!important;
  color:#a56d83!important;
  font:700 .82rem/1 Georgia,serif!important;
  letter-spacing:.01em!important;
}
.app53-emblem-wordmark i{
  color:#d0a15f!important;
  font-style:normal!important;
}
.app53-brand-copy small,
.app53-topbar.is-dark-context .app53-brand-copy small,
.app53-context small,
.app53-topbar.is-dark-context .app53-context small{
  color:#a06d80!important;
}
.app53-brand-copy strong,
.app53-topbar.is-dark-context .app53-brand-copy strong,
.app53-context strong,
.app53-topbar.is-dark-context .app53-context strong{
  color:#4b3944!important;
}
.app53-context{
  background:transparent!important;
  border:0!important;
}
.app53-context-mark{
  color:#9d6178!important;
  background:#f4e4ea!important;
}
.app60-profile-chip,
.app53-topbar.is-dark-context .app60-profile-chip{
  border:1px solid rgba(92,62,76,.10)!important;
  background:#fffaf7!important;
  color:#664b58!important;
}
.app60-profile-chip__initial,
.app53-topbar.is-dark-context .app60-profile-chip__initial{
  background:linear-gradient(135deg,#c897af,#8f84aa)!important;
  color:#fff!important;
}
.app53-lock,
.app53-topbar.is-dark-context .app53-lock{
  border:1px solid rgba(92,62,76,.10)!important;
  background:#fffaf7!important;
  color:#765965!important;
}
.app53-progress{
  background:linear-gradient(90deg,#d8c2cc,#d9c8e8)!important;
}

/* ---------- Hero : no blurred panel behind text ---------- */
.hero,
.app-v50 .hero{
  position:relative!important;
  overflow:hidden!important;
}
.hero__content,
.hero__content--v7{
  max-width:670px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.hero__content::before,
.hero__content::after,
.hero__content--v7::before,
.hero__content--v7::after{
  display:none!important;
  content:none!important;
}
.hero__lead{
  max-width:640px!important;
}
.hero__buttons .button--glass{
  border-color:rgba(255,255,255,.20)!important;
  background:rgba(255,250,247,.14)!important;
}
.hero__metrics article{
  background:rgba(35,24,35,.46)!important;
  backdrop-filter:blur(4px)!important;
}

/* Decorative touches more visible but still soft. */
.app60-hero-charms__item{
  opacity:.95!important;
  filter:drop-shadow(0 8px 18px rgba(66,34,49,.16))!important;
}
.app60-hero-charms__item--1{font-size:1.45rem!important}
.app60-hero-charms__item--2{font-size:1.1rem!important}
.app60-hero-charms__item--3{font-size:1.25rem!important}
.app60-hero-charms__item--4{font-size:1.2rem!important}
.app60-hero-charms__item--5{font-size:1.05rem!important}
.app53-float{
  opacity:calc(var(--opacity) + .08)!important;
  filter:drop-shadow(0 6px 16px rgba(197,124,153,.22))!important;
}
.section-title__petals span{
  display:grid!important;
  place-items:center!important;
  animation:refugePetalFloat 6s ease-in-out infinite!important;
}
.section-title__petals span:nth-child(2){animation-delay:-2s!important}
.section-title__petals span:nth-child(3){animation-delay:-4s!important}
@keyframes refugePetalFloat{
  0%,100%{transform:translateY(0) rotate(0deg);opacity:.85}
  50%{transform:translateY(-6px) rotate(6deg);opacity:1}
}

/* ---------- Section title consistency ---------- */
.section-title h2,
.section-title h2 em,
.section-title h2 span,
.constellation-title h2,
.constellation-title h2 em,
.together-section .section-title h2,
.together-section .section-title h2 em{
  display:block!important;
  padding:0!important;
  background:none!important;
  box-shadow:none!important;
  border:0!important;
  text-shadow:none!important;
  filter:none!important;
  box-decoration-break:slice!important;
  -webkit-box-decoration-break:slice!important;
}
.section-title h2 br+em,
.together-section .section-title h2 br+em,
.constellation-title h2 br+em{
  margin-top:.06em!important;
}
.section-title{
  position:relative!important;
}
.section-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-14px;
  width:72px;
  height:1px;
  background:linear-gradient(90deg,rgba(191,127,149,.8),transparent);
  opacity:.8;
}
.section-title--dark::after{
  background:linear-gradient(90deg,rgba(239,191,208,.86),transparent);
}
.section-title > div,
.section-title__side,
.constellation-title > div{
  position:relative!important;
  z-index:1!important;
}

/* ---------- Unified painted section ambience ---------- */
.story-section,
.little-things,
.books-section,
.book30-section,
.calendar28-section{
  background:
    radial-gradient(circle at 82% 10%,rgba(213,159,181,.08),transparent 22%),
    radial-gradient(circle at 10% 85%,rgba(170,150,202,.08),transparent 24%),
    linear-gradient(180deg,#fbf6f2,#f5ece8 52%,#fbf6f2)!important;
}
.constellation-section,
.together-section,
.intimate-section{
  background:
    radial-gradient(circle at 80% 12%,rgba(200,136,160,.13),transparent 22%),
    radial-gradient(circle at 12% 78%,rgba(141,123,179,.11),transparent 24%),
    linear-gradient(160deg,#2d202d,#35263a 60%,#49303f)!important;
}
.constellation-universe,
.idea-panel,
.memory-main,
.book30-entry,
.wish-card,
.flip-note,
.real-book,
.journey-card,
.sky-card{
  overflow:hidden!important;
}
.constellation-universe::before,
.idea-panel::before,
.memory-main::before,
.real-book::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 84% 18%,rgba(255,255,255,.08),transparent 22%);
  opacity:.75;
}

/* ---------- Prochaines retrouvailles : lighter and less empty ---------- */
.reunion-quick-v17{
  position:relative!important;
  overflow:hidden!important;
  background:
    linear-gradient(180deg,rgba(44,31,43,.74),rgba(48,33,46,.78)),
    url("../images/painting-reunion.webp") center/cover no-repeat!important;
}
.reunion-quick-v17::after{
  display:none!important;
}
.reunion-quick__inner{
  width:min(1320px,100%)!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(320px,1.15fr) minmax(250px,.65fr) minmax(280px,.85fr)!important;
  gap:18px!important;
  align-items:stretch!important;
}
.reunion-quick__intro{
  align-self:stretch!important;
  padding:0!important;
}
.reunion-quick__intro h2{
  max-width:9ch!important;
  margin:0!important;
  background:none!important;
}
.reunion-quick__intro>p:not(.eyebrow){
  max-width:30ch!important;
  margin-top:18px!important;
}
.big-event-mini,
.reunion-countdown-card,
.reunion-upcoming-item{
  border:1px solid rgba(255,255,255,.12)!important;
  background:linear-gradient(180deg,rgba(255,250,247,.08),rgba(255,250,247,.05))!important;
  box-shadow:0 20px 44px rgba(11,7,12,.16)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
}
.big-event-mini{
  max-width:360px!important;
}
.reunion-countdown-card{
  min-height:unset!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:18px!important;
  padding:22px!important;
  align-content:center!important;
}
.reunion-countdown-card__orb{
  width:108px!important;
  height:108px!important;
  background:radial-gradient(circle at 50% 35%,rgba(255,241,214,.18),rgba(255,255,255,.03))!important;
}
.reunion-countdown-card__orb span{
  font-size:2.2rem!important;
}
.reunion-countdown-card__copy strong{
  font-size:1.85rem!important;
  line-height:1.03!important;
}
.reunion-upcoming-list{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  align-content:start!important;
}
.reunion-upcoming-list::before{
  display:none!important;
}
.reunion-upcoming-item{
  min-height:unset!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:14px!important;
  align-items:center!important;
  padding:16px 18px!important;
}
.reunion-upcoming-item strong{
  font-size:1.08rem!important;
}
.reunion-upcoming-item small{
  font-size:.61rem!important;
  color:#d8c8d2!important;
}
.reunion-upcoming-item__line{
  justify-items:start!important;
  min-width:56px!important;
}
.reunion-upcoming-item__line span{
  font-size:.54rem!important;
}
.reunion-upcoming-item.route-p .reunion-upcoming-item__line i{
  background:var(--refuge-route-p)!important;
}
.reunion-upcoming-item.route-l .reunion-upcoming-item__line i{
  background:var(--refuge-route-l)!important;
}
@media(max-width:980px){
  .reunion-quick__inner{
    grid-template-columns:1fr!important;
  }
  .reunion-countdown-card{
    grid-template-columns:auto 1fr!important;
  }
}
@media(max-width:699px){
  .reunion-quick-v17{
    padding:88px 14px 42px!important;
  }
  .reunion-quick__intro h2{
    font-size:clamp(2.65rem,15vw,4.1rem)!important;
  }
  .reunion-countdown-card{
    grid-template-columns:auto 1fr!important;
    padding:18px!important;
  }
  .reunion-countdown-card__orb{
    width:92px!important;
    height:92px!important;
  }
}

/* ---------- Calendar + reunion color consistency ---------- */
.cal28-together-pierre{background:var(--refuge-route-p-soft)!important;color:#7c5666!important}
.cal28-together-leonor{background:var(--refuge-route-l-soft)!important;color:#946273!important}
.cal28-work,
.cal28-custom-work{background:var(--refuge-work)!important;color:var(--refuge-work-ink)!important}
.calendar28-route-legend .p-to-l,
.journey-key__p,
.route-pulse--p,
.route-p .reunion-upcoming-item__line i,
.route-pulse.route-pulse--p,
.calendar28-event i[data-group="together-pierre"]{
  background:var(--refuge-route-p)!important;
}
.calendar28-route-legend .l-to-p,
.journey-key__l,
.route-pulse--l,
.route-l .reunion-upcoming-item__line i,
.route-pulse.route-pulse--l,
.calendar28-event i[data-group="together-leonor"]{
  background:var(--refuge-route-l)!important;
}
.journey-date--p{background:#eee1e8!important}
.journey-date--p small{background:var(--refuge-route-p)!important}
.journey-date--l{background:#f5e7ec!important}
.journey-date--l small{background:var(--refuge-route-l)!important}
.calendar28-filter[data-cal28-filter="work"] i{background:var(--refuge-work-ink)!important}
.calendar28-filter[data-cal28-filter="together"] i{background:linear-gradient(90deg,var(--refuge-route-p),var(--refuge-route-l))!important}

/* ---------- Ideas section cards improved ---------- */
.together-section .section-title h2,
.constellation-section .section-title h2{
  max-width:11ch!important;
}
.idea-stage{
  position:relative!important;
}
.idea-panel{
  border:1px solid rgba(255,255,255,.10)!important;
  background:
    linear-gradient(180deg,rgba(255,250,247,.95),rgba(248,239,236,.92)),
    radial-gradient(circle at 80% 12%,rgba(220,174,192,.16),transparent 24%)!important;
  box-shadow:0 18px 44px rgba(15,10,15,.16)!important;
}
.idea-panel__icon{
  box-shadow:0 8px 18px rgba(188,128,152,.12)!important;
}
.idea-panel__meta{
  color:#965e75!important;
}
.idea-panel strong,
.idea-panel h3{
  color:#52404a!important;
}
.idea-panel p{
  color:#6f5c66!important;
}

/* ---------- Decorative in-page elements ---------- */
.story-section::before,
.constellation-section::before,
.together-section::before,
.books-section::before,
.intimate-section::before{
  content:"";
  position:absolute;
  inset:auto auto 28px 24px;
  width:74px;
  height:74px;
  pointer-events:none;
  opacity:.22;
  background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.85),transparent 38%),radial-gradient(circle at 58% 60%,rgba(241,193,212,.7),transparent 44%);
  filter:blur(2px);
}
.constellation-section::after,
.together-section::after,
.intimate-section::after{
  content:"♡";
  position:absolute;
  top:120px;
  right:34px;
  color:rgba(247,220,230,.55);
  font:600 1.1rem Georgia,serif;
  pointer-events:none;
  animation:refugeTinyFloat 7s ease-in-out infinite;
}
@keyframes refugeTinyFloat{
  0%,100%{transform:translateY(0);opacity:.52}
  50%{transform:translateY(-9px);opacity:.9}
}

/* ---------- Mobile / desktop adjustments ---------- */
.app-v50 .hero{
  padding-top:110px!important;
}
@media(min-width:700px){
  .app-v50 .app53-topbar,
  .app-v50 .app53-topbar.is-dark-context{
    min-height:74px!important;
    padding:12px 18px!important;
    grid-template-columns:minmax(250px,1fr) minmax(180px,.7fr) auto auto!important;
  }
  .app53-brand-copy{display:grid!important;gap:2px!important}
  .app53-brand-copy strong{font-size:1rem!important}
  .app53-context{justify-self:center!important}
  .app60-profile-chip{min-height:42px!important}
  .app53-lock{min-height:42px!important;padding:0 12px!important}
  .app-v50 .hero{padding-top:136px!important}
}
@media(min-width:1100px){
  .app-v50 #site{padding-left:88px!important}
  .app-v50 .mobile29{
    width:88px!important;
    background:linear-gradient(180deg,rgba(255,250,247,.98),rgba(247,240,236,.97))!important;
    border-right:1px solid rgba(92,62,76,.10)!important;
  }
  .app-v50 .hero{
    min-height:100svh!important;
    padding:138px clamp(42px,6vw,92px) 120px!important;
  }
  .hero-portals{
    top:18%!important;
  }
}

/* ---------- Prevent old title backgrounds from earlier versions ---------- */
.section-title h2::before,
.section-title h2::after,
.section-title h2 em::before,
.section-title h2 em::after{
  display:none!important;
  content:none!important;
}


/* =========================================================
   V64 — corrections ciblées après retour utilisateur
   - enlever définitivement le flou du bloc "Quand est-ce qu'on se retrouve ?"
   - uniformiser les grands titres avec "Nos dates"
   - mieux intégrer le fond de la constellation au module
   ========================================================= */

/* 1) Aucun panneau flou derrière le texte d'intro retrouvailles */
.reunion-quick__intro,
.app-v50 .reunion-quick__intro{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.reunion-quick__intro::before,
.reunion-quick__intro::after,
.app-v50 .reunion-quick__intro::before,
.app-v50 .reunion-quick__intro::after{
  display:none!important;
  content:none!important;
}
.reunion-quick__intro .eyebrow,
.reunion-quick__intro h2,
.reunion-quick__intro h2 em,
.reunion-quick__intro > p:not(.eyebrow){
  text-shadow:none!important;
  background:none!important;
}

/* 2) Titre de la constellation et du bloc idées : même logique que le reste du site */
.constellation-section .section-title,
.together-section .section-title{
  background:none!important;
}
.constellation-section .section-title h2,
.constellation-section .section-title h2 *,
.together-section .section-title h2,
.together-section .section-title h2 *,
.constellation-section .section-title .eyebrow,
.together-section .section-title .eyebrow{
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  text-shadow:none!important;
  filter:none!important;
}
.constellation-section .section-title h2::before,
.constellation-section .section-title h2::after,
.constellation-section .section-title h2 em::before,
.constellation-section .section-title h2 em::after,
.constellation-section .section-title h2 span::before,
.constellation-section .section-title h2 span::after,
.together-section .section-title h2::before,
.together-section .section-title h2::after,
.together-section .section-title h2 em::before,
.together-section .section-title h2 em::after,
.together-section .section-title h2 span::before,
.together-section .section-title h2 span::after{
  display:none!important;
  content:none!important;
}
.constellation-section .section-title h2,
.together-section .section-title h2{
  display:block!important;
  max-width:10.5ch!important;
  padding:0!important;
  line-height:.93!important;
}
.constellation-section .section-title h2 em,
.together-section .section-title h2 em{
  display:inline!important;
}

/* 3) Fond de la constellation plus intégré au module et au reste de la section */
.constellation-section{
  background:
    radial-gradient(circle at 78% 14%,rgba(204,150,177,.16),transparent 24%),
    radial-gradient(circle at 14% 78%,rgba(140,119,178,.16),transparent 22%),
    linear-gradient(160deg,#342535 0%,#261d31 46%,#3a2740 100%)!important;
}
.constellation-universe{
  background:
    radial-gradient(circle at 50% 50%,rgba(255,245,232,.04),transparent 16%),
    radial-gradient(circle at 20% 22%,rgba(233,196,216,.06),transparent 14%),
    linear-gradient(180deg,rgba(19,15,32,.26),rgba(18,14,30,.34))!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02), 0 24px 58px rgba(18,12,24,.20)!important;
}
.constellation-universe::before{
  background:
    radial-gradient(circle at 50% 50%,rgba(164,131,188,.10),transparent 24%),
    radial-gradient(circle at 72% 22%,rgba(255,214,226,.05),transparent 18%)!important;
  opacity:1!important;
}

/* 4) Le bloc idées garde le même langage visuel que les autres titres */
.together-section .section-title::after,
.constellation-section .section-title::after{
  width:78px!important;
}
.together-section .section-title h2,
.constellation-section .section-title h2{
  color:#fff8f4!important;
}
.together-section .section-title h2 em,
.constellation-section .section-title h2 em{
  color:#efc2cf!important;
}
.together-section .section-title > div,
.constellation-section .section-title > div{
  position:relative!important;
  z-index:1!important;
}

/* 5) Idées : retirer tout ressenti de "cadre de titre" et garder des cartes cohérentes */
.together-section .section-title,
.together-section .section-title > div{
  max-width:none!important;
}
.idea-stage{
  margin-top:8px!important;
}
.idea-panel{
  background:
    linear-gradient(180deg,rgba(255,250,247,.95),rgba(246,236,232,.92)),
    radial-gradient(circle at 82% 14%,rgba(223,184,198,.18),transparent 28%)!important;
}

/* 6) Mobile */
@media(max-width:699px){
  .reunion-quick__intro h2{
    max-width:8.4ch!important;
  }
  .constellation-section .section-title h2,
  .together-section .section-title h2{
    max-width:9.8ch!important;
  }
}


/* =========================================================
   V67 STABILITY RESTORE — INTERACTION LAYERS + CALENDAR NOW
   ========================================================= */

/* Lock state is explicit and cannot visually leak back in. */
#gate[hidden]{display:none!important}
body:not(.locked) #gate{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.locked #gate{
  display:grid!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
body.locked #site{
  visibility:hidden!important;
  pointer-events:none!important;
}
body:not(.locked) #site{
  visibility:visible!important;
  pointer-events:auto!important;
}

/* Interactive chrome always sits above decoration. */
.app53-romance-layer,
.floating-hearts-v15,
.app60-hero-charms,
.app54-scene-charm,
.section-title__petals,
.little-live-scene__fireflies,
.little-live-scene__heart-path{
  pointer-events:none!important;
}

#nav-dock{
  pointer-events:auto!important;
  z-index:950!important;
}
#mobile29-rail{
  pointer-events:auto!important;
  z-index:970!important;
}
#mobile29-rail>a,
#mobile29-rail>button{
  position:relative!important;
  z-index:2!important;
  pointer-events:auto!important;
  cursor:pointer!important;
}

/* Gérer is a real app layer, never behind the header/nav. */
.manage-view{
  z-index:1500!important;
}
.manage-view.is-open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.manage-view__top{
  z-index:1502!important;
}
body.manage-open #nav-dock,
body.manage-open #mobile29-rail{
  pointer-events:none!important;
}

/* Add/Edit popup layers. */
.content-editor-backdrop{
  z-index:1650!important;
}
.content-editor{
  z-index:1660!important;
  pointer-events:none!important;
}
.content-editor.is-open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.content-editor.is-open .content-editor__sheet{
  pointer-events:auto!important;
}
.romantic-picker{
  z-index:1710!important;
}
.module-action-portal{
  z-index:1800!important;
  pointer-events:auto!important;
}
.module-action-portal[hidden]{display:none!important}
.profile-chooser-backdrop{z-index:1850!important}
.profile-chooser{z-index:1860!important}
.book30-reader-backdrop{z-index:1900!important}
.book30-reader{z-index:1910!important}

/* The original decorative system is deliberately visible again. */
.app53-romance-layer{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.app53-float{
  display:block!important;
}
.app54-scene-charm{
  display:block!important;
  visibility:visible!important;
  opacity:.74!important;
}
.little-live-scene__fireflies,
.little-live-scene__heart-path,
.little-live-scene__garden{
  display:block!important;
  visibility:visible!important;
}

/* Current day: an unmistakable star without hiding text. */
.calendar28-week-row.is-today,
.calendar28-agenda-day.is-today{
  position:relative!important;
  border-color:rgba(184,105,136,.34)!important;
  box-shadow:
    0 10px 26px rgba(139,83,108,.08),
    inset 3px 0 0 rgba(184,105,136,.54)!important;
}
.calendar28-now-star{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  margin:7px auto 0;
  border:1px solid rgba(184,105,136,.18);
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#c17691,#8875a4);
  box-shadow:0 7px 17px rgba(124,78,103,.18);
  font-size:.58rem;
  animation:calendarNowStarPulse 3s ease-in-out infinite;
}
@keyframes calendarNowStarPulse{
  0%,100%{transform:scale(.94);box-shadow:0 7px 17px rgba(124,78,103,.14)}
  50%{transform:scale(1.08);box-shadow:0 8px 24px rgba(124,78,103,.28)}
}
.calendar28-agenda-now{
  border-radius:16px!important;
  background:linear-gradient(90deg,transparent,rgba(245,229,236,.62),transparent)!important;
}

/* Desktop left rail stays usable across every section. */
@media(min-width:1100px){
  #mobile29-rail{
    position:fixed!important;
    pointer-events:auto!important;
  }
}

@media(max-width:699px){
  .calendar28-now-star{
    width:22px;
    height:22px;
    margin-top:5px;
  }
}

@media(prefers-reduced-motion:reduce){
  .calendar28-now-star{animation:none!important}
}


/* =========================================================
   V68 STABLE — CALENDAR EDITOR + ROMANTIC VISUAL RESTORATION
   ========================================================= */

/* ---- Calendar editor: clean separators, no clipped / empty cards ---- */
#studio-fields > .editor-step-label{
  position:relative!important;
  display:grid!important;
  grid-template-columns:31px auto minmax(28px,1fr)!important;
  align-items:center!important;
  gap:9px!important;
  min-height:34px!important;
  padding:3px 2px!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#studio-fields > .editor-step-label::after{
  content:""!important;
  position:static!important;
  width:auto!important;
  height:1px!important;
  border-radius:0!important;
  background:linear-gradient(90deg,rgba(177,108,136,.30),rgba(137,119,166,.08),transparent)!important;
  pointer-events:none!important;
}
#studio-fields > .editor-step-label > span{
  width:31px!important;
  height:31px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:10px!important;
  color:#965d74!important;
  background:#f4e3e9!important;
  font-size:.56rem!important;
  font-weight:900!important;
}
#studio-fields > .editor-step-label > div{
  display:grid!important;
  gap:1px!important;
  min-width:0!important;
}
#studio-fields > .editor-step-label strong{
  color:#563f4b!important;
  font-size:.67rem!important;
  line-height:1.15!important;
}
#studio-fields > .editor-step-label small{
  display:block!important;
  color:#927985!important;
  font-size:.51rem!important;
  line-height:1.3!important;
  white-space:nowrap!important;
}
.calendar-editor-progress{
  overflow:hidden!important;
  border-radius:15px!important;
}
.studio-calendar-mode{
  margin-top:-2px!important;
}

/* ---- Romantic click effects must sit above the Book reader ---- */
.floating-hearts-v15{
  z-index:2350!important;
  display:block!important;
  visibility:visible!important;
  pointer-events:none!important;
}
.floating-hearts-v15 span{
  filter:drop-shadow(0 5px 11px rgba(185,105,137,.24))!important;
}
.app53-click-heart{
  z-index:2351!important;
}

/* ---- Ambient hearts / stars / petals travel ABOVE section backgrounds ---- */
.app53-romance-layer{
  z-index:38!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:none!important;
}
.app53-float{
  display:block!important;
  text-shadow:0 4px 13px rgba(165,96,126,.16)!important;
}
.app53-float--0{color:#bd7892!important}
.app53-float--1{color:#8d7ba7!important}
.app53-float--2{color:#c79b70!important}

/* Keep application chrome above particles. */
#nav-dock{z-index:950!important}
#mobile29-rail{z-index:970!important}
.manage-view{z-index:1500!important}
.content-editor{z-index:1660!important}
.romantic-picker{z-index:1710!important}
.module-action-portal{z-index:1800!important}
.profile-chooser{z-index:1860!important}
.book30-reader-backdrop{z-index:1900!important}
.book30-reader{z-index:1910!important}

/* ---- Paintings are part of the section atmosphere, not separate banners ---- */
/* Disable the old pseudo-image layers that were overwritten by later versions. */
.story-section::before,
.story-section::after,
.together-section::before,
.together-section::after,
.books-section::before,
.books-section::after,
.envies-section::before,
.envies-section::after,
.book30-section::before,
.book30-section::after,
.little-things::before{
  display:none!important;
  content:none!important;
}

/* Light pages */
.story-section{
  background:
    linear-gradient(180deg,rgba(251,246,242,.84),rgba(247,238,234,.91) 58%,rgba(251,246,242,.96)),
    url("../images/painting-story.webp") center 34%/cover no-repeat!important;
}
.little-things{
  background:
    linear-gradient(180deg,rgba(251,246,242,.86),rgba(246,236,233,.92)),
    url("../images/painting-little-things.webp") center/cover no-repeat!important;
}
.calendar50-section{
  background:
    linear-gradient(180deg,rgba(248,240,235,.88),rgba(244,233,229,.94)),
    url("../images/painting-calendar.webp") center top/cover no-repeat!important;
  background-attachment:scroll!important;
}
.books-section{
  background:
    linear-gradient(180deg,rgba(250,244,240,.84),rgba(245,235,232,.92)),
    url("../images/painting-reading.webp") center/cover no-repeat!important;
}
.book30-section{
  background:
    linear-gradient(180deg,rgba(251,246,242,.84),rgba(244,233,228,.93)),
    url("../images/painting-book-us.webp") center/cover no-repeat!important;
}

/* Dark pages */
.constellation-section{
  background:
    linear-gradient(160deg,rgba(45,32,45,.89),rgba(36,28,48,.91) 48%,rgba(58,39,63,.91)),
    url("../images/painting-divider.webp") center/cover no-repeat!important;
}
.together-section{
  background:
    linear-gradient(160deg,rgba(45,32,45,.83),rgba(52,36,50,.88) 60%,rgba(67,43,57,.91)),
    url("../images/painting-ideas.webp") center/cover no-repeat!important;
}
.envies-section,
.intimate-section{
  background:
    linear-gradient(160deg,rgba(45,32,45,.84),rgba(47,33,47,.90) 58%,rgba(60,39,53,.92)),
    url("../images/painting-gifts.webp") center/cover no-repeat!important;
}

/* A gentle "painted edge" gives full-screen pages depth without adding banners. */
.story-section,
.little-things,
.calendar50-section,
.books-section,
.book30-section,
.constellation-section,
.together-section,
.envies-section{
  background-blend-mode:normal!important;
}
.story-section > *,
.little-things > *,
.calendar50-section > *,
.books-section > *,
.book30-section > *,
.constellation-section > *,
.together-section > *,
.envies-section > *{
  position:relative!important;
  z-index:2!important;
}

/* Small section-specific decorations stay visible and never intercept clicks. */
.app54-scene-charm,
.section-title__petals,
.little-live-scene__fireflies,
.little-live-scene__heart-path,
.little-live-scene__garden{
  z-index:8!important;
  pointer-events:none!important;
}

/* Stronger but still subtle animated objects. */
.app54-scene-charm{
  opacity:.84!important;
}
.little-live-scene__fireflies i{
  box-shadow:0 0 13px 4px rgba(244,207,135,.34)!important;
}

/* Mobile: preserve readability over paintings. */
@media(max-width:699px){
  #studio-fields > .editor-step-label{
    grid-template-columns:29px auto minmax(18px,1fr)!important;
    gap:7px!important;
  }
  #studio-fields > .editor-step-label > span{
    width:29px!important;
    height:29px!important;
  }
  #studio-fields > .editor-step-label small{
    max-width:44vw!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .story-section{
    background:
      linear-gradient(180deg,rgba(251,246,242,.91),rgba(247,238,234,.95)),
      url("../images/painting-story.webp") center/cover no-repeat!important;
  }
  .little-things{
    background:
      linear-gradient(180deg,rgba(251,246,242,.91),rgba(246,236,233,.95)),
      url("../images/painting-little-things.webp") center/cover no-repeat!important;
  }
  .calendar50-section{
    background:
      linear-gradient(180deg,rgba(248,240,235,.92),rgba(244,233,229,.96)),
      url("../images/painting-calendar.webp") center top/cover no-repeat!important;
  }
  .books-section{
    background:
      linear-gradient(180deg,rgba(250,244,240,.91),rgba(245,235,232,.95)),
      url("../images/painting-reading.webp") center/cover no-repeat!important;
  }
  .book30-section{
    background:
      linear-gradient(180deg,rgba(251,246,242,.91),rgba(244,233,228,.95)),
      url("../images/painting-book-us.webp") center/cover no-repeat!important;
  }
  .constellation-section{
    background:
      linear-gradient(160deg,rgba(45,32,45,.92),rgba(36,28,48,.94),rgba(58,39,63,.94)),
      url("../images/painting-divider.webp") center/cover no-repeat!important;
  }
  .together-section{
    background:
      linear-gradient(160deg,rgba(45,32,45,.90),rgba(52,36,50,.93),rgba(67,43,57,.94)),
      url("../images/painting-ideas.webp") center/cover no-repeat!important;
  }
  .envies-section,
  .intimate-section{
    background:
      linear-gradient(160deg,rgba(45,32,45,.90),rgba(47,33,47,.93),rgba(60,39,53,.95)),
      url("../images/painting-gifts.webp") center/cover no-repeat!important;
  }

  .app53-romance-layer{
    z-index:36!important;
  }
  .app53-float{
    filter:drop-shadow(0 3px 9px rgba(165,96,126,.15))!important;
  }
}

/* Respect accessibility: decorations disappear only when the OS explicitly asks for reduced motion. */
@media(prefers-reduced-motion:reduce){
  .app53-romance-layer,
  .floating-hearts-v15,
  .app54-scene-charm{
    display:none!important;
  }
}


/* =========================================================
   V69 HOTFIX — TITRE "DES IDÉES..." SANS CADRE
   ========================================================= */

/* An old V59 rule was still styling the wrapper around the title.
   Remove it completely so this heading behaves like "Nos dates". */
.together-section .section-title,
.together-section .section-title > div{
  width:min(1370px,100%)!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  filter:none!important;
}

/* No hidden pseudo-card behind the title wrapper either. */
.together-section .section-title > div::before{
  display:none!important;
  content:none!important;
}

/* Keep only the same subtle separator line language used elsewhere. */
.together-section .section-title > div::after{
  content:""!important;
  display:block!important;
  width:min(330px,55%)!important;
  height:1px!important;
  margin-top:24px!important;
  background:linear-gradient(90deg,rgba(239,191,208,.78),transparent)!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* The text itself also has no local plate/background. */
.together-section .section-title .eyebrow,
.together-section .section-title h2,
.together-section .section-title h2 em,
.together-section .section-title h2 span{
  padding:0!important;
  border:0!important;
  background:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
