/* ==========================================================
   Hydro Bot — thème de Noël (activé par assets/christmas.js)
   ========================================================== */
.xm{--xm-red:#e63946;--xm-green:#2ee6a6;--xm-gold:#ffd34d}
.xm body{
  background-image:
    radial-gradient(1100px 520px at 75% -12%,rgba(46,139,255,.25),transparent 62%),
    radial-gradient(800px 460px at -8% 22%,rgba(230,57,70,.12),transparent 60%),
    radial-gradient(900px 420px at 50% 112%,rgba(46,230,166,.10),transparent 60%);
}
/* Aurore boréale douce en haut de page */
.xm body::before{content:"";position:fixed;inset:-20% -10% auto -10%;height:60vh;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 60% at 25% 40%,rgba(46,230,166,.10),transparent 70%),radial-gradient(35% 55% at 70% 30%,rgba(120,140,255,.12),transparent 70%);
  filter:blur(30px);animation:xmAurora 18s ease-in-out infinite alternate}
@keyframes xmAurora{from{transform:translateX(-3%) skewX(-4deg)}to{transform:translateX(3%) skewX(4deg)}}

.xm .grad{background:linear-gradient(100deg,#fff 0%,#ffd1d6 26%,var(--cyan) 60%,var(--blue2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.xm ::selection{background:var(--xm-red)}

/* Neige posée sur le haut des cartes */
.xm .card,.xm .plan,.xm .co-card,.xm .fl-stat,.xm .pm-why,.xm .tl-card{position:relative}
.xm .card::after,.xm .plan::after,.xm .fl-stat::after{content:"";position:absolute;left:14px;right:14px;top:-5px;height:10px;border-radius:10px 10px 6px 6px;pointer-events:none;
  background:radial-gradient(12px 8px at 12% 100%,#fff 60%,transparent 62%),radial-gradient(16px 9px at 38% 100%,#fff 60%,transparent 62%),radial-gradient(10px 7px at 63% 100%,#fff 60%,transparent 62%),radial-gradient(18px 9px at 86% 100%,#fff 60%,transparent 62%),linear-gradient(#fff,#e8f2ff);
  box-shadow:0 2px 6px rgba(160,200,255,.35);opacity:.92;z-index:2}

/* Bonnet de Père Noël (sur le logo) */
.xm-wrap{position:relative;display:inline-block;line-height:0;flex:none}
.xm-hat{position:absolute;left:46%;top:-9%;width:40%;height:auto;transform:rotate(12deg);transform-origin:20% 90%;pointer-events:none;z-index:3;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}
.xm-wrap.xm-hero{display:block;width:min(430px,80%);position:relative;z-index:2;animation:float 6s ease-in-out infinite}
.xm-wrap.xm-hero>.mascot{width:100%;animation:none}
.xm-wrap.xm-hero .xm-hat{left:49%;top:11%;width:30%}
@media(max-width:600px){.xm-wrap.xm-hero{width:62%}}

/* Guirlande sur un fil */
.xm-lights{position:fixed;top:0;left:0;right:0;height:44px;z-index:70;pointer-events:none;overflow:hidden}
.xm-wire{position:absolute;top:0;left:0;display:block}
.xm-bulb{position:absolute;width:10px;height:15px;border-radius:50% 50% 55% 55%;background:radial-gradient(circle at 35% 30%,#fff 0 12%,var(--c) 45%);box-shadow:0 0 12px 3px var(--c),0 0 26px 6px color-mix(in srgb,var(--c) 35%,transparent);animation:xmBlink 2.6s ease-in-out infinite;transform-origin:50% 0}
.xm-bulb::before{content:"";position:absolute;left:2px;top:-4px;width:6px;height:5px;background:#2a3550;border-radius:2px}
@keyframes xmBlink{0%,100%{opacity:1;filter:brightness(1.15)}50%{opacity:.45;filter:brightness(.75)}}

/* Neige et étoiles (derrière les clics) */
#xm-snow{position:fixed;inset:0;width:100%;height:100%;z-index:45;pointer-events:none}

/* Barre de contrôle en bas à gauche : compte à rebours + musique + thème */
.xm-bar{position:fixed;left:14px;bottom:14px;z-index:80;display:flex;align-items:center;gap:6px;padding:6px 6px 6px 14px;border-radius:30px;font:600 .8rem/1 var(--font);color:#fff;
  background:linear-gradient(135deg,rgba(14,26,56,.92),rgba(40,12,24,.88));border:1px solid rgba(255,211,77,.35);backdrop-filter:blur(10px);box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 18px rgba(230,57,70,.18)}
.xm-bar.off{background:rgba(10,20,44,.85);border-color:var(--line-strong);color:var(--muted)}
.xm-count{white-space:nowrap;padding-right:4px}
.xm-btn{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:.2s}
.xm-btn svg{width:16px;height:16px}
.xm-btn:hover{background:rgba(255,255,255,.14);transform:translateY(-1px)}
.xm-music{color:var(--xm-gold)}
.xm-music.muted{color:var(--muted)}
.xm-theme.on{color:#bfe3ff}
.xm-bar.off .xm-theme{color:var(--muted)}

@media (max-width:520px){.xm-count{font-size:.72rem}.xm-bar{left:10px;bottom:10px}}
@media (prefers-reduced-motion:reduce){.xm-bulb,.xm body::before{animation:none}#xm-snow{display:none}}

/* ==========================================================
   Hiver : galaxie, glace et glaciers (sur toutes les pages, seulement en mode Noël)
   ========================================================== */
/* Fond galactique : nébuleuses + étoiles qui scintillent + étoiles filantes */
.xm-galaxy{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:radial-gradient(55% 40% at 82% 18%,rgba(140,90,255,.17),transparent 70%),radial-gradient(48% 36% at 12% 62%,rgba(40,160,255,.15),transparent 70%),radial-gradient(40% 30% at 58% 96%,rgba(255,90,210,.08),transparent 70%),radial-gradient(30% 22% at 40% 30%,rgba(90,220,255,.06),transparent 70%)}
.xm-galaxy::before,.xm-galaxy::after{content:"";position:absolute;inset:0;
  background-image:radial-gradient(1.2px 1.2px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 140px 80px,#cfe8ff,transparent),radial-gradient(1.5px 1.5px at 60px 160px,#fff,transparent),radial-gradient(1px 1px at 200px 200px,#e6d9ff,transparent),radial-gradient(1.3px 1.3px at 100px 230px,#bfe3ff,transparent),radial-gradient(1px 1px at 230px 20px,#fff,transparent);
  background-size:250px 250px;opacity:.55;animation:xmTwinkle 5s ease-in-out infinite alternate}
.xm-galaxy::after{background-size:370px 370px;background-position:90px 140px;opacity:.35;animation-duration:7s;animation-delay:-3s}
@keyframes xmTwinkle{from{opacity:.2}to{opacity:.7}}
.xm-galaxy i{position:absolute;top:var(--t);left:var(--l);width:130px;height:1.5px;border-radius:2px;opacity:0;transform:rotate(-28deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),#e8f6ff 70%,#fff);filter:drop-shadow(0 0 6px #9fd8ff);animation:xmShoot var(--d) linear infinite;animation-delay:var(--w)}
@keyframes xmShoot{0%{opacity:0;transform:rotate(-28deg) translateX(0)}3%{opacity:1}12%{opacity:0;transform:rotate(-28deg) translateX(-460px)}100%{opacity:0;transform:rotate(-28deg) translateX(-460px)}}

/* Glace : bord givré + stalactites sur les cartes et le menu */
.xm .card,.xm .plan,.xm .co-card,.xm .pm-why,.xm .fl-stat,.xm .tl-card{border-color:rgba(170,220,255,.24);box-shadow:inset 0 1px 0 rgba(225,245,255,.2),inset 0 0 34px rgba(140,205,255,.07)}
.xm-ice{position:absolute;left:10px;right:10px;top:0;height:22px;pointer-events:none;z-index:2;opacity:.85;filter:drop-shadow(0 2px 4px rgba(120,200,255,.35));
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='22' viewBox='0 0 60 22'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f4fcff'/%3E%3Cstop offset='1' stop-color='%2399d6ff' stop-opacity='.2'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 0h60v3c-2 0-3 1-4 3l-2 9-2-9c-1-2-2-3-4-3s-3 1-3.5 3L43 20l-1.5-14C41 4 40 3 38 3s-3 1-3.5 2.5L33 11l-1.5-5.5C31 4 30 3 28 3s-3 1-3.5 3L22 22l-2.5-16C19 4 18 3 16 3s-3 1-3.5 2.5L11 12 9.5 5.5C9 4 8 3 6 3S3 4 2.5 5.5L1 9 0 3z' fill='url(%23g)'/%3E%3C/svg%3E") repeat-x 0 0/60px 22px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='22' viewBox='0 0 60 22'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f4fcff'/%3E%3Cstop offset='1' stop-color='%2399d6ff' stop-opacity='.2'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 0h60v3c-2 0-3 1-4 3l-2 9-2-9c-1-2-2-3-4-3s-3 1-3.5 3L43 20l-1.5-14C41 4 40 3 38 3s-3 1-3.5 2.5L33 11l-1.5-5.5C31 4 30 3 28 3s-3 1-3.5 3L22 22l-2.5-16C19 4 18 3 16 3s-3 1-3.5 2.5L11 12 9.5 5.5C9 4 8 3 6 3S3 4 2.5 5.5L1 9 0 3z' fill='url(%23g)'/%3E%3C/svg%3E") repeat-x 0 0/60px 22px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='22' viewBox='0 0 60 22'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f4fcff'/%3E%3Cstop offset='1' stop-color='%2399d6ff' stop-opacity='.2'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 0h60v3c-2 0-3 1-4 3l-2 9-2-9c-1-2-2-3-4-3s-3 1-3.5 3L43 20l-1.5-14C41 4 40 3 38 3s-3 1-3.5 2.5L33 11l-1.5-5.5C31 4 30 3 28 3s-3 1-3.5 3L22 22l-2.5-16C19 4 18 3 16 3s-3 1-3.5 2.5L11 12 9.5 5.5C9 4 8 3 6 3S3 4 2.5 5.5L1 9 0 3z' fill='url(%23g)'/%3E%3C/svg%3E") repeat-x 0 0/60px 22px}
.nav>.xm-ice{top:100%;left:0;right:0;height:16px;background-size:48px 16px;-webkit-mask-size:48px 16px;mask-size:48px 16px;opacity:.7}
.xm .nav:not(.scrolled)>.xm-ice{opacity:0}
/* petits éclats de glace qui brillent */
.xm-ice::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%) no-repeat;background-size:40% 100%;animation:xmGlint 6s ease-in-out infinite}
@keyframes xmGlint{0%,70%{background-position:-60% 0}100%{background-position:160% 0}}

/* Glacier au-dessus du bas de page */
.xm footer{position:relative}
.xm-glacier{position:absolute;left:0;right:0;bottom:100%;height:92px;pointer-events:none;z-index:1}
.xm-glacier svg{display:block;width:100%;height:100%}

/* Titres et boutons givrés */
.xm .btn-primary{box-shadow:0 8px 30px rgba(29,107,255,.55),0 0 0 1px rgba(200,235,255,.35) inset}
.xm h1,.xm h2{text-shadow:0 0 22px rgba(150,215,255,.22)}

@media (max-width:600px){.xm-glacier{height:56px}.xm-galaxy i{width:80px}}
@media (prefers-reduced-motion:reduce){.xm-galaxy::before,.xm-galaxy::after,.xm-galaxy i,.xm-ice::after{animation:none}.xm-galaxy i{display:none}}

/* ==========================================================
   Nouvel An : feux d'artifice + gros compte à rebours + « Bonne année »
   ========================================================== */
#xm-fw{position:fixed;inset:0;width:100%;height:100%;z-index:44;pointer-events:none;opacity:.9}
.xm-ny{position:fixed;left:50%;top:42%;z-index:90;pointer-events:none;text-align:center;width:min(92vw,900px);opacity:0;transform:translate(-50%,-50%);
  font:800 clamp(2.3rem,8vw,5.6rem)/1.05 var(--font-head);color:#fff;letter-spacing:-.02em;
  text-shadow:0 0 28px rgba(255,211,77,.75),0 0 70px rgba(90,184,255,.55),0 4px 18px rgba(0,0,0,.6)}
.xm-ny.num{font-size:clamp(5rem,18vw,11rem);color:#ffd34d}
.xm-ny small{display:block;margin-top:14px;font:600 clamp(1rem,2.6vw,1.4rem)/1.35 var(--font);color:#dff1ff;letter-spacing:0;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.xm-ny.in{animation:xmNyIn .7s cubic-bezier(.2,1.5,.4,1) forwards}
.xm-ny.in.out{animation:xmNyOut .8s ease forwards}
@keyframes xmNyIn{from{opacity:0;transform:translate(-50%,-50%) scale(.35)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes xmNyOut{from{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.35)}}
.xm-count{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.xm-ny.in,.xm-ny.in.out{animation:none;opacity:1;transform:translate(-50%,-50%)}.xm-ny.in.out{opacity:0}}

/* Chapeau de fête du Nouvel An (remplace le bonnet du 26 décembre au 31 janvier) */
.xm-hat.xm-party{left:50%;top:-34%;width:34%;transform:rotate(18deg);transform-origin:50% 95%}
.xm-wrap.xm-hero .xm-hat.xm-party{left:55%;top:-2%;width:22%}
.xm-scene{z-index:1}
