Skateboarding astronaut catOne-line
Nemotron 3 Ultra (free)
by NVIDIAReasoningClean
Running live in a sandboxed frame. Click inside it before using the keyboard.
How it went
- Total time
- 1 min 33 s
- Cost
- $0
- Output tokens
- 7,793
- Spent thinking
- 0 tokens
- Speed
- 84.1 tok/s
- Console errors
- 0
- First token after
- 698 ms
- First visible text after
- 698 ms
- Prompt tokens
- 366
- Code size
- 18.3 KB
- Finish reason
- stop
- Served by
- Nvidia
- Model id
nvidia/nemotron-3-ultra-550b-a55b:free- Reasoning sent
{"effort":"none"}- Max output
- 32,000 tokens
- Generated
- Nov 9, 2026
What it was asked
The prompt
“draw me an SVG of an astronaut cat skateboarding on the moon”
System prompt, sent with every prompt
You are generating a self-contained web demo. It will be rendered automatically in a sandboxed iframe and compared side by side with the output of other AI models given the exact same task. Output rules: - Reply with exactly ONE fenced code block containing the complete file: ```html (or ```svg when the task asks for an SVG). No text before or after the code block. - Everything must be inline: CSS in <style>, JavaScript in <script>. No external files, images, fonts or network requests, except the CDN URLs explicitly allowed by the task. - Do not use localStorage, sessionStorage, cookies, IndexedDB, alert(), confirm(), prompt() or window.open(): they are blocked in the sandbox and will throw. - The page must look right in a 1280×800 viewport and adapt gracefully down to 375px wide. No horizontal scrollbar. - Something meaningful must be visible on first paint: a screenshot is taken automatically about 3 seconds after load, without any interaction. - Everything that makes the demo interesting must be visible within the first seconds: nothing hidden behind a high score, a later level or a long play session. - Games must start in a self-playing demo mode (a simple AI plays) behind a "Click or press a key to start" message, so the game can be judged in action without playing. - The iframe only receives keyboard events after the user clicks it: if the demo uses the keyboard, display a clear "Click or press a key to start" message. - The code must run with zero errors in the console of the latest Chrome.
Code run-1.svg · 403 lines
<svg viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- Starfield -->
<pattern id="stars" width="100" height="100" patternUnits="userSpaceOnUse">
<circle cx="10" cy="20" r="1" fill="white" opacity="0.8"/>
<circle cx="50" cy="80" r="0.5" fill="white" opacity="0.6"/>
<circle cx="80" cy="30" r="1.2" fill="white" opacity="0.9"/>
<circle cx="20" cy="60" r="0.8" fill="white" opacity="0.7"/>
<circle cx="90" cy="10" r="1" fill="white" opacity="0.5"/>
<circle cx="30" cy="90" r="0.6" fill="white" opacity="0.8"/>
<circle cx="70" cy="70" r="1.5" fill="white" opacity="0.6"/>
<circle cx="40" cy="40" r="0.7" fill="white" opacity="0.7"/>
</pattern>
<!-- Earth gradient -->
<radialGradient id="earthGrad" cx="30%" cy="30%" r="70%">
<stop offset="0%" stop-color="#4a90d9"/>
<stop offset="50%" stop-color="#2b5aa0"/>
<stop offset="100%" stop-color="#1a3a6e"/>
</radialGradient>
<!-- Moon surface gradient -->
<linearGradient id="moonGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#e8e8e8"/>
<stop offset="100%" stop-color="#a0a0a0"/>
</linearGradient>
<!-- Crater gradient -->
<radialGradient id="craterGrad" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#b8b8b8"/>
<stop offset="100%" stop-color="#888888"/>
</radialGradient>
<!-- Helmet glass -->
<radialGradient id="helmetGlass" cx="40%" cy="30%" r="60%">
<stop offset="0%" stop-color="#87ceeb" stop-opacity="0.3"/>
<stop offset="50%" stop-color="#4a90d9" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#1a3a6e" stop-opacity="0.6"/>
</radialGradient>
<!-- Visor reflection -->
<linearGradient id="visorReflection" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
<stop offset="50%" stop-color="white" stop-opacity="0.1"/>
<stop offset="100%" stop-color="white" stop-opacity="0"/>
</linearGradient>
<!-- Suit white -->
<linearGradient id="suitWhite" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#ffffff"/>
<stop offset="50%" stop-color="#e8e8e8"/>
<stop offset="100%" stop-color="#cccccc"/>
</linearGradient>
<!-- Suit shadow -->
<linearGradient id="suitShadow" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#d0d0d0"/>
<stop offset="100%" stop-color="#909090"/>
</linearGradient>
<!-- Skateboard deck -->
<linearGradient id="boardGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#2c2c2c"/>
<stop offset="50%" stop-color="#1a1a1a"/>
<stop offset="100%" stop-color="#0d0d0d"/>
</linearGradient>
<!-- Wheel gradient -->
<radialGradient id="wheelGrad" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#444"/>
<stop offset="70%" stop-color="#222"/>
<stop offset="100%" stop-color="#111"/>
</radialGradient>
<!-- Gold visor coating -->
<radialGradient id="goldVisor" cx="50%" cy="40%" r="60%">
<stop offset="0%" stop-color="#ffd700" stop-opacity="0.6"/>
<stop offset="50%" stop-color="#ff8c00" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#b8860b" stop-opacity="0.7"/>
</radialGradient>
<!-- Flag gradient -->
<linearGradient id="flagGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#ff6b6b"/>
<stop offset="100%" stop-color="#ee4444"/>
</linearGradient>
<!-- Glow filter -->
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="4" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<!-- Soft shadow filter -->
<filter id="softShadow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
<feOffset dx="2" dy="4" result="offsetblur"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.3"/>
</feComponentTransfer>
<feMerge>
<feMergeNode in="offsetblur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background space -->
<rect width="800" height="600" fill="#050515"/>
<rect width="800" height="600" fill="url(#stars)"/>
<!-- Earth in distance -->
<circle cx="680" cy="100" r="80" fill="url(#earthGrad)" filter="url(#glow)"/>
<ellipse cx="680" cy="100" rx="75" ry="78" fill="none" stroke="#4a90d9" stroke-width="1" opacity="0.3"/>
<!-- Earth clouds -->
<ellipse cx="660" cy="90" rx="15" ry="8" fill="white" opacity="0.4"/>
<ellipse cx="700" cy="110" rx="20" ry="10" fill="white" opacity="0.3"/>
<ellipse cx="690" cy="70" rx="12" ry="6" fill="white" opacity="0.35"/>
<!-- Moon surface -->
<ellipse cx="400" cy="580" rx="500" ry="150" fill="url(#moonGrad)"/>
<!-- Moon craters (background) -->
<g opacity="0.4">
<ellipse cx="150" cy="500" rx="60" ry="20" fill="url(#craterGrad)"/>
<ellipse cx="650" cy="480" rx="80" ry="25" fill="url(#craterGrad)"/>
<ellipse cx="300" cy="520" rx="40" ry="15" fill="url(#craterGrad)"/>
<ellipse cx="500" cy="510" rx="50" ry="18" fill="url(#craterGrad)"/>
</g>
<!-- Foreground craters -->
<g opacity="0.6">
<ellipse cx="100" cy="550" rx="45" ry="15" fill="url(#craterGrad)"/>
<ellipse cx="700" cy="540" rx="55" ry="18" fill="url(#craterGrad)"/>
<ellipse cx="400" cy="570" rx="100" ry="30" fill="url(#craterGrad)"/>
</g>
<!-- Moon rocks/pebbles -->
<g fill="#999">
<ellipse cx="200" cy="530" rx="8" ry="4"/>
<ellipse cx="220" cy="525" rx="5" ry="3"/>
<ellipse cx="350" cy="520" rx="12" ry="6"/>
<ellipse cx="380" cy="535" rx="7" ry="4"/>
<ellipse cx="450" cy="515" rx="10" ry="5"/>
<ellipse cx="550" cy="525" rx="6" ry="3"/>
<ellipse cx="600" cy="510" rx="9" ry="5"/>
</g>
<!-- Astronaut Cat Group -->
<g transform="translate(400, 320)" filter="url(#softShadow)">
<!-- Shadow on ground -->
<ellipse cx="0" cy="140" rx="80" ry="15" fill="black" opacity="0.25"/>
<!-- Skateboard -->
<g transform="translate(0, 120)">
<!-- Board deck -->
<path d="M-70,0 Q-85,-8 -80,-15 Q-75,-20 -60,-20 L60,-20 Q75,-20 80,-15 Q85,-8 70,0 Q60,8 50,10 L-50,10 Q-60,8 -70,0"
fill="url(#boardGrad)" stroke="#333" stroke-width="2"/>
<!-- Board top design -->
<path d="M-65,-2 Q-75,-8 -70,-12 Q-60,-14 -50,-12 L50,-12 Q60,-14 70,-12 Q75,-8 65,-2 Q55,4 45,6 L-45,6 Q-55,4 -65,-2"
fill="#ff6b35" opacity="0.9"/>
<!-- Cat face on board -->
<circle cx="0" cy="-4" r="12" fill="#ff6b35" opacity="0.9"/>
<ellipse cx="-5" cy="-7" rx="3" ry="2" fill="#1a1a1a"/>
<ellipse cx="5" cy="-7" rx="3" ry="2" fill="#1a1a1a"/>
<path d="M-4,0 Q0,4 4,0" stroke="#1a1a1a" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<path d="M-7,-4 Q-9,-6 -7,-8" stroke="#ff6b35" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<path d="M7,-4 Q9,-6 7,-8" stroke="#ff6b35" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<!-- Trucks -->
<g fill="#444">
<rect x="-75" y="-20" width="30" height="8" rx="2"/>
<rect x="45" y="-20" width="30" height="8" rx="2"/>
</g>
<!-- Wheels -->
<g>
<!-- Front wheels -->
<circle cx="-60" cy="-12" r="14" fill="url(#wheelGrad)" stroke="#555" stroke-width="2"/>
<circle cx="-60" cy="-12" r="8" fill="#1a1a1a"/>
<circle cx="60" cy="-12" r="14" fill="url(#wheelGrad)" stroke="#555" stroke-width="2"/>
<circle cx="60" cy="-12" r="8" fill="#1a1a1a"/>
</g>
<!-- Speed lines -->
<g stroke="#fff" stroke-width="2" opacity="0.4" stroke-linecap="round">
<line x1="-120" y1="-5" x2="-100" y2="-5"/>
<line x1="-120" y1="5" x2="-100" y2="5"/>
<line x1="-120" y1="-15" x2="-100" y2="-15"/>
<line x1="-120" y1="15" x2="-100" y2="15"/>
</g>
</g>
<!-- Cat Body (in suit) -->
<g transform="translate(0, -20)">
<!-- Backpack / Life support -->
<path d="M-45,-40 Q-60,-50 -60,-20 Q-60,10 -45,0 Q-50,-10 -45,-40"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1"/>
<rect x="-58" y="-30" width="15" height="20" rx="3" fill="#333" stroke="#555" stroke-width="1"/>
<rect x="-55" y="-25" width="9" height="10" rx="1" fill="#0f0" opacity="0.8"/>
<rect x="-55" y="-12" width="9" height="10" rx="1" fill="#0f0" opacity="0.6"/>
<circle cx="-50" cy="5" r="6" fill="#222" stroke="#444" stroke-width="1"/>
<circle cx="-50" cy="5" r="3" fill="#ff6b35"/>
<!-- Suit body -->
<path d="M-40,-50 Q-50,-60 -50,-30 L-50,40 Q-45,55 -30,55 L30,55 Q45,55 50,40 L50,-30 Q50,-60 40,-50"
fill="url(#suitWhite)" stroke="#bbb" stroke-width="1.5"/>
<!-- Suit details - chest panel -->
<g transform="translate(0, -10)">
<rect x="-20" y="-10" width="40" height="50" rx="5" fill="url(#suitShadow)" stroke="#aaa" stroke-width="1"/>
<!-- Mission patch -->
<circle cx="0" cy="5" r="15" fill="#002b5c" stroke="#ffd700" stroke-width="2"/>
<text x="0" y="10" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" font-weight="bold" fill="#ffd700">CAT</text>
<text x="0" y="22" text-anchor="middle" font-family="Arial, sans-serif" font-size="8" fill="#fff">NASA</text>
<!-- Buttons -->
<circle cx="-12" cy="-20" r="4" fill="#ff4444" filter="url(#glow)"/>
<circle cx="12" cy="-20" r="4" fill="#44ff44"/>
<circle cx="-12" cy="0" r="4" fill="#ffaa00"/>
<circle cx="12" cy="0" r="4" fill="#4488ff"/>
<!-- Screen -->
<rect x="-15" cy="18" width="30" height="12" rx="2" fill="#001122" stroke="#00ffff" stroke-width="1"/>
<text x="0" y="27" text-anchor="middle" font-family="monospace" font-size="7" fill="#00ffff">O2: 100%</text>
</g>
<!-- Arms -->
<g>
<!-- Left arm -->
<path d="M-40,-30 Q-60,-20 -70,-10 Q-75,0 -70,15 L-55,25 Q-45,20 -40,10"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1.5"/>
<!-- Left glove -->
<path d="M-70,-10 Q-80,-15 -85,-5 Q-88,5 -80,15 Q-75,20 -60,20 Q-55,15 -55,5 Q-55,-5 -60,-10"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1.5"/>
<!-- Fingers on board -->
<g fill="url(#suitWhite)" stroke="#aaa" stroke-width="1">
<ellipse cx="-75" cy="18" rx="5" ry="10"/>
<ellipse cx="-68" cy="18" rx="4" ry="10"/>
<ellipse cx="-61" cy="18" rx="4" ry="10"/>
</g>
<!-- Right arm -->
<path d="M40,-30 Q60,-20 70,-10 Q75,0 70,15 L55,25 Q45,20 40,10"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1.5"/>
<!-- Right glove -->
<path d="M70,-10 Q80,-15 85,-5 Q88,5 80,15 Q75,20 60,20 Q55,15 55,5 Q55,-5 60,-10"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1.5"/>
<!-- Fingers up (peace sign) -->
<g fill="url(#suitWhite)" stroke="#aaa" stroke-width="1">
<ellipse cx="75" cy="10" rx="4" ry="14" transform="rotate(-20, 75, 10)"/>
<ellipse cx="82" cy="8" rx="4" ry="14" transform="rotate(20, 82, 8)"/>
<ellipse cx="68" cy="12" rx="4" ry="10" transform="rotate(-10, 68, 12)"/>
</g>
</g>
<!-- Legs (bent for skateboarding) -->
<g>
<!-- Left leg -->
<path d="M-20,55 Q-25,80 -20,105 Q-15,120 -5,120 L5,105 Q10,95 0,80 Q-5,70 -10,60"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1.5"/>
<!-- Left boot -->
<path d="M-10,120 Q-20,125 -20,115 Q-18,110 -8,110 Q-2,108 2,112 Q0,118 -5,120"
fill="#1a1a1a" stroke="#333" stroke-width="1.5"/>
<ellipse cx="-3" cy="112" rx="10" ry="6" fill="#2a2a2a" stroke="#444" stroke-width="1"/>
<!-- Right leg -->
<path d="M20,55 Q25,80 20,105 Q15,120 5,120 L-5,105 Q-10,95 0,80 Q5,70 10,60"
fill="url(#suitWhite)" stroke="#aaa" stroke-width="1.5"/>
<!-- Right boot -->
<path d="M5,120 Q-5,125 -5,115 Q-3,110 7,110 Q13,108 -2,112 Q0,118 5,120"
fill="#1a1a1a" stroke="#333" stroke-width="1.5"/>
<ellipse cx="3" cy="112" rx="10" ry="6" fill="#2a2a2a" stroke="#444" stroke-width="1"/>
</g>
<!-- Helmet -->
<g>
<!-- Helmet base -->
<path d="M-50,-60 Q-60,-75 -60,-45 Q-60,-30 -45,-25 Q-40,-22 -30,-25 L30,-25 Q40,-22 45,-25 Q60,-30 60,-45 Q60,-75 50,-60 Q40,-65 30,-70 L-30,-70 Q-40,-65 -50,-60"
fill="url(#suitWhite)" stroke="#ccc" stroke-width="1.5"/>
<!-- Neck ring -->
<ellipse cx="0" cy="-25" rx="35" ry="8" fill="#ddd" stroke="#aaa" stroke-width="1"/>
<ellipse cx="0" cy="-25" rx="32" ry="5" fill="url(#suitWhite)" stroke="#bbb" stroke-width="0.5"/>
<!-- Visor/Glass -->
<path d="M-45,-55 Q-55,-70 -55,-40 Q-55,-28 -40,-25 Q-30,-22 0,-23 Q30,-22 40,-25 Q55,-28 55,-40 Q55,-70 45,-55 Q35,-58 0,-62 Q-35,-58 -45,-55"
fill="url(#helmetGlass)" stroke="#4a90d9" stroke-width="1.5"/>
<!-- Visor reflection -->
<path d="M-30,-50 Q-20,-55 -10,-50 Q0,-45 10,-50 Q20,-55 30,-50 Q20,-40 0,-35 Q-20,-40 -30,-50"
fill="url(#visorReflection)"/>
<!-- Gold coating tint -->
<path d="M-45,-55 Q-55,-70 -55,-40 Q-55,-28 -40,-25 Q-30,-22 0,-23 Q30,-22 40,-25 Q55,-28 55,-40 Q55,-70 45,-55"
fill="url(#goldVisor)" opacity="0.3"/>
<!-- Helmet details -->
<!-- Side lights -->
<circle cx="-50" cy="-45" r="4" fill="#ff4444" filter="url(#glow)"/>
<circle cx="50" cy="-45" r="4" fill="#44ff44" filter="url(#glow)"/>
<!-- Top vent -->
<rect x="-8" y="-72" width="16" height="6" rx="2" fill="#333" stroke="#555" stroke-width="1"/>
<line x1="-4" y1="-71" x2="-4" y2="-67" stroke="#666" stroke-width="1"/>
<line x1="0" y1="-71" x2="0" y2="-67" stroke="#666" stroke-width="1"/>
<line x1="4" y1="-71" x2="4" y2="-67" stroke="#666" stroke-width="1"/>
<!-- Cat ears on helmet -->
<g>
<!-- Left ear -->
<path d="M-35,-70 Q-45,-95 -35,-75 Q-30,-85 -25,-70" fill="url(#suitWhite)" stroke="#ccc" stroke-width="1.5"/>
<path d="M-33,-70 Q-40,-88 -32,-73 Q-28,-82 -27,-70" fill="#ff9999" opacity="0.5"/>
<!-- Right ear -->
<path d="M35,-70 Q45,-95 35,-75 Q30,-85 25,-70" fill="url(#suitWhite)" stroke="#ccc" stroke-width="1.5"/>
<path d="M33,-70 Q40,-88 32,-73 Q28,-82 27,-70" fill="#ff9999" opacity="0.5"/>
</g>
<!-- Antenna -->
<path d="M40,-70 Q50,-90 45,-100" stroke="#aaa" stroke-width="3" fill="none" stroke-linecap="round"/>
<circle cx="45" cy="-100" r="5" fill="#ff4444" filter="url(#glow)"/>
<circle cx="45" cy="-100" r="3" fill="#ff8888"/>
</g>
<!-- Cat face visible in helmet -->
<g transform="translate(0, -45)" opacity="0.9">
<!-- Face base (fur) -->
<ellipse cx="0" cy="0" rx="30" ry="28" fill="#ff9966"/>
<!-- White muzzle -->
<ellipse cx="0" cy="8" rx="18" ry="14" fill="#fff5e6"/>
<!-- Eyes -->
<g>
<!-- Left eye -->
<ellipse cx="-12" cy="-4" rx="8" ry="10" fill="#fff"/>
<ellipse cx="-12" cy="-4" rx="5" ry="8" fill="#1a1a2e"/>
<ellipse cx="-10" cy="-6" rx="2" ry="3" fill="#fff"/>
<ellipse cx="-14" cy="-2" rx="1" ry="1.5" fill="#fff" opacity="0.7"/>
</g>
<g>
<!-- Right eye -->
<ellipse cx="12" cy="-4" rx="8" ry="10" fill="#fff"/>
<ellipse cx="12" cy="-4" rx="5" ry="8" fill="#1a1a2e"/>
<ellipse cx="14" cy="-6" rx="2" ry="3" fill="#fff"/>
<ellipse cx="10" cy="-2" rx="1" ry="1.5" fill="#fff" opacity="0.7"/>
</g>
<!-- Nose -->
<ellipse cx="0" cy="8" rx="3" ry="2" fill="#ff9999"/>
<!-- Mouth -->
<path d="M0,10 Q-5,14 -8,12 M0,10 Q5,14 8,12" stroke="#1a1a2e" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#886644" stroke-width="0.8" opacity="0.6">
<line x1="-18" y1="6" x2="-30" y2="2"/>
<line x1="-18" y1="10" x2="-30" y2="10"/>
<line x1="-18" y1="14" x2="-30" y2="18"/>
<line x1="18" y1="6" x2="30" y2="2"/>
<line x1="18" y1="10" x2="30" y2="10"/>
<line x1="18" y1="14" x2="30" y2="18"/>
</g>
<!-- Ear tufts inside helmet -->
<g fill="#ff9966">
<path d="M-22,-25 Q-28,-40 -20,-30 Q-15,-35 -18,-25"/>
<path d="M22,-25 Q28,-40 20,-30 Q15,-35 18,-25"/>
</g>
</g>
</g>
<!-- Floating flag -->
<g transform="translate(80, -80)">
<path d="M0,0 L0,-60" stroke="#fff" stroke-width="2" stroke-linecap="round"/>
<path d="M0,-60 Q30,-65 40,-50 Q45,-45 40,-35 Q30,-30 0,-35 Q-10,-40 0,-50"
fill="url(#flagGrad)" stroke="#cc3333" stroke-width="1"/>
<text x="20" y="-48" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" font-weight="bold" fill="white" transform="rotate(-15, 20, -48)">🐱</text>
</g>
</g>
<!-- Floating moon dust particles -->
<g fill="white" opacity="0.6">
<circle cx="350" cy="300" r="1.5"/>
<circle cx="450" cy="280" r="1"/>
<circle cx="380" cy="250" r="2"/>
<circle cx="420" cy="320" r="1.2"/>
<circle cx="360" cy="350" r="0.8"/>
<circle cx="480" cy="300" r="1.5"/>
<circle cx="320" cy="330" r="1"/>
<circle cx="500" cy="270" r="1.8"/>
</g>
<!-- Distant stars twinkle -->
<g fill="white">
<circle cx="100" cy="50" r="1.5" opacity="0.9">
<animate attributeName="opacity" values="0.3;1;0.3" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="700" cy="200" r="1" opacity="0.7">
<animate attributeName="opacity" values="0.2;0.8;0.2" dur="3s" repeatCount="indefinite"/>
</circle>
<circle cx="150" cy="150" r="2" opacity="0.8">
<animate attributeName="opacity" values="0.4;1;0.4" dur="2.5s" repeatCount="indefinite"/>
</circle>
<circle cx="650" cy="80" r="1.2" opacity="0.6">
<animate attributeName="opacity" values="0.2;0.9;0.2" dur="1.8s" repeatCount="indefinite"/>
</circle>
</g>
</svg>