* { box-sizing: border-box; }

body {
margin: 0;
min-height: 100vh;
background: #f5f7fa;
overflow-x: hidden;
}

/* ===== 流动光斑层 ===== */
.aurora {
position: fixed;
inset: -20vmax;
z-index: -2;
filter: blur(80px);
opacity: 0.9;
pointer-events: none;
}
.aurora span {
position: absolute;
width: 45vmax;
height: 45vmax;
border-radius: 50%;
will-change: transform;
}
.aurora .blob1 {
left: 5%;
top: 10%;
background: radial-gradient(circle, rgba(56,189,248,.55), transparent 65%);
animation: drift1 18s ease-in-out infinite alternate;
}
.aurora .blob2 {
right: 0%;
top: 30%;
background: radial-gradient(circle, rgba(99,102,241,.5), transparent 65%);
animation: drift2 22s ease-in-out infinite alternate;
}
.aurora .blob3 {
left: 30%;
bottom: 0%;
background: radial-gradient(circle, rgba(168,85,247,.4), transparent 65%);
animation: drift3 26s ease-in-out infinite alternate;
}
@keyframes drift1 {
0%   { transform: translate(0, 0) scale(1); }
100% { transform: translate(30vw, 20vh) scale(1.25); }
}
@keyframes drift2 {
0%   { transform: translate(0, 0) scale(1.1); }
100% { transform: translate(-25vw, 25vh) scale(0.85); }
}
@keyframes drift3 {
0%   { transform: translate(0, 0) scale(0.9); }
100% { transform: translate(20vw, -25vh) scale(1.3); }
}

/* ===== 点阵 Canvas ===== */
#dot-grid {
position: fixed;
inset: 0;
z-index: -1;
pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
.aurora span { animation: none; }
}

/* ===== 图片折叠（默认收起） ===== */
#B3 summary {
cursor: pointer;
user-select: none;
}