/* Thèmes saisonniers réalistes et intégrés, version 78 */
html{
  --site-theme-accent:#fff;
  --site-theme-accent-2:#aaa;
  --site-theme-deep:#050505;
  --site-theme-surface:rgba(18,18,18,.78);
  --site-theme-surface-strong:rgba(28,28,28,.88);
  --site-theme-line:rgba(255,255,255,.14);
  --site-theme-glow:rgba(255,255,255,.12);
}
html[data-site-theme="summer"]{
  --site-theme-accent:#63e6f5;
  --site-theme-accent-2:#ffd576;
  --site-theme-deep:#04131b;
  --site-theme-surface:rgba(4,28,39,.72);
  --site-theme-surface-strong:rgba(7,43,56,.84);
  --site-theme-line:rgba(139,238,248,.25);
  --site-theme-glow:rgba(80,218,236,.2);
}
html[data-site-theme="halloween"]{
  --site-theme-accent:#ff9a43;
  --site-theme-accent-2:#c37cff;
  --site-theme-deep:#120811;
  --site-theme-surface:rgba(25,12,24,.76);
  --site-theme-surface-strong:rgba(42,18,38,.87);
  --site-theme-line:rgba(255,154,67,.22);
  --site-theme-glow:rgba(255,132,42,.18);
}
html[data-site-theme="christmas"]{
  --site-theme-accent:#ff6070;
  --site-theme-accent-2:#70dea2;
  --site-theme-deep:#07120f;
  --site-theme-surface:rgba(8,23,27,.77);
  --site-theme-surface-strong:rgba(12,35,38,.88);
  --site-theme-line:rgba(166,233,202,.22);
  --site-theme-glow:rgba(255,92,108,.18);
}
html[data-site-theme="easter"]{
  --site-theme-accent:#ff9fd2;
  --site-theme-accent-2:#91e5ce;
  --site-theme-deep:#141019;
  --site-theme-surface:rgba(22,17,27,.75);
  --site-theme-surface-strong:rgba(39,29,45,.86);
  --site-theme-line:rgba(255,205,233,.23);
  --site-theme-glow:rgba(255,160,212,.18);
}

html:not([data-site-theme="default"]) body{
  position:relative;
  isolation:isolate;
  min-height:100vh;
  color:#fff;
  background-color:var(--site-theme-deep)!important;
  background-repeat:no-repeat!important;
  background-position:center top!important;
  background-size:cover!important;
  background-attachment:fixed!important;
}
html[data-site-theme="summer"] body{background-image:url("themes/summer-v78.webp")!important}
html[data-site-theme="halloween"] body{background-image:url("themes/halloween-v78.webp")!important}
html[data-site-theme="christmas"] body{background-image:url("themes/christmas-v78.webp")!important}
html[data-site-theme="easter"] body{background-image:url("themes/easter-v78.webp")!important}

html:not([data-site-theme="default"]) body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 30%,rgba(0,0,0,.2) 0%,rgba(0,0,0,.48) 45%,rgba(0,0,0,.72) 100%),
    linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.46) 52%,rgba(0,0,0,.76));
}
html[data-site-theme="summer"] body::before{
  background:
    radial-gradient(ellipse at 50% 27%,rgba(3,20,30,.25) 0%,rgba(2,15,23,.48) 48%,rgba(1,9,14,.75) 100%),
    linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.42) 60%,rgba(0,0,0,.73));
}
html[data-site-theme="easter"] body::before{
  background:
    radial-gradient(ellipse at 50% 28%,rgba(20,14,25,.18) 0%,rgba(20,14,25,.47) 48%,rgba(13,8,16,.72) 100%),
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.38) 56%,rgba(0,0,0,.68));
}

