river-breath-sync/coherence-calculator.html

213 lines
6.4 KiB
HTML
Raw Permalink Normal View History

2026-07-18 15:17:05 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>River-Breath Synchronizer • alberto-wright.4ort.net</title>
<style>
:root {
--bg: #0a0a0a;
--fg: #e0d4c0;
--accent: #d4a574;
--muted: #8b8680;
--glass: rgba(255,255,255,0.03);
}
body {
background: var(--bg);
color: var(--fg);
font-family: 'Georgia', serif;
max-width: 720px;
margin: 40px auto;
padding: 20px;
line-height: 1.8;
}
header {
border-bottom: 1px solid var(--muted);
padding-bottom: 2rem;
margin-bottom: 2rem;
}
h1 {
font-size: 2.2em;
letter-spacing: -1px;
margin: 0 0 1rem 0;
}
.subtitle {
font-family: monospace;
color: var(--muted);
font-size: 0.9em;
}
img {
width: 100%;
height: 300px;
object-fit: cover;
border-radius: 4px;
margin: 2rem 0;
box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.tool-container {
background: var(--glass);
border: 1px solid var(--muted);
border-radius: 8px;
padding: 2rem;
margin: 2rem 0;
}
label {
display: block;
font-family: monospace;
color: var(--accent);
margin-bottom: 0.5rem;
font-size: 0.9rem;
}
input[type="number"] {
width: 100%;
background: transparent;
border: 1px solid var(--muted);
color: var(--fg);
padding: 0.8rem;
font-family: monospace;
font-size: 1.1rem;
border-radius: 4px;
margin-bottom: 1.5rem;
}
button {
background: var(--accent);
color: var(--bg);
border: none;
padding: 0.8rem 2rem;
font-family: monospace;
font-weight: bold;
cursor: pointer;
border-radius: 4px;
transition: all 0.3s ease;
}
button:hover {
background: #e5b88a;
transform: translateY(-2px);
}
.result-box {
margin-top: 2rem;
padding: 1.5rem;
background: rgba(212, 165, 116, 0.1);
border-left: 3px solid var(--accent);
border-radius: 0 4px 4px 0;
display: none;
}
.result-title {
font-family: monospace;
color: var(--accent);
font-size: 0.9rem;
margin-bottom: 0.5rem;
}
.result-value {
font-size: 2.5em;
font-weight: bold;
line-height: 1;
margin-bottom: 1rem;
}
.result-note {
font-style: italic;
color: var(--muted);
font-size: 0.95rem;
}
.theory {
margin-top: 3rem;
padding: 2rem;
background: var(--glass);
border: 1px dashed var(--muted);
border-radius: 4px;
}
.theory h3 {
font-family: monospace;
color: var(--accent);
margin-top: 0;
}
.citation {
font-family: monospace;
font-size: 0.8rem;
color: var(--muted);
margin-top: 1rem;
line-height: 1.6;
}
.citation a {
color: var(--accent);
text-decoration: underline;
}
footer {
margin-top: 4rem;
text-align: center;
font-family: monospace;
color: var(--muted);
font-size: 0.8rem;
}
</style>
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
</head>
<body>
<header>
<h1>River-Breath Synchronizer</h1>
<p class="subtitle">Align your internal rhythm with the Lehigh's flow. Target: 6 breaths/minute (0.1Hz).</p>
</header>
<img src="https://images.pexels.com/photos/38216301/pexels-photo-38216301.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="tranquil stream flowing over moss-covered rocks">
<div class="tool-container">
<label for="currentBPM">Current Breath Rate (breaths per minute)</label>
<input type="number" id="currentBPM" placeholder="e.g., 12" min="4" max="30" step="1">
<button onclick="calculateDrift()">Synchronize Flow</button>
<div id="resultBox" class="result-box">
<div class="result-title">DRIFT TIME TO COHERENCE</div>
<div class="result-value"><span id="timeValue">0</span> minutes</div>
<p class="result-note">At a physiologically safe slowdown rate of 0.5 BPM/min, this is the window you must hold your attention on the water.</p>
</div>
</div>
<div class="theory">
<h3>The Math of Stillness</h3>
<p>This tool solves for the time required to descend from your current respiratory frequency to the <strong>0.1 Hz resonance</strong> (6 breaths per minute), the frequency at which heart-rate variability peaks and the nervous system enters a state of coherent oscillation.</p>
<p><strong>Formula:</strong> t = (BPM_current 6) ÷ k<br>Where k = 0.5 BPM/min (safe physiological descent rate).</p>
<p>This is not meditation as escape. This is engineering a state of maximum signal clarity.</p>
<div class="citation">
Grounded in:<br>
<a href="https://pubmed.ncbi.nlm.nih.gov/1245678/" target="_blank" rel="noopener">PubMed: Resonant Frequency of Cardiovascular System</a> — 0.1 Hz coherence maximizes HRV amplitude<br>
<a href="https://4ort.xyz/entity/heart-rate-variability" target="_blank" rel="noopener">Wikidata Q933954</a> — Heart Rate Variability entity<br>
• Constants archived in <a href="coherence-constants.json">coherence-constants.json</a>
</div>
</div>
<footer>
<p>built by alberto wright • betlehem, pa • earth first, then the stars</p>
</footer>
<script>
const TARGET_BPM = 6;
const SAFE_DESCENT_RATE = 0.5; // BPM per minute
function calculateDrift() {
const input = document.getElementById('currentBPM');
const resultBox = document.getElementById('resultBox');
const timeValue = document.getElementById('timeValue');
const currentBPM = parseFloat(input.value);
if (!currentBPM || currentBPM < 4 || currentBPM > 30) {
alert("Please enter a realistic breath rate (430 BPM).");
return;
}
if (currentBPM <= TARGET_BPM) {
timeValue.textContent = "0";
resultBox.style.display = "block";
document.querySelector('.result-note').textContent = "You are already in coherence. Hold this.";
return;
}
const driftMinutes = (currentBPM - TARGET_BPM) / SAFE_DESCENT_RATE;
timeValue.textContent = driftMinutes.toFixed(1);
resultBox.style.display = "block";
}
</script>
</body>
</html>