/* wallpaper.css — aurora · mesh · ink · parchment · plain (§9.3). GPU transforms only; paused on demand. */
.w2-wallpaper { position: absolute; inset: 0; overflow: hidden; z-index: var(--z-wallpaper); pointer-events: auto; background: var(--bg-1); contain: strict; }
.w2-wallpaper > div { position: absolute; pointer-events: none; }
.w2-wallpaper__base { inset: 0; background: var(--bg-1); }
.w2-wallpaper__blob { width: 78vmax; height: 78vmax; border-radius: 50%; will-change: transform; opacity: 0; transition: opacity var(--dur-deliberate) var(--ease-out); }
.w2-wallpaper__guilloche { inset: 0; opacity: 0; background-image: url("/assets/guilloche.svg"); background-size: 520px 520px; }
.w2-wallpaper__noise { inset: -2px; opacity: .05; background-image: url("/assets/noise.svg"); background-size: 240px 240px; mix-blend-mode: overlay; }
.w2-wallpaper__vignette { inset: 0; background: radial-gradient(ellipse 120% 90% at 50% 45%, transparent 52%, rgba(0, 0, 0, .5) 100%); }

/* ── aurora (default) ─────────────────────────────────────────────────────────────────────── */
.w2-wallpaper[data-wallpaper="aurora"] .w2-wallpaper__base {
  background:
    radial-gradient(ellipse 90% 70% at 18% 8%, rgba(212, 169, 79, .10), transparent 60%),
    radial-gradient(ellipse 80% 70% at 86% 92%, rgba(79, 179, 162, .08), transparent 62%),
    linear-gradient(180deg, #0b1224 0%, var(--bg-1) 45%, #070c19 100%);
}
.w2-wallpaper[data-wallpaper="aurora"] .w2-wallpaper__blob { opacity: 1; }
.w2-wallpaper__blob--a { left: -26vmax; top: -34vmax; background: radial-gradient(circle at 50% 50%, rgba(212, 169, 79, .30) 0%, rgba(212, 169, 79, .12) 32%, transparent 62%); animation: w2-drift-a 74s var(--ease-inout) infinite alternate; }
.w2-wallpaper__blob--b { right: -30vmax; bottom: -40vmax; background: radial-gradient(circle at 50% 50%, rgba(79, 179, 162, .26) 0%, rgba(79, 179, 162, .10) 34%, transparent 62%); animation: w2-drift-b 88s var(--ease-inout) infinite alternate; }
.w2-wallpaper__blob--c { right: -14vmax; top: 6vmax; width: 60vmax; height: 60vmax; background: radial-gradient(circle at 50% 50%, rgba(109, 156, 240, .22) 0%, rgba(109, 156, 240, .08) 36%, transparent 64%); animation: w2-drift-c 62s var(--ease-inout) infinite alternate; }
.w2-wallpaper[data-wallpaper="aurora"] .w2-wallpaper__guilloche { opacity: .03; }
.w2-wallpaper[data-aurora="paused"] .w2-wallpaper__blob { animation-play-state: paused; }
:root[data-motion="reduced"] .w2-wallpaper__blob { animation: none !important; }
@keyframes w2-drift-a { 0% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(9vmax, 6vmax, 0) scale(1.08); } 100% { transform: translate3d(3vmax, 13vmax, 0) scale(.96); } }
@keyframes w2-drift-b { 0% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(-11vmax, -5vmax, 0) scale(1.1); } 100% { transform: translate3d(-4vmax, -12vmax, 0) scale(.95); } }
@keyframes w2-drift-c { 0% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(-7vmax, 9vmax, 0) scale(.92); } 100% { transform: translate3d(-13vmax, 2vmax, 0) scale(1.06); } }

/* ── mesh (static four-point) ─────────────────────────────────────────────────────────────── */
.w2-wallpaper[data-wallpaper="mesh"] .w2-wallpaper__base {
  background:
    radial-gradient(at 0% 0%, rgba(212, 169, 79, .30) 0, transparent 55%),
    radial-gradient(at 100% 0%, rgba(109, 156, 240, .26) 0, transparent 55%),
    radial-gradient(at 100% 100%, rgba(79, 179, 162, .24) 0, transparent 55%),
    radial-gradient(at 0% 100%, rgba(199, 146, 214, .16) 0, transparent 55%),
    var(--bg-1);
}
.w2-wallpaper[data-wallpaper="mesh"] .w2-wallpaper__guilloche { opacity: .025; }

/* ── ink ──────────────────────────────────────────────────────────────────────────────────── */
.w2-wallpaper[data-wallpaper="ink"] .w2-wallpaper__base { background: radial-gradient(ellipse at 50% 40%, var(--bg-2), var(--bg-0) 80%); }
.w2-wallpaper[data-wallpaper="ink"] .w2-wallpaper__vignette { background: radial-gradient(ellipse 110% 85% at 50% 42%, transparent 40%, rgba(0, 0, 0, .6) 100%); }