html:not([data-site-theme="default"]) body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:60;
  pointer-events:none;
  opacity:.16;
  background-repeat:repeat;
}
html[data-site-theme="summer"] body::after{
  background-image:radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 2px),radial-gradient(circle,rgba(255,228,145,.9) 0 1.5px,transparent 2.5px);
  background-size:160px 160px,240px 240px;
  background-position:20px 40px,95px 130px;
  animation:themeSummerLight 18s ease-in-out infinite alternate;
}
html[data-site-theme="halloween"] body::after{
  background-image:radial-gradient(ellipse at center,rgba(229,102,39,.7) 0 3px,transparent 4px),radial-gradient(ellipse at center,rgba(140,73,46,.65) 0 2px,transparent 3px);
  background-size:240px 270px,330px 300px;
  background-position:20px -50px,130px -90px;
  opacity:.11;
  animation:themeLeaves 26s linear infinite;
}
html[data-site-theme="christmas"] body::after{
  background-image:radial-gradient(circle,#fff 0 2px,transparent 3px),radial-gradient(circle,#e6f5ff 0 3px,transparent 4px),radial-gradient(circle,#fff 0 1px,transparent 2px);
  background-size:120px 120px,180px 180px,78px 78px;
  background-position:10px -20px,62px -90px,30px -30px;
  opacity:.28;
  animation:themeSnow 18s linear infinite;
}
html[data-site-theme="easter"] body::after{
  background-image:radial-gradient(ellipse at center,#ffcde4 0 2px,transparent 3px),radial-gradient(ellipse at center,#fff0a5 0 2px,transparent 3px),radial-gradient(ellipse at center,#a7ebd7 0 2px,transparent 3px);
  background-size:210px 250px,280px 290px,340px 270px;
  background-position:15px -30px,90px 10px,160px -70px;
  opacity:.1;
  animation:themePetals 28s linear infinite;
}
@keyframes themeSnow{to{background-position:10px 980px,62px 840px,30px 720px}}
@keyframes themePetals{to{background-position:340px 980px,-200px 930px,470px 900px}}
@keyframes themeLeaves{to{background-position:390px 980px,-260px 940px}}
@keyframes themeSummerLight{to{background-position:85px 5px,25px 175px}}

html:not([data-site-theme="default"]) .topbar,
html:not([data-site-theme="default"]) .game-header{
  position:relative;
  background:color-mix(in srgb,var(--site-theme-deep) 80%,transparent)!important;
  border-color:var(--site-theme-line)!important;
  box-shadow:0 12px 38px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(18px) saturate(1.08);
}
html:not([data-site-theme="default"]) .topbar.scrolled{background:color-mix(in srgb,var(--site-theme-deep) 93%,transparent)!important}
html[data-site-theme="christmas"] .topbar::after,
html[data-site-theme="christmas"] .game-header::after{
  content:"";position:absolute;left:0;right:0;top:-7px;height:14px;pointer-events:none;
  background:
    radial-gradient(circle at 16px 7px,#ff5f6d 0 3px,transparent 4px) 0 0/62px 14px repeat-x,
    radial-gradient(circle at 47px 7px,#ffe078 0 3px,transparent 4px) 0 0/62px 14px repeat-x;
  filter:drop-shadow(0 0 7px rgba(255,218,100,.5));
}
html[data-site-theme="halloween"] .topbar::after,
html[data-site-theme="halloween"] .game-header::after{
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:5px;pointer-events:none;
  background:linear-gradient(90deg,#ff8b31 0 14px,#552164 14px 28px,#1f121e 28px 42px) 0 0/42px 5px repeat-x;
}
html[data-site-theme="easter"] .topbar::after,
html[data-site-theme="easter"] .game-header::after{
  content:"";position:absolute;left:0;right:0;top:-5px;height:10px;pointer-events:none;
  background:radial-gradient(ellipse at center,#ffd2e8 0 4px,transparent 5px) 0 0/34px 10px repeat-x;
  opacity:.82;
}

html:not([data-site-theme="default"]) h1,
html:not([data-site-theme="default"]) .hero-title-premium{
  background:linear-gradient(180deg,#fff 10%,var(--site-theme-accent) 76%,var(--site-theme-accent-2) 132%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  text-shadow:none!important;
}
html:not([data-site-theme="default"]) .eyebrow,
html:not([data-site-theme="default"]) .dashboard-kicker,
html:not([data-site-theme="default"]) .section-kicker{color:var(--site-theme-accent)!important}
html:not([data-site-theme="default"]) .logo-halo,
html:not([data-site-theme="default"]) .game-brand img,
html:not([data-site-theme="default"]) .brand img{border-color:var(--site-theme-line)!important;box-shadow:0 0 34px var(--site-theme-glow)!important}
html:not([data-site-theme="default"]) nav a::after{background:var(--site-theme-accent)!important}
html:not([data-site-theme="default"]) ::selection{background:var(--site-theme-accent);color:#061015}

html:not([data-site-theme="default"]) .primary,
html:not([data-site-theme="default"]) .primary-button,
html:not([data-site-theme="default"]) .album-tabs button.active,
html:not([data-site-theme="default"]) .mode-button.is-active,
html:not([data-site-theme="default"]) .admin-dialog.mode-admin .admin-tabs .tab.active{
  background:linear-gradient(135deg,var(--site-theme-accent),var(--site-theme-accent-2))!important;
  border-color:color-mix(in srgb,var(--site-theme-accent) 65%,#fff)!important;
  color:#071013!important;
  box-shadow:0 12px 30px var(--site-theme-glow)!important;
}
html:not([data-site-theme="default"]) input:focus,
html:not([data-site-theme="default"]) textarea:focus,
html:not([data-site-theme="default"]) select:focus{border-color:var(--site-theme-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--site-theme-accent) 18%,transparent)!important}

html:not([data-site-theme="default"]) .glass,
html:not([data-site-theme="default"]) .member-card,
html:not([data-site-theme="default"]) .admin-surface,
html:not([data-site-theme="default"]) .admin-item,
html:not([data-site-theme="default"]) .game-shell,
html:not([data-site-theme="default"]) .mine-shell,
html:not([data-site-theme="default"]) .memory-shell,
html:not([data-site-theme="default"]) .leaderboard,
html:not([data-site-theme="default"]) .best-panel,
html:not([data-site-theme="default"]) .game-card,
html:not([data-site-theme="default"]) .overlay-card,
html:not([data-site-theme="default"]) .album-modal-content,
html:not([data-site-theme="default"]) .account-panel,
html:not([data-site-theme="default"]) .theme-admin-card,
html:not([data-site-theme="default"]) .section-card,
html:not([data-site-theme="default"]) .dashboard-card,
html:not([data-site-theme="default"]) .lightbox-shell{
  background:linear-gradient(145deg,var(--site-theme-surface-strong),var(--site-theme-surface))!important;
  border-color:var(--site-theme-line)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.07),0 24px 65px rgba(0,0,0,.34)!important;
  backdrop-filter:blur(18px) saturate(1.08);
}
html:not([data-site-theme="default"]) .glass:hover,
html:not([data-site-theme="default"]) .member-card:hover,
html:not([data-site-theme="default"]) .game-card:hover{border-color:var(--site-theme-accent)!important;box-shadow:0 22px 60px var(--site-theme-glow)!important}
html:not([data-site-theme="default"]) .album-date-heading,
html:not([data-site-theme="default"]) .lightbox-photo-date,
html:not([data-site-theme="default"]) .album-count,
html:not([data-site-theme="default"]) .lightbox-photo-counter{border-color:var(--site-theme-line)!important;background:color-mix(in srgb,var(--site-theme-deep) 88%,transparent)!important;color:#fff!important}
html:not([data-site-theme="default"]) .record-row:first-child{border-color:var(--site-theme-accent)!important;background:color-mix(in srgb,var(--site-theme-accent) 10%,transparent)!important}
html:not([data-site-theme="default"]) .record-value{color:var(--site-theme-accent)!important}
html:not([data-site-theme="default"]) *{scrollbar-color:var(--site-theme-accent) rgba(255,255,255,.05)}

/* Aperçus et choix dans l'administration */
.theme-admin-card{margin:24px 0;padding:22px;border:1px solid var(--line,rgba(255,255,255,.14));border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018))}
.theme-admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.theme-admin-heading h3{margin:0 0 7px;font-size:1.55rem}
.theme-admin-heading p:not(.eyebrow){margin:0;color:#969696;line-height:1.55}
.theme-current-badge{flex:0 0 auto;padding:9px 13px;border:1px solid var(--site-theme-line);border-radius:999px;background:var(--site-theme-surface);color:var(--site-theme-accent);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.theme-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.theme-choice{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr);grid-template-rows:auto auto;column-gap:13px;align-items:center;min-width:0;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(0,0,0,.22);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.theme-choice:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.28)}
.theme-choice.is-selected{border-color:var(--site-theme-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--site-theme-accent) 18%,transparent),0 16px 36px rgba(0,0,0,.3)}
.theme-choice input{position:absolute;top:10px;right:10px;width:18px;height:18px;accent-color:var(--site-theme-accent)}
.theme-choice-preview{grid-row:1/3;display:block;position:relative;width:78px;height:58px;overflow:hidden;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#080808 center/cover no-repeat}
.theme-choice-preview i{display:none}
.theme-choice strong{align-self:end;min-width:0;padding-right:20px;font-size:.94rem}
.theme-choice small{align-self:start;color:#7f7f7f;line-height:1.35}
.theme-choice-default .theme-choice-preview{background-image:linear-gradient(145deg,#222,#050505)}
.theme-choice-summer .theme-choice-preview{background-image:url("themes/summer-v78.webp")}
.theme-choice-halloween .theme-choice-preview{background-image:url("themes/halloween-v78.webp")}
.theme-choice-christmas .theme-choice-preview{background-image:url("themes/christmas-v78.webp")}
.theme-choice-easter .theme-choice-preview{background-image:url("themes/easter-v78.webp")}
.theme-choice-auto .theme-choice-preview{background-image:conic-gradient(from 45deg,#0aa4c2,#ff8b2f,#b72037,#ff9dce,#0aa4c2)}
.theme-preview-help{margin:14px 0 0;color:#777;font-size:.82rem;line-height:1.5}

@media(max-width:900px){.theme-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  html:not([data-site-theme="default"]) body{background-attachment:scroll!important;background-size:auto 100svh!important;background-position:center top!important}
  html:not([data-site-theme="default"]) body::after{opacity:.08}
  html[data-site-theme="christmas"] body::after{opacity:.18}
  .theme-admin-card{padding:16px;border-radius:19px}
  .theme-admin-heading{display:block}
  .theme-current-badge{display:inline-flex;margin-top:12px}
  .theme-choice-grid{grid-template-columns:1fr}
  .theme-choice{grid-template-columns:68px minmax(0,1fr)}
  .theme-choice-preview{width:68px;height:52px}
}
@media(prefers-reduced-motion:reduce){.theme-choice{transition:none}html:not([data-site-theme="default"]) body::after{animation:none!important}}


/* Version 79 : détails premium + mobile amélioré */
html:not([data-site-theme="default"]) .hero,
html:not([data-site-theme="default"]) .glass,
html:not([data-site-theme="default"]) .section-card,
html:not([data-site-theme="default"]) .dashboard-card,
html:not([data-site-theme="default"]) .game-card,
html:not([data-site-theme="default"]) .album-modal-content,
html:not([data-site-theme="default"]) .lightbox-shell,
html:not([data-site-theme="default"]) .topbar,
html:not([data-site-theme="default"]) .game-header,
html:not([data-site-theme="default"]) .primary,
html:not([data-site-theme="default"]) .primary-button,
html:not([data-site-theme="default"]) .ghost,
html:not([data-site-theme="default"]) .header-button,
html:not([data-site-theme="default"]) .action-button{
  position:relative;
  overflow:hidden;
}

html:not([data-site-theme="default"]) .hero{
  border-color:var(--site-theme-line)!important;
  box-shadow:0 30px 80px rgba(0,0,0,.28)!important;
}
html:not([data-site-theme="default"]) .hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 24%,transparent 72%,rgba(0,0,0,.18));
  opacity:.95;
}
html:not([data-site-theme="default"]) .glass::before,
html:not([data-site-theme="default"]) .section-card::before,
html:not([data-site-theme="default"]) .dashboard-card::before,
html:not([data-site-theme="default"]) .game-card::before,
html:not([data-site-theme="default"]) .album-modal-content::before,
html:not([data-site-theme="default"]) .lightbox-shell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 24%,transparent 78%,rgba(255,255,255,.03));
}
html:not([data-site-theme="default"]) .primary::before,
html:not([data-site-theme="default"]) .primary-button::before,
html:not([data-site-theme="default"]) .ghost::before,
html:not([data-site-theme="default"]) .header-button::before,
html:not([data-site-theme="default"]) .action-button::before{
  content:"";
  position:absolute;
  inset:-40% auto auto -12%;
  width:45%;
  height:180%;
  transform:rotate(22deg);
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.06) 28%,transparent 60%);
  opacity:.45;
}

@keyframes hypnosTwinkle{0%,100%{opacity:.48;filter:drop-shadow(0 0 3px rgba(255,255,255,.3))}50%{opacity:1;filter:drop-shadow(0 0 12px rgba(255,255,255,.75))}}
@keyframes hypnosSway{0%,100%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(-4px) rotate(-1.2deg)}75%{transform:translateX(4px) rotate(1.2deg)}}
@keyframes hypnosPulseGlow{0%,100%{box-shadow:0 0 0 rgba(255,255,255,0),0 12px 30px var(--site-theme-glow)!important}50%{box-shadow:0 0 18px color-mix(in srgb,var(--site-theme-accent) 28%,transparent),0 12px 34px var(--site-theme-glow)!important}}
@keyframes hypnosFlickerOrange{0%,100%{filter:drop-shadow(0 0 4px rgba(255,146,51,.2))}35%{filter:drop-shadow(0 0 12px rgba(255,146,51,.62))}70%{filter:drop-shadow(0 0 7px rgba(204,120,255,.3))}}

/* SUMMER */
html[data-site-theme="summer"] .topbar::before,
html[data-site-theme="summer"] .game-header::before{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-8px;height:14px;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 120%,rgba(255,255,255,.95) 0 8px,transparent 9px) 0 0/36px 14px repeat-x,
    linear-gradient(90deg,rgba(114,233,247,.34),rgba(255,222,131,.24));
}
html[data-site-theme="summer"] .hero::after{
  content:"";
  position:absolute;
  inset:auto 0 10px 0;
  height:26px;
  pointer-events:none;
  background:
    radial-gradient(circle at 14% 65%,rgba(255,240,179,.95) 0 6px,transparent 7px),
    radial-gradient(circle at 84% 58%,rgba(255,238,179,.95) 0 5px,transparent 6px),
    radial-gradient(circle at 30% 78%,rgba(131,234,244,.85) 0 5px,transparent 6px),
    linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);
  opacity:.72;
}
html[data-site-theme="summer"] .primary,
html[data-site-theme="summer"] .primary-button{animation:hypnosPulseGlow 6s ease-in-out infinite}
html[data-site-theme="summer"] .glass,
html[data-site-theme="summer"] .section-card,
html[data-site-theme="summer"] .dashboard-card,
html[data-site-theme="summer"] .game-card{
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 24px 65px rgba(0,0,0,.30),0 0 0 1px rgba(144,239,247,.05)!important;
}

/* HALLOWEEN */
html[data-site-theme="halloween"] .topbar::before,
html[data-site-theme="halloween"] .game-header::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:36px;
  pointer-events:none;
  background:
    radial-gradient(circle at 6% 12px,rgba(255,146,62,.92) 0 3px,transparent 4px),
    radial-gradient(circle at 18% 22px,rgba(196,124,255,.82) 0 2.5px,transparent 3.5px),
    radial-gradient(circle at 77% 11px,rgba(255,146,62,.92) 0 3px,transparent 4px),
    radial-gradient(circle at 91% 24px,rgba(196,124,255,.82) 0 2.5px,transparent 3.5px),
    linear-gradient(180deg,rgba(0,0,0,.25),transparent 74%);
  animation:hypnosFlickerOrange 7s ease-in-out infinite;
}
html[data-site-theme="halloween"] .hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 10% 92%,rgba(255,133,39,.16) 0 40px,transparent 42px),
    radial-gradient(circle at 90% 90%,rgba(255,133,39,.13) 0 42px,transparent 44px),
    linear-gradient(180deg,transparent 0 70%,rgba(255,122,48,.05));
}
html[data-site-theme="halloween"] .glass::after,
html[data-site-theme="halloween"] .section-card::after,
html[data-site-theme="halloween"] .dashboard-card::after,
html[data-site-theme="halloween"] .game-card::after{
  content:"";
  position:absolute;
  right:10px;top:8px;width:46px;height:46px;
  pointer-events:none;opacity:.16;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,142,45,.85) 0 4px,transparent 5px),
    radial-gradient(circle at 28% 26%,rgba(255,142,45,.55) 0 2px,transparent 3px),
    radial-gradient(circle at 74% 31%,rgba(200,122,255,.45) 0 2px,transparent 3px);
  filter:blur(.2px);
}
html[data-site-theme="halloween"] .primary,
html[data-site-theme="halloween"] .primary-button{animation:hypnosFlickerOrange 5s ease-in-out infinite}

