TITLE: Aurora Borealis — Night Over the Lake PROMPT: Build one self-contained HTML page: a full-viewport aurora borealis night scene, no external assets. Palette #020617 night, #34d399 green, #7dd3fc ice, #a78bfa violet, #f8fafc star. Layer the scene as: a sky element with a deep navy gradient plus two soft radial tints (green at 50%/66%, violet at 18%/22%); a DPR-scaled canvas star field; three blurred aurora curtains; a horizon glow; a pine ridge as inline SVG; and a lake occupying the bottom 38%. The three curtains are absolutely positioned spans, 152% wide, left:50%, transform-origin 50% 100%, border-radius 50% 50% 0 0 / 62% 62% 0 0, each a linear-gradient in green, violet and ice, each with a STATIC filter:blur(26px) and transform-only keyframes that translate, rotate and scaleY over 13s/17.5s/21s alternate so the blur layer stays composited. The lake holds a cloneNode(true) of the aurora block (id stripped) inside a wrapper with transform:scaleY(-1), top:-21.05% and height:205.26% so the mirror is geometrically exact about the 62% horizon, plus opacity .5, filter blur(9px) and a downward mask; the SVG ridge is duplicated and flipped the same way for the pines' reflection. A repeating-linear-gradient ripple band drifts downward with transform, masked out toward the bottom. The star canvas twinkles ~110-360 stars (fillRect for small, arc plus a soft halo for the 9% brightest, two colour passes for speed) and a second canvas draws meteors and click flares only when active (dirty-gated clear). One rAF loop drives both. Pointer move parallaxes the aurora +30px horizontally and the reflection inversely with 0.09 easing; pointerdown fires a growing radial flare plus a meteor; wheel adjusts aurora intensity by setting --amp on the scene between 0.26 and 1 and updating a monospace readout. Type: tracked uppercase system-ui 600 title upper-left, one Georgia italic line beneath, monospace temperature and coordinates lower-right, minus sign as an entity. prefers-reduced-motion stops the curtains, the ripple and the parallax and renders a static star field. DESCRIPTION: A frozen north night with only one line of type. Three long blurred curtains of green, violet and ice sway on different periods above a black pine ridge, and the whole sky is mirrored in a lake that ripples it into soft vertical smears. Stars twinkle behind the light; every so often a meteor tears across, and clicking the sky blooms a flare that spreads through the aurora while a fresh streak falls. The pointer tilts the sky against its own reflection, and the wheel turns the aurora up or down like a dimmer. TECHNIQUES: static-blur, transform-only animated curtain layers for composited 60fps; exact geometric mirroring via scaleY(-1) with percentage offsets derived from the 62% horizon; cloneNode(true) for the reflection (no createElementNS); DPR canvas star field with setTransform, two-pass colour batching and sine twinkle; dirty-gated second canvas for meteors and click flares; procedurally generated SVG ridge paths assigned with setAttribute on existing path elements; rAF-throttled pointer parallax with easing and settle detection; wheel-driven --amp custom property for intensity; masked repeating-gradient ripple band; reduced-motion media query. INTERACTION: Move the pointer to push the aurora and its reflection in opposite directions; click anywhere to fire a bright radial flare and launch a shooting star; scroll the wheel to dim or brighten the aurora between 26% and 100%, with the monospace intensity readout following. Meteors also spawn on their own every 3-9 seconds. With prefers-reduced-motion the curtains hold a still pose, the stars stop twinkling and the parallax is disabled, leaving the complete scene visible.