/* ── parchment ────────────────────────────────────────────────────────────────────────────── */
.w2-wallpaper[data-wallpaper="parchment"] .w2-wallpaper__base {
  background:
    radial-gradient(ellipse 70% 60% at 15% 10%, rgba(212, 169, 79, .16), transparent 60%),
    radial-gradient(ellipse 60% 60% at 90% 85%, rgba(79, 179, 162, .12), transparent 60%),
    linear-gradient(160deg, #1a1710 0%, #12100b 100%);
}
.w2-wallpaper[data-wallpaper="parchment"] .w2-wallpaper__guilloche { opacity: .04; }
.w2-wallpaper[data-wallpaper="parchment"] .w2-wallpaper__noise { opacity: .08; }

/* ── plain ────────────────────────────────────────────────────────────────────────────────── */
.w2-wallpaper[data-wallpaper="plain"] .w2-wallpaper__vignette,
.w2-wallpaper[data-wallpaper="plain"] .w2-wallpaper__noise { display: none; }

/* ── light theme adaptations ──────────────────────────────────────────────────────────────── */
:root[data-theme="light"] .w2-wallpaper__vignette { background: radial-gradient(ellipse 120% 90% at 50% 45%, transparent 55%, rgba(120, 90, 40, .16) 100%); }
:root[data-theme="light"] .w2-wallpaper__noise { mix-blend-mode: multiply; opacity: .06; }
:root[data-theme="light"] .w2-wallpaper[data-wallpaper="aurora"] .w2-wallpaper__base {
  background:
    radial-gradient(ellipse 90% 70% at 18% 8%, rgba(212, 169, 79, .16), transparent 60%),
    linear-gradient(180deg, #f3ecdd 0%, var(--bg-1) 50%, #e8dec9 100%);
}
:root[data-theme="light"] .w2-wallpaper__blob--a { background: radial-gradient(circle, rgba(212, 169, 79, .38) 0%, rgba(212, 169, 79, .14) 34%, transparent 62%); }
:root[data-theme="light"] .w2-wallpaper__blob--b { background: radial-gradient(circle, rgba(79, 179, 162, .30) 0%, rgba(79, 179, 162, .11) 34%, transparent 62%); }
:root[data-theme="light"] .w2-wallpaper__blob--c { background: radial-gradient(circle, rgba(109, 156, 240, .26) 0%, rgba(109, 156, 240, .09) 36%, transparent 64%); }
:root[data-theme="light"] .w2-wallpaper[data-wallpaper="aurora"] .w2-wallpaper__guilloche { opacity: .05; }
:root[data-theme="light"] .w2-wallpaper[data-wallpaper="mesh"] .w2-wallpaper__base {
  background:
    radial-gradient(at 0% 0%, rgba(212, 169, 79, .30) 0, transparent 55%),
    radial-gradient(at 100% 0%, rgba(109, 156, 240, .20) 0, transparent 55%),
    radial-gradient(at 100% 100%, rgba(79, 179, 162, .22) 0, transparent 55%),
    radial-gradient(at 0% 100%, rgba(199, 146, 214, .14) 0, transparent 55%),
    var(--bg-1);
}
:root[data-theme="light"] .w2-wallpaper[data-wallpaper="ink"] .w2-wallpaper__base { background: radial-gradient(ellipse at 50% 40%, #f7f2e7, #ddd2bc 85%); }
:root[data-theme="light"] .w2-wallpaper[data-wallpaper="parchment"] .w2-wallpaper__base {
  background:
    radial-gradient(ellipse 70% 60% at 15% 10%, rgba(212, 169, 79, .24), transparent 60%),
    radial-gradient(ellipse 60% 60% at 90% 85%, rgba(79, 179, 162, .16), transparent 60%),
    linear-gradient(160deg, #f5eedf 0%, #e9dcc2 100%);
}

/* ── round 3 (WP-ACCESS): high contrast — the wallpaper steps back to a flat field (no aurora, grain or engraving:
   they sit behind the desktop icons' labels and the widgets) ─────────────────────────────────────────────────── */
:root[data-contrast="high"] .w2-wallpaper, :root[data-contrast="high"] .w2-wallpaper .w2-wallpaper__base { background: var(--bg-1) !important; }
:root[data-contrast="high"] .w2-wallpaper__blob, :root[data-contrast="high"] .w2-wallpaper__guilloche,
:root[data-contrast="high"] .w2-wallpaper__noise, :root[data-contrast="high"] .w2-wallpaper__vignette { display: none; }
/* reduced transparency keeps the chosen wallpaper but stills its drift behind opaque panes */
:root[data-transparency="reduced"] .w2-wallpaper__noise { opacity: .03; }