/* CHRISTMAS */
html[data-site-theme="christmas"] .topbar::before,
html[data-site-theme="christmas"] .game-header::before{
  content:"";
  position:absolute;
  left:0;right:0;top:-2px;height:38px;
  pointer-events:none;
  background:
    radial-gradient(circle at 5% 13px,#ff5e6f 0 4px,transparent 5px),
    radial-gradient(circle at 12% 24px,#ffe17b 0 4px,transparent 5px),
    radial-gradient(circle at 21% 16px,#77e3a8 0 4px,transparent 5px),
    radial-gradient(circle at 30% 23px,#83c8ff 0 4px,transparent 5px),
    radial-gradient(circle at 39% 14px,#ff5e6f 0 4px,transparent 5px),
    radial-gradient(circle at 48% 25px,#ffe17b 0 4px,transparent 5px),
    radial-gradient(circle at 57% 15px,#77e3a8 0 4px,transparent 5px),
    radial-gradient(circle at 66% 23px,#83c8ff 0 4px,transparent 5px),
    radial-gradient(circle at 75% 14px,#ff5e6f 0 4px,transparent 5px),
    radial-gradient(circle at 84% 24px,#ffe17b 0 4px,transparent 5px),
    radial-gradient(circle at 93% 16px,#77e3a8 0 4px,transparent 5px),
    linear-gradient(180deg,transparent 0 8px,rgba(33,74,51,.95) 8px 10px,transparent 10px),
    radial-gradient(ellipse at 50% 100%,rgba(255,255,255,.14),transparent 65%);
  filter:drop-shadow(0 0 10px rgba(255,235,139,.45));
  animation:hypnosTwinkle 4s ease-in-out infinite;
}
html[data-site-theme="christmas"] .topbar::after,
html[data-site-theme="christmas"] .game-header::after{
  height:20px;top:-12px;
  background:
    radial-gradient(circle at 16px 10px,#ff5f6d 0 4px,transparent 5px) 0 0/62px 20px repeat-x,
    radial-gradient(circle at 47px 10px,#ffe078 0 4px,transparent 5px) 0 0/62px 20px repeat-x,
    radial-gradient(circle at 77px 10px,#6fe0a2 0 4px,transparent 5px) 0 0/124px 20px repeat-x;
  opacity:.95;
}
html[data-site-theme="christmas"] .hero::after{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:110px;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),transparent 60%),
    linear-gradient(90deg,transparent 10%,rgba(33,74,51,.95) 10% 11%,transparent 11% 28%,rgba(33,74,51,.95) 28% 29%,transparent 29% 73%,rgba(33,74,51,.95) 73% 74%,transparent 74% 90%,rgba(33,74,51,.95) 90% 91%,transparent 91%),
    radial-gradient(circle at 10% 58px,#ff5e6f 0 9px,transparent 10px),
    radial-gradient(circle at 28% 76px,#ffe17b 0 10px,transparent 11px),
    radial-gradient(circle at 73% 76px,#77e3a8 0 10px,transparent 11px),
    radial-gradient(circle at 90% 58px,#83c8ff 0 9px,transparent 10px);
  filter:drop-shadow(0 0 9px rgba(255,232,140,.42));
  animation:hypnosSway 9s ease-in-out infinite;
}
html[data-site-theme="christmas"] .primary,
html[data-site-theme="christmas"] .primary-button,
html[data-site-theme="christmas"] .glass,
html[data-site-theme="christmas"] .section-card,
html[data-site-theme="christmas"] .dashboard-card,
html[data-site-theme="christmas"] .game-card{
  box-shadow:inset 0 1px rgba(255,255,255,.10),0 24px 65px rgba(0,0,0,.32),0 0 16px rgba(255,228,132,.06)!important;
}
html[data-site-theme="christmas"] .glass::after,
html[data-site-theme="christmas"] .section-card::after,
html[data-site-theme="christmas"] .dashboard-card::after,
html[data-site-theme="christmas"] .game-card::after{
  content:"";
  position:absolute;
  inset:auto 12px 10px auto;
  width:58px;height:18px;
  pointer-events:none;opacity:.55;
  background:
    radial-gradient(circle at 9px 9px,#ff5f6d 0 4px,transparent 5px),
    radial-gradient(circle at 29px 9px,#ffe078 0 4px,transparent 5px),
    radial-gradient(circle at 49px 9px,#70dea2 0 4px,transparent 5px);
  animation:hypnosTwinkle 5s ease-in-out infinite;
}

/* EASTER */
html[data-site-theme="easter"] .topbar::before,
html[data-site-theme="easter"] .game-header::before{
  content:"";
  position:absolute;
  left:0;right:0;top:-2px;height:30px;
  pointer-events:none;
  background:
    radial-gradient(circle at 8% 20px,#ffd4e8 0 5px,transparent 6px),
    radial-gradient(circle at 16% 12px,#fff1a9 0 5px,transparent 6px),
    radial-gradient(circle at 24% 20px,#a6ebd8 0 5px,transparent 6px),
    radial-gradient(circle at 76% 20px,#ffd4e8 0 5px,transparent 6px),
    radial-gradient(circle at 84% 12px,#fff1a9 0 5px,transparent 6px),
    radial-gradient(circle at 92% 20px,#a6ebd8 0 5px,transparent 6px),
    linear-gradient(180deg,rgba(255,255,255,.18),transparent 65%);
}
html[data-site-theme="easter"] .hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 14%,rgba(255,211,232,.55) 0 8px,transparent 9px),
    radial-gradient(circle at 16% 18%,rgba(255,240,169,.55) 0 7px,transparent 8px),
    radial-gradient(circle at 83% 12%,rgba(167,235,215,.55) 0 7px,transparent 8px),
    radial-gradient(circle at 87% 17%,rgba(255,211,232,.55) 0 8px,transparent 9px);
  opacity:.7;
}
html[data-site-theme="easter"] .glass::after,
html[data-site-theme="easter"] .section-card::after,
html[data-site-theme="easter"] .dashboard-card::after,
html[data-site-theme="easter"] .game-card::after{
  content:"";
  position:absolute;
  right:12px;bottom:10px;width:52px;height:18px;
  pointer-events:none;opacity:.42;
  background:
    radial-gradient(ellipse at center,#ffd4e8 0 5px,transparent 6px) 0 0/18px 18px no-repeat,
    radial-gradient(ellipse at center,#fff1a9 0 5px,transparent 6px) 17px 0/18px 18px no-repeat,
    radial-gradient(ellipse at center,#a6ebd8 0 5px,transparent 6px) 34px 0/18px 18px no-repeat;
}

/* Lightbox/header badges a bit more visible */
html:not([data-site-theme="default"]) .lightbox-photo-date,
html:not([data-site-theme="default"]) .lightbox-photo-counter,
html:not([data-site-theme="default"]) .album-date-heading{
  backdrop-filter:blur(14px) saturate(1.06);
}

/* Mobile : montrer davantage le décor */
@media(max-width:700px){
  html:not([data-site-theme="default"]) body{
    background-size:cover!important;
    background-attachment:scroll!important;
  }
  html:not([data-site-theme="default"]) body::before{opacity:.85}
  html:not([data-site-theme="default"]) .hero{
    background:linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.22))!important;
    backdrop-filter:blur(6px) saturate(1.02);
  }
  html[data-site-theme="summer"] body{background-position:60% top!important}
  html[data-site-theme="halloween"] body{background-position:52% top!important}
  html[data-site-theme="christmas"] body{background-position:60% top!important}
  html[data-site-theme="easter"] body{background-position:56% top!important}
  html[data-site-theme="christmas"] .hero::after{height:86px;background-size:auto}
  html[data-site-theme="christmas"] .topbar::before,
  html[data-site-theme="christmas"] .game-header::before,
  html[data-site-theme="christmas"] .topbar::after,
  html[data-site-theme="christmas"] .game-header::after{transform:scale(.92);transform-origin:top center}
}
@media(max-width:520px){
  html:not([data-site-theme="default"]) body::before{
    background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.34) 50%,rgba(0,0,0,.58));
  }
  html[data-site-theme="summer"] body{background-position:64% top!important}
  html[data-site-theme="halloween"] body{background-position:54% top!important}
  html[data-site-theme="christmas"] body{background-position:64% top!important}
  html[data-site-theme="easter"] body{background-position:58% top!important}
  html[data-site-theme="christmas"] .hero::after{height:72px;opacity:.95}
  html[data-site-theme="christmas"] .glass::after,
  html[data-site-theme="christmas"] .section-card::after,
  html[data-site-theme="christmas"] .dashboard-card::after,
  html[data-site-theme="christmas"] .game-card::after{width:44px}
  html[data-site-theme="summer"] .hero::after,
  html[data-site-theme="easter"] .hero::after,
  html[data-site-theme="halloween"] .hero::after{opacity:.55}
}
@media(prefers-reduced-motion:reduce){
  html[data-site-theme="summer"] .primary,
  html[data-site-theme="summer"] .primary-button,
  html[data-site-theme="halloween"] .primary,
  html[data-site-theme="halloween"] .primary-button,
  html[data-site-theme="christmas"] .primary,
  html[data-site-theme="christmas"] .primary-button,
  html[data-site-theme="christmas"] .topbar::before,
  html[data-site-theme="christmas"] .game-header::before,
  html[data-site-theme="christmas"] .glass::after,
  html[data-site-theme="christmas"] .section-card::after,
  html[data-site-theme="christmas"] .dashboard-card::after,
  html[data-site-theme="christmas"] .game-card::after,
  html[data-site-theme="christmas"] .hero::after,
  html[data-site-theme="halloween"] .topbar::before,
  html[data-site-theme="halloween"] .game-header::before{animation:none!important}
}


/* Version 83 : correction Noël hero + thème dans galerie et visionneuse */
html[data-site-theme="christmas"] .hero::after{
  content:none!important;
  background:none!important;
  filter:none!important;
  animation:none!important;
}

/* Le topbar garde seulement sa guirlande propre */
html[data-site-theme="christmas"] .topbar,
html[data-site-theme="christmas"] .game-header{
  overflow:visible!important;
}

/* Dialogues galerie + lightbox réellement thémés */
html:not([data-site-theme="default"]) .album-dialog,
html:not([data-site-theme="default"]) .lightbox-dialog{
  position:relative;
  background:linear-gradient(145deg,var(--site-theme-surface-strong),var(--site-theme-surface))!important;
  border:1px solid var(--site-theme-line)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 28px 80px rgba(0,0,0,.46),0 0 0 1px rgba(255,255,255,.03)!important;
  color:#fff!important;
  overflow:visible!important;
  backdrop-filter:blur(18px) saturate(1.08);
}
html:not([data-site-theme="default"]) .album-dialog::backdrop,
html:not([data-site-theme="default"]) .lightbox-dialog::backdrop{
  background:color-mix(in srgb,var(--site-theme-deep) 72%,rgba(0,0,0,.72))!important;
  backdrop-filter:blur(8px) saturate(1.05);
}
html:not([data-site-theme="default"]) .album-dialog-head,
html:not([data-site-theme="default"]) .album-dialog-toolbar,
html:not([data-site-theme="default"]) .lightbox-tools,
html:not([data-site-theme="default"]) .lightbox-social,
html:not([data-site-theme="default"]) .lightbox-thumbs{
  border-color:var(--site-theme-line)!important;
}
html:not([data-site-theme="default"]) .album-dialog-grid,
html:not([data-site-theme="default"]) .lightbox-stage{
  background:color-mix(in srgb,var(--site-theme-deep) 42%,transparent)!important;
  border-radius:24px;
}
html:not([data-site-theme="default"]) .album-dialog .ghost,
html:not([data-site-theme="default"]) .album-dialog .ghost.small,
html:not([data-site-theme="default"]) .lightbox-dialog .ghost,
html:not([data-site-theme="default"]) .lightbox-dialog .ghost.small,
html:not([data-site-theme="default"]) .lightbox-close,
html:not([data-site-theme="default"]) .lightbox-nav,
html:not([data-site-theme="default"]) .album-dialog .close,
html:not([data-site-theme="default"]) .lightbox-dialog .close{
  background:color-mix(in srgb,var(--site-theme-deep) 88%,transparent)!important;
  border-color:var(--site-theme-line)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(0,0,0,.24)!important;
}
html:not([data-site-theme="default"]) .album-dialog .ghost:hover,
html:not([data-site-theme="default"]) .lightbox-dialog .ghost:hover,
html:not([data-site-theme="default"]) .lightbox-nav:hover,
html:not([data-site-theme="default"]) .album-dialog .close:hover,
html:not([data-site-theme="default"]) .lightbox-dialog .close:hover{
  border-color:var(--site-theme-accent)!important;
  box-shadow:0 12px 28px var(--site-theme-glow)!important;
}
html:not([data-site-theme="default"]) .lightbox-thumbs .thumb,
html:not([data-site-theme="default"]) .lightbox-thumbs button,
html:not([data-site-theme="default"]) .album-dialog-grid > *{
  border-color:var(--site-theme-line)!important;
}
html:not([data-site-theme="default"]) .lightbox-thumbs .is-active,
html:not([data-site-theme="default"]) .lightbox-thumbs .active,
html:not([data-site-theme="default"]) .album-photo.is-active,
html:not([data-site-theme="default"]) .album-media.is-active{
  box-shadow:0 0 0 2px var(--site-theme-accent),0 14px 30px var(--site-theme-glow)!important;
}

/* Noël dans la galerie et la visionneuse */
html[data-site-theme="christmas"] .album-dialog::before,
html[data-site-theme="christmas"] .lightbox-dialog::before{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  top:-10px;
  height:20px;
  pointer-events:none;
  z-index:3;
  background:
    radial-gradient(circle at 16px 10px,#ff5f6d 0 4px,transparent 5px) 0 0/64px 20px repeat-x,
    radial-gradient(circle at 32px 10px,#ffe078 0 4px,transparent 5px) 0 0/64px 20px repeat-x,
    radial-gradient(circle at 48px 10px,#70dea2 0 4px,transparent 5px) 0 0/64px 20px repeat-x,
    radial-gradient(circle at 64px 10px,#83c8ff 0 4px,transparent 5px) 0 0/64px 20px repeat-x,
    linear-gradient(180deg,transparent 0 8px,#28563e 8px 10px,transparent 10px);
  filter:drop-shadow(0 0 8px rgba(255,230,135,.4));
  animation:hypnosTwinkle 3.4s ease-in-out infinite;
}
html[data-site-theme="christmas"] .album-dialog .ghost,
html[data-site-theme="christmas"] .album-dialog .ghost.small,
html[data-site-theme="christmas"] .lightbox-dialog .ghost,
html[data-site-theme="christmas"] .lightbox-dialog .ghost.small,
html[data-site-theme="christmas"] .lightbox-nav,
html[data-site-theme="christmas"] .album-dialog .close,
html[data-site-theme="christmas"] .lightbox-dialog .close{
  position:relative;
  overflow:visible!important;
}
html[data-site-theme="christmas"] .album-dialog .ghost::after,
html[data-site-theme="christmas"] .album-dialog .ghost.small::after,
html[data-site-theme="christmas"] .lightbox-dialog .ghost::after,
html[data-site-theme="christmas"] .lightbox-dialog .ghost.small::after,
html[data-site-theme="christmas"] .lightbox-nav::after,
html[data-site-theme="christmas"] .album-dialog .close::after,
html[data-site-theme="christmas"] .lightbox-dialog .close::after{
  content:"";
  position:absolute;
  left:-6px;
  right:-6px;
  top:-8px;
  height:14px;
  pointer-events:none;
  border-radius:14px 14px 0 0;
  background:
    radial-gradient(circle at 8px 7px,#ff5f6d 0 3px,transparent 4px) 0 0/36px 14px repeat-x,
    radial-gradient(circle at 18px 7px,#ffe078 0 3px,transparent 4px) 0 0/36px 14px repeat-x,
    radial-gradient(circle at 28px 7px,#70dea2 0 3px,transparent 4px) 0 0/36px 14px repeat-x,
    linear-gradient(180deg,transparent 0 5px,#28563e 5px 7px,transparent 7px);
  filter:drop-shadow(0 0 6px rgba(255,230,135,.35));
}
html[data-site-theme="christmas"] .album-dialog-grid,
html[data-site-theme="christmas"] .lightbox-stage,
html[data-site-theme="christmas"] .lightbox-thumbs{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 0 0 1px rgba(255,255,255,.03),0 0 24px rgba(255,226,126,.08)!important;
}

@media(max-width:700px){
  html:not([data-site-theme="default"]) .album-dialog,
  html:not([data-site-theme="default"]) .lightbox-dialog{border-radius:24px!important}
  html[data-site-theme="christmas"] .album-dialog::before,
  html[data-site-theme="christmas"] .lightbox-dialog::before{left:10px;right:10px;top:-8px;height:16px;background-size:52px 16px,52px 16px,52px 16px,52px 16px,100% 16px}
}
