/* Optional water layer: removing this file/include does not undo the UI polish. */
html.pastel-water-on{background:#f7f0ff}
.pastel-water-on body{position:relative;isolation:isolate;background:transparent;background-image:none;min-height:100vh}
#pastel-water{position:fixed;inset:0;z-index:-1;width:100%;height:100%;display:block;pointer-events:none!important;user-select:none;contain:strict}
.ambient-sparkles{position:fixed;inset:0;z-index:-1;pointer-events:none!important;overflow:hidden;contain:strict}
.ambient-sparkles i{position:absolute;width:var(--twinkle-size);height:var(--twinkle-size);background:#fff;opacity:.45;clip-path:polygon(50% 0,63% 35%,100% 50%,63% 63%,50% 100%,36% 65%,0 50%,35% 35%);filter:drop-shadow(0 0 3px #fff9);animation:ambient-twinkle 5.6s ease-in-out var(--twinkle-delay) infinite;pointer-events:none!important}
@keyframes ambient-twinkle{0%,100%{opacity:.22;transform:scale(.75) rotate(0deg)}50%{opacity:.7;transform:scale(1.15) rotate(12deg)}}
.pastel-water-on .shell,.pastel-water-on main{pointer-events:auto}
/* Cards and text stay on their original, readable surfaces. */
.pastel-water-on .sidebar{background:#f1e8fff0}
.pastel-water-on.water-fallback body{background:linear-gradient(135deg,#ffe6ef,#fff0c9,#e5f6de,#dff1ff,#eedfff,#ffe6ef);background-size:250% 250%;animation:pastel-water-fallback 40s ease-in-out infinite}
.water-glitter{position:fixed;left:0;top:0;z-index:10000;width:10px;height:10px;pointer-events:none!important;user-select:none;background:var(--glitter);opacity:0;filter:drop-shadow(0 0 3px #fff);animation:water-glitter-pop .72s cubic-bezier(.15,.65,.2,1) forwards;will-change:transform,opacity;clip-path:polygon(50% 0,64% 34%,100% 50%,64% 64%,50% 100%,35% 65%,0 50%,35% 35%)}
.water-glitter.tiny{width:5px;height:5px;border-radius:50%;clip-path:none;background:#fff;box-shadow:0 0 4px var(--glitter)}
.water-glitter.celebration{animation-duration:.95s}
@keyframes water-glitter-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}14%{opacity:1;transform:translate(calc(-50% + var(--gx)*.15),calc(-50% + var(--gy)*.15)) scale(1)}45%{opacity:.95}100%{opacity:0;transform:translate(calc(-50% + var(--gx)),calc(-50% + var(--gy))) rotate(var(--gr)) scale(.1)}}
@keyframes pastel-water-fallback{0%,100%{background-position:0% 40%}50%{background-position:100% 60%}}
@media(prefers-reduced-motion:reduce){.water-glitter{display:none!important}.ambient-sparkles i{animation:none!important;opacity:.4}.pastel-water-on.water-fallback body{animation:none!important}}

/* One sparkle surface; it never participates in layout, focus or hit testing. */
.water-glitter-layer{position:fixed;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;overflow:visible;pointer-events:none!important;user-select:none;z-index:10000}
.water-glitter-layer *{pointer-events:none!important}
.shooting-stars{position:fixed;inset:0;z-index:-1;overflow:hidden;contain:strict;pointer-events:none!important;user-select:none}
.shooting-stars *{pointer-events:none!important}
.shooting-flight{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.shooting-ribbon{filter:drop-shadow(0 0 3px var(--star-color))}
.shooting-thread{fill:none;stroke:#fff;stroke-width:.7;stroke-opacity:.25;stroke-linecap:round}
.shooting-comet-head{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 7px var(--star-color))}
.shooting-comet-head path{stroke:#fff9;stroke-width:.65;stroke-linejoin:round}
.shooting-dust{fill:#fff;filter:drop-shadow(0 0 2px var(--star-color))}
.animations-off .water-glitter-layer,.animations-off .shooting-stars{display:none!important}
@media(prefers-reduced-motion:reduce){.water-glitter-layer,.shooting-stars{display:none!important}}

.water-glitter-layer::backdrop{display:none!important;pointer-events:none!important}
