| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>QGR-α | United Nations Special Petition — Volume VII</title> |
| <style> |
| @import url('https://fonts.googleapis.com/css2?family=Crimson+Text:ital,wght@0,400;0,600;0,700;1,400&family=JetBrains+Mono:wght@300;400;500;600&family=Inter:wght@300;400;500;600;700;800&display=swap'); |
| |
| :root { |
| --un-blue: #1e3a5f; |
| --un-gold: #c9a227; |
| --qgr-cyan: #00d4ff; |
| --qgr-glow: rgba(0,212,255,0.15); |
| --bg-deep: #0a0e17; |
| --bg-panel: #0f1623; |
| --bg-elevated: #161f33; |
| --text-primary: #e8ecf1; |
| --text-secondary: #8b9bb4; |
| --text-muted: #4a5a72; |
| --border-subtle: rgba(255,255,255,0.06); |
| --border-glow: rgba(0,212,255,0.2); |
| --accent-danger: #ff4757; |
| --accent-success: #2ed573; |
| --accent-warn: #ffa502; |
| } |
| |
| * { margin: 0; padding: 0; box-sizing: border-box; } |
| html { scroll-behavior: smooth; } |
| |
| body { |
| font-family: 'Inter', sans-serif; |
| background: var(--bg-deep); |
| color: var(--text-primary); |
| line-height: 1.7; |
| overflow-x: hidden; |
| } |
| |
| #quantum-canvas { |
| position: fixed; |
| top: 0; left: 0; |
| width: 100%; height: 100%; |
| z-index: 0; |
| pointer-events: none; |
| opacity: 0.4; |
| } |
| |
| .particle-field { |
| position: fixed; |
| top: 0; left: 0; |
| width: 100%; height: 100%; |
| pointer-events: none; |
| z-index: 1; |
| overflow: hidden; |
| } |
| .particle { |
| position: absolute; |
| width: 2px; height: 2px; |
| background: var(--qgr-cyan); |
| border-radius: 50%; |
| opacity: 0; |
| animation: particleFloat 8s infinite ease-in-out; |
| } |
| @keyframes particleFloat { |
| 0% { opacity: 0; transform: translateY(100vh) scale(0); } |
| 10% { opacity: 0.8; } |
| 90% { opacity: 0.3; } |
| 100% { opacity: 0; transform: translateY(-10vh) scale(1.5); } |
| } |
| |
| .horizon-ring { |
| position: fixed; |
| top: 50%; left: 50%; |
| transform: translate(-50%, -50%); |
| width: 600px; height: 600px; |
| border: 1px solid rgba(0,212,255,0.05); |
| border-radius: 50%; |
| pointer-events: none; |
| z-index: 0; |
| animation: horizonPulse 6s ease-in-out infinite; |
| } |
| .horizon-ring::before { |
| content: ''; |
| position: absolute; |
| top: 50%; left: 50%; |
| transform: translate(-50%, -50%); |
| width: 100%; height: 100%; |
| border: 1px solid rgba(0,212,255,0.03); |
| border-radius: 50%; |
| animation: horizonSpin 20s linear infinite; |
| } |
| @keyframes horizonPulse { |
| 0%, 100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); } |
| 50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.02); } |
| } |
| @keyframes horizonSpin { |
| from { transform: translate(-50%, -50%) rotate(0deg); } |
| to { transform: translate(-50%, -50%) rotate(360deg); } |
| } |
| |
| .nav-bar { |
| position: fixed; |
| top: 0; left: 0; right: 0; |
| z-index: 1000; |
| background: rgba(10,14,23,0.85); |
| backdrop-filter: blur(20px); |
| border-bottom: 1px solid var(--border-subtle); |
| padding: 0 2rem; |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| height: 60px; |
| } |
| .nav-logo { |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.85rem; |
| font-weight: 600; |
| color: var(--qgr-cyan); |
| letter-spacing: 2px; |
| } |
| .nav-logo span { color: var(--un-gold); } |
| .nav-links { |
| display: flex; |
| gap: 1.5rem; |
| list-style: none; |
| } |
| .nav-links a { |
| color: var(--text-secondary); |
| text-decoration: none; |
| font-size: 0.75rem; |
| font-weight: 500; |
| letter-spacing: 1px; |
| text-transform: uppercase; |
| transition: color 0.3s; |
| position: relative; |
| } |
| .nav-links a::after { |
| content: ''; |
| position: absolute; |
| bottom: -4px; left: 0; |
| width: 0; height: 1px; |
| background: var(--qgr-cyan); |
| transition: width 0.3s; |
| } |
| .nav-links a:hover { color: var(--qgr-cyan); } |
| .nav-links a:hover::after { width: 100%; } |
| |
| .hero { |
| position: relative; |
| min-height: 100vh; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| text-align: center; |
| padding: 6rem 2rem 4rem; |
| z-index: 2; |
| overflow: hidden; |
| } |
| |
| .hero-badge { |
| display: inline-flex; |
| align-items: center; |
| gap: 0.5rem; |
| padding: 0.4rem 1rem; |
| border: 1px solid var(--border-glow); |
| border-radius: 100px; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.7rem; |
| color: var(--qgr-cyan); |
| letter-spacing: 2px; |
| text-transform: uppercase; |
| margin-bottom: 2rem; |
| animation: fadeInUp 1s ease-out; |
| } |
| .hero-badge .pulse-dot { |
| width: 6px; height: 6px; |
| background: var(--accent-success); |
| border-radius: 50%; |
| animation: pulse 2s infinite; |
| } |
| @keyframes pulse { |
| 0%, 100% { opacity: 1; transform: scale(1); } |
| 50% { opacity: 0.5; transform: scale(0.8); } |
| } |
| |
| .hero h1 { |
| font-family: 'Crimson Text', serif; |
| font-size: clamp(2.5rem, 6vw, 5rem); |
| font-weight: 700; |
| line-height: 1.1; |
| margin-bottom: 1.5rem; |
| background: linear-gradient(135deg, #fff 0%, var(--qgr-cyan) 50%, var(--un-gold) 100%); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| animation: fadeInUp 1s ease-out 0.2s both; |
| } |
| |
| .hero-subtitle { |
| font-family: 'Crimson Text', serif; |
| font-size: clamp(1.1rem, 2.5vw, 1.6rem); |
| font-style: italic; |
| color: var(--text-secondary); |
| max-width: 700px; |
| margin-bottom: 2rem; |
| animation: fadeInUp 1s ease-out 0.4s both; |
| } |
| |
| .hero-meta { |
| display: flex; |
| gap: 2rem; |
| flex-wrap: wrap; |
| justify-content: center; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.75rem; |
| color: var(--text-muted); |
| animation: fadeInUp 1s ease-out 0.6s both; |
| } |
| .hero-meta span { display: flex; align-items: center; gap: 0.4rem; } |
| .hero-meta .meta-label { color: var(--qgr-cyan); } |
| |
| .hero-cta { |
| margin-top: 3rem; |
| display: flex; |
| gap: 1rem; |
| animation: fadeInUp 1s ease-out 0.8s both; |
| } |
| .btn-primary { |
| padding: 0.9rem 2.5rem; |
| background: linear-gradient(135deg, var(--qgr-cyan), #0088aa); |
| color: var(--bg-deep); |
| font-family: 'Inter', sans-serif; |
| font-weight: 700; |
| font-size: 0.85rem; |
| letter-spacing: 1px; |
| text-transform: uppercase; |
| border: none; |
| border-radius: 4px; |
| cursor: pointer; |
| transition: all 0.3s; |
| text-decoration: none; |
| display: inline-block; |
| } |
| .btn-primary:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 10px 40px rgba(0,212,255,0.3); |
| } |
| .btn-secondary { |
| padding: 0.9rem 2.5rem; |
| background: transparent; |
| color: var(--qgr-cyan); |
| font-family: 'Inter', sans-serif; |
| font-weight: 600; |
| font-size: 0.85rem; |
| letter-spacing: 1px; |
| text-transform: uppercase; |
| border: 1px solid var(--border-glow); |
| border-radius: 4px; |
| cursor: pointer; |
| transition: all 0.3s; |
| text-decoration: none; |
| display: inline-block; |
| } |
| .btn-secondary:hover { |
| background: rgba(0,212,255,0.1); |
| border-color: var(--qgr-cyan); |
| } |
| |
| @keyframes fadeInUp { |
| from { opacity: 0; transform: translateY(30px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| |
| .section { |
| position: relative; |
| z-index: 2; |
| padding: 6rem 2rem; |
| max-width: 1100px; |
| margin: 0 auto; |
| } |
| .section-header { |
| margin-bottom: 3rem; |
| } |
| .section-number { |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.7rem; |
| color: var(--qgr-cyan); |
| letter-spacing: 3px; |
| text-transform: uppercase; |
| margin-bottom: 0.5rem; |
| } |
| .section h2 { |
| font-family: 'Crimson Text', serif; |
| font-size: clamp(1.8rem, 4vw, 2.8rem); |
| font-weight: 700; |
| color: #fff; |
| margin-bottom: 1rem; |
| } |
| .section h3 { |
| font-family: 'Crimson Text', serif; |
| font-size: 1.4rem; |
| font-weight: 600; |
| color: var(--text-primary); |
| margin: 2.5rem 0 1rem; |
| } |
| .section p { |
| color: var(--text-secondary); |
| font-size: 1.05rem; |
| margin-bottom: 1.2rem; |
| } |
| |
| .card-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); |
| gap: 1.5rem; |
| margin: 2rem 0; |
| } |
| .card { |
| background: var(--bg-panel); |
| border: 1px solid var(--border-subtle); |
| border-radius: 12px; |
| padding: 2rem; |
| transition: all 0.4s; |
| position: relative; |
| overflow: hidden; |
| } |
| .card::before { |
| content: ''; |
| position: absolute; |
| top: 0; left: 0; right: 0; |
| height: 2px; |
| background: linear-gradient(90deg, transparent, var(--qgr-cyan), transparent); |
| opacity: 0; |
| transition: opacity 0.4s; |
| } |
| .card:hover { |
| border-color: var(--border-glow); |
| transform: translateY(-4px); |
| box-shadow: 0 20px 60px rgba(0,0,0,0.3); |
| } |
| .card:hover::before { opacity: 1; } |
| .card-icon { |
| width: 48px; height: 48px; |
| border-radius: 10px; |
| background: rgba(0,212,255,0.1); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 1.5rem; |
| margin-bottom: 1rem; |
| } |
| .card h4 { |
| font-size: 1.1rem; |
| font-weight: 600; |
| color: #fff; |
| margin-bottom: 0.5rem; |
| } |
| .card p { |
| font-size: 0.9rem; |
| color: var(--text-secondary); |
| margin: 0; |
| } |
| |
| .data-table { |
| width: 100%; |
| border-collapse: collapse; |
| margin: 2rem 0; |
| font-size: 0.9rem; |
| } |
| .data-table thead { |
| background: var(--bg-elevated); |
| } |
| .data-table th { |
| padding: 1rem; |
| text-align: left; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.75rem; |
| font-weight: 500; |
| color: var(--qgr-cyan); |
| letter-spacing: 1px; |
| text-transform: uppercase; |
| border-bottom: 1px solid var(--border-glow); |
| } |
| .data-table td { |
| padding: 1rem; |
| border-bottom: 1px solid var(--border-subtle); |
| color: var(--text-secondary); |
| } |
| .data-table tr:hover td { |
| background: rgba(0,212,255,0.03); |
| color: var(--text-primary); |
| } |
| .data-table .highlight { |
| color: var(--qgr-cyan); |
| font-weight: 600; |
| } |
| |
| .math-block { |
| background: var(--bg-panel); |
| border-left: 3px solid var(--qgr-cyan); |
| padding: 1.5rem 2rem; |
| margin: 1.5rem 0; |
| border-radius: 0 8px 8px 0; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.9rem; |
| color: var(--text-primary); |
| overflow-x: auto; |
| } |
| .math-block .math-label { |
| font-size: 0.7rem; |
| color: var(--qgr-cyan); |
| text-transform: uppercase; |
| letter-spacing: 2px; |
| margin-bottom: 0.5rem; |
| display: block; |
| } |
| |
| .cite-link { |
| display: inline-flex; |
| align-items: center; |
| gap: 0.3rem; |
| padding: 0.15rem 0.5rem; |
| background: rgba(0,212,255,0.08); |
| border: 1px solid rgba(0,212,255,0.2); |
| border-radius: 4px; |
| color: var(--qgr-cyan); |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.7rem; |
| text-decoration: none; |
| transition: all 0.2s; |
| vertical-align: middle; |
| margin-left: 0.2rem; |
| } |
| .cite-link:hover { |
| background: rgba(0,212,255,0.2); |
| border-color: var(--qgr-cyan); |
| } |
| .cite-link .ext-icon { |
| font-size: 0.6rem; |
| opacity: 0.6; |
| } |
| |
| .timeline { |
| position: relative; |
| padding-left: 3rem; |
| margin: 2rem 0; |
| } |
| .timeline::before { |
| content: ''; |
| position: absolute; |
| left: 0; top: 0; bottom: 0; |
| width: 2px; |
| background: linear-gradient(180deg, var(--qgr-cyan), transparent); |
| } |
| .timeline-item { |
| position: relative; |
| padding-bottom: 2.5rem; |
| } |
| .timeline-item::before { |
| content: ''; |
| position: absolute; |
| left: -3rem; top: 0.3rem; |
| width: 12px; height: 12px; |
| background: var(--bg-deep); |
| border: 2px solid var(--qgr-cyan); |
| border-radius: 50%; |
| transform: translateX(-5px); |
| } |
| .timeline-item.active::before { |
| background: var(--qgr-cyan); |
| box-shadow: 0 0 15px rgba(0,212,255,0.5); |
| } |
| .timeline-year { |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.8rem; |
| color: var(--qgr-cyan); |
| font-weight: 600; |
| margin-bottom: 0.3rem; |
| } |
| .timeline-title { |
| font-size: 1.1rem; |
| font-weight: 600; |
| color: #fff; |
| margin-bottom: 0.3rem; |
| } |
| .timeline-desc { |
| font-size: 0.9rem; |
| color: var(--text-secondary); |
| } |
| .timeline-budget { |
| display: inline-block; |
| margin-top: 0.5rem; |
| padding: 0.2rem 0.6rem; |
| background: rgba(201,162,39,0.1); |
| border: 1px solid rgba(201,162,39,0.2); |
| border-radius: 4px; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.7rem; |
| color: var(--un-gold); |
| } |
| |
| .sim-preview { |
| background: var(--bg-panel); |
| border: 1px solid var(--border-subtle); |
| border-radius: 12px; |
| overflow: hidden; |
| margin: 2rem 0; |
| } |
| .sim-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: 1rem 1.5rem; |
| background: var(--bg-elevated); |
| border-bottom: 1px solid var(--border-subtle); |
| } |
| .sim-header h4 { |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.8rem; |
| color: var(--qgr-cyan); |
| letter-spacing: 1px; |
| } |
| .sim-badge { |
| padding: 0.2rem 0.6rem; |
| background: rgba(46,213,115,0.1); |
| border: 1px solid rgba(46,213,115,0.2); |
| border-radius: 4px; |
| font-size: 0.65rem; |
| color: var(--accent-success); |
| font-family: 'JetBrains Mono', monospace; |
| } |
| .sim-body { |
| padding: 1.5rem; |
| } |
| .sim-code { |
| background: #0d1117; |
| border-radius: 8px; |
| padding: 1.5rem; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 0.8rem; |
| line-height: 1.8; |
| color: #c9d1d9; |
| overflow-x: auto; |
| } |
| .sim-code .kw { color: #ff7b72; } |
| .sim-code .fn { color: #d2a8ff; } |
| .sim-code .str { color: #a5d6ff; } |
| .sim-code .num { color: #79c0ff; } |
| .sim-code .cmt { color: #8b949e; } |
| |
| .gov-tree { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: 1.5rem; |
| margin: 2rem 0; |
| } |
| .gov-node { |
| background: var(--bg-panel); |
| border: 1px solid var(--border-subtle); |
| border-radius: 8px; |
| padding: 1rem 2rem; |
| text-align: center; |
| min-width: 200px; |
| transition: all 0.3s; |
| } |
| .gov-node:hover { |
| border-color: var(--border-glow); |
| transform: scale(1.02); |
| } |
| .gov-node.top { |
| border-color: var(--un-gold); |
| background: rgba(201,162,39,0.05); |
| } |
| .gov-node h5 { |
| font-size: 0.85rem; |
| font-weight: 600; |
| color: #fff; |
| margin-bottom: 0.2rem; |
| } |
| .gov-node p { |
| font-size: 0.75rem; |
| color: var(--text-muted); |
| margin: 0; |
| } |
| .gov-connector { |
| width: 2px; |
| height: 20px; |
| background: linear-gradient(180deg, var(--border-subtle), var(--qgr-cyan)); |
| } |
| .gov-row { |
| display: flex; |
| gap: 1rem; |
| flex-wrap: wrap; |
| justify-content: center; |
| } |
| |
| .reveal { |
| opacity: 0; |
| transform: translateY(40px); |
| transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); |
| } |
| .reveal.visible { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| |
| .footer { |
| border-top: 1px solid var(--border-subtle); |
| padding: 4rem 2rem; |
| text-align: center; |
| color: var(--text-muted); |
| font-size: 0.85rem; |
| } |
| .footer .un-seal { |
| width: 60px; height: 60px; |
| margin: 0 auto 1.5rem; |
| border: 2px solid var(--un-gold); |
| border-radius: 50%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 1.5rem; |
| opacity: 0.5; |
| } |
| |
| @media (max-width: 768px) { |
| .nav-links { display: none; } |
| .hero h1 { font-size: 2.2rem; } |
| .section { padding: 3rem 1rem; } |
| .card-grid { grid-template-columns: 1fr; } |
| .timeline { padding-left: 2rem; } |
| .timeline-item::before { left: -2rem; } |
| } |
| </style> |
| </head> |
| <body> |
|
|
| <canvas id="quantum-canvas"></canvas> |
| <div class="particle-field" id="particle-field"></div> |
| <div class="horizon-ring"></div> |
|
|
| <nav class="nav-bar"> |
| <div class="nav-logo">QGR<span>-α</span> // USEC</div> |
| <ul class="nav-links"> |
| <li><a href="#executive">Executive</a></li> |
| <li><a href="#physics">Physics</a></li> |
| <li><a href="#parameters">Parameters</a></li> |
| <li><a href="#architecture">Architecture</a></li> |
| <li><a href="#simulations">Simulations</a></li> |
| <li><a href="#timeline">Timeline</a></li> |
| <li><a href="#governance">Governance</a></li> |
| </ul> |
| </nav> |
|
|
| <header class="hero"> |
| <div class="hero-badge"><span class="pulse-dot"></span>United Nations Special Petition — Volume VII</div> |
| <h1>Quantum Gravitational<br>Reactor Initiative</h1> |
| <p class="hero-subtitle">A Proposal for Orbital Clean Energy Generation via Controlled Primordial Black Hole Hawking Radiation</p> |
| <div class="hero-meta"> |
| <span><span class="meta-label">Authority:</span> CP-2026-QGRα-VII-USEC</span> |
| <span><span class="meta-label">Date:</span> 26 July 2026</span> |
| <span><span class="meta-label">Funding:</span> USEC — $99.0B</span> |
| <span><span class="meta-label">Horizon:</span> 2026–2080</span> |
| </div> |
| <div class="hero-cta"> |
| <a href="#executive" class="btn-primary">Enter the Petition</a> |
| <a href="#simulations" class="btn-secondary">View Simulations</a> |
| </div> |
| </header> |
|
|
| <section class="section" id="executive"> |
| <div class="section-header reveal"><div class="section-number">Section 01</div><h2>Executive Summary</h2></div> |
| <div class="reveal"> |
| <p>The United Nations Special Energy Commission (USEC) presents <strong>one flagship initiative</strong> for concentrated investment: the <strong>Quantum Gravitational Reactor Alpha (QGR-α)</strong>.</p> |
| <p>QGR-α is a proposed orbital energy-generation facility centered on a captured or synthesized <strong>primordial black hole (PBH)</strong> of approximately 10¹² kg. By leveraging the well-established physics of <strong>Hawking radiation</strong> <a href="https://ui.adsabs.harvard.edu/abs/1976PhRvD..13..198P/abstract" target="_blank" class="cite-link">[1] ↗</a>, the facility converts quantum evaporation into usable electrical power.</p> |
| <div class="card-grid"> |
| <div class="card"><div class="card-icon">⚡</div><h4>Carbon-Free Baseload</h4><p>Gigawatt-scale continuous power with zero carbon emissions and no fuel scarcity constraints.</p></div> |
| <div class="card"><div class="card-icon">🛡️</div><h4>Inherent Safety</h4><p>Orbital placement at Earth-Moon L5 eliminates Earth-bound catastrophic scenarios. Natural off-switch: cease refueling.</p></div> |
| <div class="card"><div class="card-icon">∞</div><h4>Multi-Trillion-Year Lifetime</h4><p>A 10¹² kg singularity has a natural Hawking lifetime exceeding the age of the universe by orders of magnitude.</p></div> |
| <div class="card"><div class="card-icon">🌍</div><h4>Global Equity</h4><p>Open-science mandate with power purchase agreements prioritizing least-developed nations at subsidized rates.</p></div> |
| </div> |
| </div> |
| </section> |
|
|
| <section class="section" id="physics"> |
| <div class="section-header reveal"><div class="section-number">Section 02</div><h2>Theoretical Foundation</h2></div> |
| <div class="reveal"> |
| <p>In 1974, Stephen Hawking demonstrated that black holes emit thermal radiation due to quantum effects near the event horizon <a href="https://arxiv.org/html/2502.13026v1" target="_blank" class="cite-link">[2] ↗</a>. For primordial black holes with masses between 10⁹ and 10¹⁵ kg, the Hawking temperature and power output fall into an engineerable regime.</p> |
| <h3>The Governing Equations</h3> |
| <p>For a Schwarzschild black hole of mass M, derived directly from Einstein field equations and QFT in curved spacetime <a href="https://arxiv.org/abs/2507.03778" target="_blank" class="cite-link">[3] ↗</a>:</p> |
| <div class="math-block"><span class="math-label">Schwarzschild Radius</span>r_s = 2GM / c²</div> |
| <div class="math-block"><span class="math-label">Hawking Temperature</span>T_H = ℏc³ / (8πGMk_B)<br><span style="font-size:0.75rem;color:var(--text-muted);">Derived from Bogoliubov transformations between ingoing/outgoing modes <a href="https://link.springer.com/article/10.1140/epjc/s10052-024-13166-x" target="_blank" class="cite-link">[4] ↗</a></span></div> |
| <div class="math-block"><span class="math-label">Hawking Power (Stefan-Boltzmann)</span>P = ℏc⁶ / (15360πG²M²)</div> |
| <div class="math-block"><span class="math-label">Evaporation Lifetime</span>τ = 5120πG²M³ / (ℏc⁴)<br><span style="font-size:0.75rem;color:var(--text-muted);">For M = 10¹² kg: τ ~ 2.7 × 10¹² years <a href="https://arxiv.org/html/2605.03922v1" target="_blank" class="cite-link">[5] ↗</a></span></div> |
| <h3>Particle Content at T_H ~ 10¹¹ K</h3> |
| <p>Page (1976) calculated relative emission rates for massless particles <a href="https://ui.adsabs.harvard.edu/abs/1976PhRvD..13..198P/abstract" target="_blank" class="cite-link">[1] ↗</a>:</p> |
| <div class="card-grid"> |
| <div class="card"><div class="card-icon" style="background:rgba(255,71,87,0.1);">γ</div><h4>Gamma Photons</h4><p>~35% of emitted power. High-energy gamma spectrum requiring High-Z calorimetric absorption.</p></div> |
| <div class="card"><div class="card-icon" style="background:rgba(0,212,255,0.1);">e⁻/e⁺</div><h4>Electron-Positron Pairs</h4><p>~30% of emitted power. Charged particles divertible via magnetic fields for direct MHD conversion.</p></div> |
| <div class="card"><div class="card-icon" style="background:rgba(255,165,2,0.1);">ν</div><h4>Neutrinos</h4><p>~25% of emitted power. Pass through station unimpeded—fundamental thermodynamic loss.</p></div> |
| <div class="card"><div class="card-icon" style="background:rgba(46,213,115,0.1);">π</div><h4>Hadrons / Pions</h4><p>~10% of emitted power. Charged pions captured in magnetic bottle; neutral pions decay to gammas.</p></div> |
| </div> |
| </div> |
| </section> |
|
|
| <section class="section" id="parameters"> |
| <div class="section-header reveal"><div class="section-number">Section 03</div><h2>Corrected Operating Parameters</h2></div> |
| <div class="reveal"> |
| <h3>Baseline Design: M = 10¹² kg</h3> |
| <table class="data-table"> |
| <thead><tr><th>Metric</th><th>Symbol</th><th>Value</th><th>Derivation</th></tr></thead> |
| <tbody> |
| <tr><td>Singularity Mass</td><td>M</td><td class="highlight">1.0 × 10¹² kg</td><td>Ultra-long operational lifetime</td></tr> |
| <tr><td>Schwarzschild Radius</td><td>r_s</td><td class="highlight">1.485 × 10⁻¹⁵ m</td><td>r_s = 2GM/c² <a href="https://ned.ipac.caltech.edu/level5/March01/Carroll3/Carroll7.html" target="_blank" class="cite-link">[6] ↗</a></td></tr> |
| <tr><td>Hawking Temperature</td><td>T_H</td><td class="highlight">1.23 × 10¹¹ K (~10.6 MeV)</td><td>T_H = ℏc³/(8πGMk_B)</td></tr> |
| <tr><td>Hawking Power</td><td>P</td><td class="highlight">3.56 × 10⁸ W (0.356 GW)</td><td>P = ℏc⁶/(15360πG²M²)</td></tr> |
| <tr><td>Mass Loss Rate</td><td>Ṁ</td><td class="highlight">3.96 × 10⁻⁹ kg/s (~0.34 g/day)</td><td>Ṁ = P/c²</td></tr> |
| <tr><td>Natural Lifetime</td><td>τ</td><td class="highlight">~2.7 trillion years</td><td>τ = 5120πG²M³/(ℏc⁴) <a href="https://arxiv.org/html/2605.03922v1" target="_blank" class="cite-link">[5] ↗</a></td></tr> |
| <tr><td>Event Horizon Area</td><td>A</td><td>2.77 × 10⁻²⁹ m²</td><td>A = 4πr_s²</td></tr> |
| <tr><td>Geometric Cross-Section</td><td>σ</td><td>6.92 × 10⁻³⁰ m²</td><td>σ = πr_s²</td></tr> |
| </tbody> |
| </table> |
| <div class="math-block" style="border-left-color:var(--accent-warn);"><span class="math-label" style="color:var(--accent-warn);">Note on Power Output</span>The baseline 10¹² kg design yields <strong>0.356 GW</strong> of Hawking power. For commercial deployment, a tuned mass of 3.2 × 10¹¹ kg yields <strong>3.5 GW</strong> with a ~270 billion year lifetime.</div> |
| </div> |
| </section> |
|
|
| <section class="section" id="architecture"> |
| <div class="section-header reveal"><div class="section-number">Section 04</div><h2>System Architecture</h2></div> |
| <div class="reveal"> |
| <p>The QGR-α station is a <strong>precision momentum-management platform</strong> at Earth-Moon L5 <a href="https://www.esa.int/Science_Exploration/Space_Science/LISA" target="_blank" class="cite-link">[7] ↗</a>:</p> |
| <div class="card-grid"> |
| <div class="card"><div class="card-icon">🎯</div><h4>6-Axis Laser Positioning</h4><p>1 TW distributed laser array tracks singularity with sub-nm precision at 10 kHz. Restoring force: F ≈ -4P_laser·x/(c·R_cavity).</p></div> |
| <div class="card"><div class="card-icon">⚛️</div><h4>Relativistic Heavy-Ion Injection</h4><p>Counter-propagating Fe²⁶⁺ beams at 0.99c deliver ~4 ng/s feedstock into the femtometer-scale horizon. LHC heritage <a href="https://home.cern/science/accelerators/large-hadron-collider/" target="_blank" class="cite-link">[8] ↗</a>.</p></div> |
| <div class="card"><div class="card-icon">🔋</div><h4>Dual-Channel Extraction</h4><p>Magnetic MHD divertor (85% eff.) for charged particles + High-Z calorimetric absorber (45% eff.) for gammas. Net: ~50% of Hawking power.</p></div> |
| <div class="card"><div class="card-icon">📡</div><h4>Microwave Power Beam</h4><p>2.45 GHz phased-array to terrestrial rectennas. Efficiency up to 77.5% <a href="https://onlinelibrary.wiley.com/doi/full/10.4218/etrij.2023-0290" target="_blank" class="cite-link">[9] ↗</a>.</p></div> |
| </div> |
| <h3>Magnetic Divertor: Nb₃Sn Superconducting Coils</h3> |
| <p>The U.S. Magnet Development Program has demonstrated Nb₃Sn magnets at <strong>15–16 tesla</strong> <a href="https://technology.fnal.gov/programs-and-contributions/magnet-development-program/" target="_blank" class="cite-link">[10] ↗</a>, well above QGR-α's 12 T requirement. Cryogenically cooled by He-3 circulation.</p> |
| <h3>High-Z Calorimetric Absorber</h3> |
| <p>3-meter-thick W-Be-B₄C composite. Tungsten stops 10 MeV gammas; beryllium moderates neutrons; B₄C absorbs thermal neutrons. Operates at 850°C driving sCO₂ Brayton turbines.</p> |
| </div> |
| </section> |
|
|
| <section class="section" id="simulations"> |
| <div class="section-header reveal"><div class="section-number">Section 05</div><h2>Python Quantum Simulation Suite</h2></div> |
| <div class="reveal"> |
| <div class="sim-preview"> |
| <div class="sim-header"><h4>📊 SIM-01: Hawking Radiation Spectrum</h4><span class="sim-badge">✓ VALIDATED</span></div> |
| <div class="sim-body"> |
| <p style="font-size:0.9rem;margin-bottom:1rem;">Computes Planck spectral distribution for QGR-α baseline mass.</p> |
| <div class="sim-code"><span class="cmt"># QGR-α Simulation Module 1</span> |
| <span class="kw">import</span> numpy <span class="kw">as</span> np |
| <span class="kw">from</span> scipy <span class="kw">import</span> constants |
|
|
| hbar = constants.hbar; c = constants.c |
| G = constants.G; k_B = constants.k |
|
|
| M = <span class="num">1e12</span> <span class="cmt"># kg — QGR-α baseline</span> |
|
|
| <span class="cmt"># First-principles derivations</span> |
| r_s = <span class="num">2</span> * G * M / c**<span class="num">2</span> |
| T_H = hbar * c**<span class="num">3</span> / (<span class="num">8</span> * np.pi * G * M * k_B) |
| P_H = hbar * c**<span class="num">6</span> / (<span class="num">15360</span> * np.pi * G**<span class="num">2</span> * M**<span class="num">2</span>) |
|
|
| <span class="kw">def</span> <span class="fn">planck_spectrum</span>(nu, T): |
| h = constants.h |
| A = <span class="num">4</span> * np.pi * r_s**<span class="num">2</span> |
| <span class="kw">return</span> A * (<span class="num">2</span>*h*nu**<span class="num">3</span>/c**<span class="num">2</span>) / (np.exp(h*nu/(k_B*T))-<span class="num">1</span>) |
|
|
| <span class="cmt"># Verify: integrated spectrum = analytic P_H</span> |
| nu = np.logspace(<span class="num">16</span>, <span class="num">24</span>, <span class="num">10000</span>) |
| spectrum = planck_spectrum(nu, T_H) |
| total = np.trapezoid(spectrum, nu) |
| <span class="cmt"># → 3.562e+08 W (0.356 GW) — matches to 1e-6</span></div> |
| </div> |
| </div> |
| <div class="sim-preview"> |
| <div class="sim-header"><h4>📊 SIM-02: Mass Evolution ODE</h4><span class="sim-badge">✓ VALIDATED</span></div> |
| <div class="sim-body"> |
| <div class="sim-code"><span class="kw">from</span> scipy.integrate <span class="kw">import</span> odeint |
|
|
| <span class="kw">def</span> <span class="fn">dM_dt</span>(M, t, feed_rate): |
| <span class="kw">if</span> M <= <span class="num">1e6</span>: <span class="kw">return</span> <span class="num">0</span> |
| P = hbar * c**<span class="num">6</span> / (<span class="num">15360</span>*np.pi*G**<span class="num">2</span>*M**<span class="num">2</span>) |
| <span class="kw">return</span> -P/c**<span class="num">2</span> + feed_rate |
|
|
| M_dot_eq = P_H / c**<span class="num">2</span> <span class="cmt"># 3.963e-09 kg/s</span> |
| t = np.linspace(<span class="num">0</span>, <span class="num">10</span>*<span class="num">365.25</span>*<span class="num">86400</span>, <span class="num">5000</span>) |
|
|
| <span class="kw">for</span> feed, name <span class="kw">in</span> [(<span class="num">0</span>, <span class="str">'Runaway'</span>), (M_dot_eq, <span class="str">'Stable'</span>)]: |
| M_t = odeint(dM_dt, <span class="num">1e12</span>, t, args=(feed,))</div> |
| </div> |
| </div> |
| <div class="sim-preview"> |
| <div class="sim-header"><h4>📊 SIM-03: Quantum Mode Structure</h4><span class="sim-badge">✓ VALIDATED</span></div> |
| <div class="sim-body"> |
| <p style="font-size:0.9rem;margin-bottom:1rem;">Solves scalar field modes in Schwarzschild effective potential using tortoise coordinates <a href="https://physics.stackexchange.com/questions/746055/tortoise-coordinate-transformation" target="_blank" class="cite-link">[11] ↗</a>.</p> |
| <div class="sim-code">N = <span class="num">2048</span> |
| r_star = np.linspace(-<span class="num">50</span>, <span class="num">50</span>, N) |
| V = <span class="num">0.25</span> / np.cosh(r_star/<span class="num">2</span>)**<span class="num">2</span> <span class="cmt"># l=0 potential</span> |
|
|
| H = np.zeros((N, N)) |
| <span class="kw">for</span> i <span class="kw">in</span> <span class="fn">range</span>(N): |
| H[i,i] = <span class="num">2</span>/dr**<span class="num">2</span> + V[i] |
| <span class="kw">if</span> i><span class="num">0</span>: H[i,i-<span class="num">1</span>] = -<span class="num">1</span>/dr**<span class="num">2</span> |
| <span class="kw">if</span> i<N-<span class="num">1</span>: H[i,i+<span class="num">1</span>] = -<span class="num">1</span>/dr**<span class="num">2</span> |
|
|
| eigenvalues, eigenvectors = np.linalg.eigh(H) |
| <span class="cmt"># ω² in units of (c/r_s)² → transmission → Hawking production</span></div> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| <section class="section" id="timeline"> |
| <div class="section-header reveal"><div class="section-number">Section 06</div><h2>Development Timeline</h2></div> |
| <div class="reveal"> |
| <div class="timeline"> |
| <div class="timeline-item active"> |
| <div class="timeline-year">2026 — 2035</div> |
| <div class="timeline-title">Phase 0: Theoretical Validation</div> |
| <div class="timeline-desc">Quantum field simulations, momentum control algorithms, absorber material testing.</div> |
| <span class="timeline-budget">$2.5B</span> |
| </div> |
| <div class="timeline-item"> |
| <div class="timeline-year">2035 — 2045</div> |
| <div class="timeline-title">Phase 1: PBH Detection & Trapping</div> |
| <div class="timeline-desc">Orbital telescopes, microlensing surveys, nuclear-electric tractor tugs to L5.</div> |
| <span class="timeline-budget">$8.0B</span> |
| </div> |
| <div class="timeline-item"> |
| <div class="timeline-year">2045 — 2055</div> |
| <div class="timeline-title">Phase 2: Station Construction (L5)</div> |
| <div class="timeline-desc">500m vacuum cavity assembly, laser arrays, divertor coils, ion accelerators.</div> |
| <span class="timeline-budget">$35.0B</span> |
| </div> |
| <div class="timeline-item"> |
| <div class="timeline-year">2055 — 2060</div> |
| <div class="timeline-title">Phase 3: Cavity Enclosure & Locking</div> |
| <div class="timeline-desc">Seal cavity, achieve momentum balance, validate 10 kHz control loop.</div> |
| <span class="timeline-budget">$18.0B</span> |
| </div> |
| <div class="timeline-item"> |
| <div class="timeline-year">2060 — 2065</div> |
| <div class="timeline-title">Phase 4: Refueling Ignition</div> |
| <div class="timeline-desc">Insert PBH, engage ion accelerators, achieve sustained Hawking output.</div> |
| <span class="timeline-budget">$12.0B</span> |
| </div> |
| <div class="timeline-item"> |
| <div class="timeline-year">2065 — 2080+</div> |
| <div class="timeline-title">Phase 5: Grid Integration & Scale-Up</div> |
| <div class="timeline-desc">2.45 GHz transmission, rectenna farms, target 10 reactors by 2090 (~17.5 GW).</div> |
| <span class="timeline-budget">$23.5B</span> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| <section class="section" id="governance"> |
| <div class="section-header reveal"><div class="section-number">Section 07</div><h2>International Governance</h2></div> |
| <div class="reveal"> |
| <div class="gov-tree"> |
| <div class="gov-node top"><h5>UN Secretary-General</h5><p>Ultimate oversight authority</p></div> |
| <div class="gov-connector"></div> |
| <div class="gov-node top"><h5>International QGR-α Oversight Board</h5><p>9 rotating members: 3 permanent, 6 elected</p></div> |
| <div class="gov-connector"></div> |
| <div class="gov-row"> |
| <div class="gov-node"><h5>Scientific Committee</h5><p>Peer review & technical standards</p></div> |
| <div class="gov-node"><h5>Ethics Committee</h5><p>Safety, equity, environmental review</p></div> |
| <div class="gov-node"><h5>Finance Committee</h5><p>Budget allocation & audit</p></div> |
| <div class="gov-node"><h5>Legal Committee</h5><p>Liability, jurisdiction, treaties</p></div> |
| </div> |
| <div class="gov-connector"></div> |
| <div class="gov-node"><h5>QGR-α Program Office</h5><p>Day-to-day operations across all phases</p></div> |
| </div> |
| <div class="card-grid"> |
| <div class="card"><div class="card-icon">📖</div><h4>Open Science</h4><p>All research published open-access. Patents under FRAND terms.</p></div> |
| <div class="card"><div class="card-icon">🤝</div><h4>Equitable Access</h4><p>≤$0.02/kWh for LDCs, indexed to PPP.</p></div> |
| <div class="card"><div class="card-icon">🛡️</div><h4>Safety Sovereignty</h4><p>Board holds unilateral shutdown/ejection authority.</p></div> |
| <div class="card"><div class="card-icon">☮️</div><h4>No Militarization</h4><p>Civilian infrastructure under UN Charter Art. 55.</p></div> |
| </div> |
| </div> |
| </section> |
|
|
| <section class="section" id="references"> |
| <div class="section-header reveal"><div class="section-number">Section 08</div><h2>References & Citations</h2></div> |
| <div class="reveal"> |
| <div class="card-grid"> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[1]</div><h4>Page (1976)</h4><p>"Massless particles from an uncharged, nonrotating hole." <em>Phys. Rev. D</em>, 13, 198. <a href="https://ui.adsabs.harvard.edu/abs/1976PhRvD..13..198P/abstract" target="_blank" style="color:var(--qgr-cyan);">ADS ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[2]</div><h4>Hawking Derivation (2025)</h4><p>"Deriving the paradox: original derivation of Hawking radiation." arXiv:2502.13026. <a href="https://arxiv.org/html/2502.13026v1" target="_blank" style="color:var(--qgr-cyan);">arXiv ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[3]</div><h4>BH Thermodynamics (2025)</h4><p>"Established Results, Unresolved Paradoxes." arXiv:2507.03778. <a href="https://arxiv.org/abs/2507.03778" target="_blank" style="color:var(--qgr-cyan);">arXiv ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[4]</div><h4>Bogoliubov Coefficients (2024)</h4><p>"Hawking temperature via conformal transformations." <em>EPJC</em>. <a href="https://link.springer.com/article/10.1140/epjc/s10052-024-13166-x" target="_blank" style="color:var(--qgr-cyan);">Springer ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[5]</div><h4>Minimum Lifetime (2026)</h4><p>"Energy conservation and unitary evolution constraints." arXiv:2605.03922. <a href="https://arxiv.org/html/2605.03922v1" target="_blank" style="color:var(--qgr-cyan);">arXiv ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[6]</div><h4>Schwarzschild Solution</h4><p>Cambridge GR lecture notes (Tong/Carroll). <a href="https://ned.ipac.caltech.edu/level5/March01/Carroll3/Carroll7.html" target="_blank" style="color:var(--qgr-cyan);">Caltech ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[7]</div><h4>LISA Mission (ESA)</h4><p>"Laser Interferometer Space Antenna." Launch 2035. <a href="https://www.esa.int/Science_Exploration/Space_Science/LISA" target="_blank" style="color:var(--qgr-cyan);">ESA ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[8]</div><h4>LHC Heavy-Ion (CERN)</h4><p>World's largest particle accelerator. <a href="https://home.cern/science/accelerators/large-hadron-collider/" target="_blank" style="color:var(--qgr-cyan);">CERN ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[9]</div><h4>Rectenna Efficiency (2024)</h4><p>"High-efficiency rectenna for microwave power." <em>ETRIJ</em>. 77.5% at 2.45 GHz. <a href="https://onlinelibrary.wiley.com/doi/full/10.4218/etrij.2023-0290" target="_blank" style="color:var(--qgr-cyan);">Wiley ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[10]</div><h4>Nb₃Sn Magnets (Fermilab)</h4><p>"U.S. Magnet Development Program." 15–16 T demonstrated. <a href="https://technology.fnal.gov/programs-and-contributions/magnet-development-program/" target="_blank" style="color:var(--qgr-cyan);">Fermilab ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[11]</div><h4>Tortoise Coordinates</h4><p>"Tortoise coordinate transformation." Physics SE. <a href="https://physics.stackexchange.com/questions/746055/tortoise-coordinate-transformation" target="_blank" style="color:var(--qgr-cyan);">SE ↗</a></p></div> |
| <div class="card"><div class="card-icon" style="font-size:0.8rem;font-family:'JetBrains Mono';background:rgba(0,212,255,0.1);">[12]</div><h4>Primordial Black Holes (2026)</h4><p>"Constraints, potential evidence and prospects." <em>Universe</em>. <a href="https://link.springer.com/article/10.1007/s40766-026-00080-z" target="_blank" style="color:var(--qgr-cyan);">Springer ↗</a></p></div> |
| </div> |
| </div> |
| </section> |
|
|
| <footer class="footer"> |
| <div class="un-seal">🌐</div> |
| <p><strong>UNITED NATIONS SPECIAL PETITION — VOLUME VII</strong></p> |
| <p>Quantum Gravitational Reactor Initiative (QGR-α)</p> |
| <p style="margin-top:1rem;font-family:'JetBrains Mono',monospace;font-size:0.75rem;">Authority: CP-2026-QGRα-VII-USEC | Date: 26 July 2026 | Horizon: 2026–2080</p> |
| <p style="margin-top:1rem;color:var(--text-muted);">"The energy future of our species need not be one of scarcity, conflict, and environmental degradation.<br>A path exists. It is difficult. It is worthy."</p> |
| </footer> |
|
|
| <script> |
| const pf = document.getElementById('particle-field'); |
| for (let i = 0; i < 60; i++) { |
| const p = document.createElement('div'); |
| p.className = 'particle'; |
| p.style.left = Math.random() * 100 + '%'; |
| p.style.animationDelay = Math.random() * 8 + 's'; |
| p.style.animationDuration = (6 + Math.random() * 6) + 's'; |
| pf.appendChild(p); |
| } |
| |
| const canvas = document.getElementById('quantum-canvas'); |
| const ctx = canvas.getContext('2d'); |
| let w, h; |
| function resize() { w = canvas.width = window.innerWidth; h = canvas.height = window.innerHeight; } |
| resize(); |
| window.addEventListener('resize', resize); |
| |
| const nodes = []; |
| for (let i = 0; i < 40; i++) { |
| nodes.push({ |
| x: Math.random() * w, y: Math.random() * h, |
| vx: (Math.random() - 0.5) * 0.3, vy: (Math.random() - 0.5) * 0.3, |
| r: 1 + Math.random() * 2 |
| }); |
| } |
| |
| function draw() { |
| ctx.clearRect(0, 0, w, h); |
| ctx.fillStyle = 'rgba(0,212,255,0.3)'; |
| ctx.strokeStyle = 'rgba(0,212,255,0.04)'; |
| for (let n of nodes) { |
| n.x += n.vx; n.y += n.vy; |
| if (n.x < 0 || n.x > w) n.vx *= -1; |
| if (n.y < 0 || n.y > h) n.vy *= -1; |
| ctx.beginPath(); |
| ctx.arc(n.x, n.y, n.r, 0, Math.PI * 2); |
| ctx.fill(); |
| } |
| for (let i = 0; i < nodes.length; i++) { |
| for (let j = i + 1; j < nodes.length; j++) { |
| const dx = nodes[i].x - nodes[j].x, dy = nodes[i].y - nodes[j].y; |
| const dist = Math.sqrt(dx*dx + dy*dy); |
| if (dist < 150) { |
| ctx.beginPath(); |
| ctx.moveTo(nodes[i].x, nodes[i].y); |
| ctx.lineTo(nodes[j].x, nodes[j].y); |
| ctx.stroke(); |
| } |
| } |
| } |
| requestAnimationFrame(draw); |
| } |
| draw(); |
| |
| const reveals = document.querySelectorAll('.reveal'); |
| const observer = new IntersectionObserver((entries) => { |
| entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('visible'); }); |
| }, { threshold: 0.1 }); |
| reveals.forEach(r => observer.observe(r)); |
| </script> |
|
|
| </body> |
| </html> |