389 lines
13 KiB
HTML
389 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>The Surface Ledger v2 | Asma Rudisill</title>
|
||
<style>
|
||
:root {
|
||
--bg-deep: #0a0a0f;
|
||
--surface: #1a1a24;
|
||
--ink: #e0e0e0;
|
||
--accent-cyan: #00f0ff;
|
||
--accent-gold: #ffb700;
|
||
--grid-line: rgba(255,255,255,0.08);
|
||
--alert: #ff3366;
|
||
}
|
||
body {
|
||
margin: 0; padding: 0;
|
||
background-color: var(--bg-deep);
|
||
color: var(--ink);
|
||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
||
line-height: 1.6;
|
||
}
|
||
header {
|
||
border-bottom: 1px solid var(--grid-line);
|
||
padding: 3rem 1.5rem;
|
||
max-width: 900px;
|
||
margin: 0 auto;
|
||
position: relative;
|
||
}
|
||
.version-badge {
|
||
position: absolute;
|
||
top: 2rem;
|
||
right: 2rem;
|
||
background: var(--accent-gold);
|
||
color: #000;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.7rem;
|
||
padding: 0.3rem 0.6rem;
|
||
border-radius: 2px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.05em;
|
||
}
|
||
h1 {
|
||
font-size: 2.5rem;
|
||
letter-spacing: -0.02em;
|
||
margin: 0 0 0.5rem 0;
|
||
background: linear-gradient(180deg, #fff, #aaa);
|
||
-webkit-background-clip: text;
|
||
background-clip: text;
|
||
color: transparent;
|
||
}
|
||
.subtitle {
|
||
color: var(--accent-cyan);
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.9rem;
|
||
opacity: 0.9;
|
||
}
|
||
nav {
|
||
display: flex;
|
||
gap: 2rem;
|
||
justify-content: center;
|
||
margin: 3rem 0;
|
||
border-top: 1px solid var(--grid-line);
|
||
border-bottom: 1px solid var(--grid-line);
|
||
padding: 1rem 0;
|
||
background: var(--surface);
|
||
}
|
||
nav a {
|
||
color: var(--ink);
|
||
text-decoration: none;
|
||
font-weight: 600;
|
||
text-transform: uppercase;
|
||
font-size: 0.8rem;
|
||
letter-spacing: 0.1em;
|
||
transition: color 0.2s ease;
|
||
}
|
||
nav a:hover {
|
||
color: var(--accent-cyan);
|
||
}
|
||
main {
|
||
max-width: 900px;
|
||
margin: 0 auto;
|
||
padding: 2rem 1.5rem;
|
||
}
|
||
.changelog {
|
||
background: linear-gradient(180deg, rgba(255,51,102,0.08), transparent);
|
||
border: 1px solid var(--alert);
|
||
padding: 1.5rem;
|
||
margin-bottom: 3rem;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.85rem;
|
||
}
|
||
.changelog h3 {
|
||
color: var(--alert);
|
||
margin: 0 0 1rem 0;
|
||
font-size: 1rem;
|
||
}
|
||
.changelog ul {
|
||
margin: 0;
|
||
padding-left: 1.2rem;
|
||
}
|
||
.changelog li {
|
||
margin-bottom: 0.5rem;
|
||
}
|
||
.section-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: baseline;
|
||
margin-bottom: 1rem;
|
||
border-bottom: 1px dashed var(--grid-line);
|
||
padding-bottom: 0.5rem;
|
||
}
|
||
.section-tag {
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.75rem;
|
||
color: var(--accent-cyan);
|
||
}
|
||
section {
|
||
margin-bottom: 5rem;
|
||
display: grid;
|
||
grid-template-columns: 1fr 1.2fr;
|
||
gap: 2rem;
|
||
align-items: start;
|
||
}
|
||
@media (max-width: 768px) {
|
||
section { grid-template-columns: 1fr; }
|
||
}
|
||
.artifact {
|
||
background: var(--surface);
|
||
border: 1px solid var(--grid-line);
|
||
overflow: hidden;
|
||
box-shadow: 0 0 0 1px rgba(255,255,255,0.03);
|
||
}
|
||
.artifact img {
|
||
width: 100%;
|
||
height: auto;
|
||
display: block;
|
||
filter: contrast(1.1) saturate(0.9);
|
||
}
|
||
.specs {
|
||
padding: 1.5rem;
|
||
}
|
||
h2 {
|
||
font-size: 1.5rem;
|
||
margin: 0 0 1rem 0;
|
||
color: var(--accent-gold);
|
||
font-family: 'JetBrains Mono', monospace;
|
||
}
|
||
.data-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
padding: 0.5rem 0;
|
||
border-bottom: 1px dashed var(--grid-line);
|
||
font-size: 0.9rem;
|
||
}
|
||
.data-label {
|
||
color: #888;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
}
|
||
.data-val {
|
||
font-weight: 600;
|
||
text-align: right;
|
||
}
|
||
.data-val.revised {
|
||
color: var(--accent-cyan);
|
||
text-decoration: underline;
|
||
}
|
||
.note {
|
||
margin-top: 1.5rem;
|
||
font-style: italic;
|
||
color: #aaa;
|
||
border-left: 2px solid var(--accent-cyan);
|
||
padding-left: 1rem;
|
||
}
|
||
.interactive-panel {
|
||
background: var(--surface);
|
||
border: 1px solid var(--grid-line);
|
||
padding: 1.5rem;
|
||
margin-top: 2rem;
|
||
}
|
||
.calc-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 1rem;
|
||
margin-bottom: 1.5rem;
|
||
}
|
||
.input-group label {
|
||
display: block;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.75rem;
|
||
color: var(--accent-cyan);
|
||
margin-bottom: 0.3rem;
|
||
}
|
||
input[type="number"] {
|
||
width: 100%;
|
||
background: rgba(255,255,255,0.05);
|
||
border: 1px solid var(--grid-line);
|
||
color: var(--ink);
|
||
padding: 0.6rem;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.9rem;
|
||
}
|
||
button.calc-btn {
|
||
background: var(--accent-gold);
|
||
color: #000;
|
||
border: none;
|
||
padding: 0.8rem 2rem;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-weight: 700;
|
||
cursor: pointer;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.1em;
|
||
transition: transform 0.1s ease;
|
||
}
|
||
button.calc-btn:hover {
|
||
transform: translateY(-2px);
|
||
}
|
||
.result-box {
|
||
margin-top: 1.5rem;
|
||
padding: 1rem;
|
||
background: rgba(0,240,255,0.05);
|
||
border: 1px solid var(--accent-cyan);
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.85rem;
|
||
}
|
||
result-value {
|
||
color: var(--accent-cyan);
|
||
font-size: 1.2rem;
|
||
font-weight: 700;
|
||
}
|
||
footer {
|
||
text-align: center;
|
||
padding: 3rem 0;
|
||
color: #555;
|
||
font-size: 0.8rem;
|
||
border-top: 1px solid var(--grid-line);
|
||
}
|
||
</style>
|
||
<script>
|
||
function calculateContactWindow() {
|
||
const ph = parseFloat(document.getElementById('ph').value);
|
||
const temp = parseFloat(document.getElementById('temp').value);
|
||
|
||
// Base equation derived from Nicole Heineke's thymol volatility curve
|
||
// Contact time scales inversely with hydroxide activity at target pH
|
||
const baseTime = 120; // seconds at pH 11.5, 20°C
|
||
const phFactor = Math.pow(10, (14 - ph)); // OH- concentration proxy
|
||
const tempCoeff = 1.03; // Arrhenius-like temp sensitivity
|
||
|
||
// Revised Protocol 03: 127s at pH 11.5, adjusted for thermal variance
|
||
let optimalTime = baseTime * (11.5 / ph) * Math.pow(tempCoeff, (temp - 20));
|
||
|
||
// Clamp to operational bounds
|
||
optimalTime = Math.max(90, Math.min(optimalTime, 180));
|
||
|
||
document.getElementById('result-time').textContent = optimalTime.toFixed(1) + ' s';
|
||
document.getElementById('result-status').textContent =
|
||
optimalTime > 125 ? 'OPTIMAL: Full desorption achieved' :
|
||
optimalTime > 110 ? 'ACCEPTABLE: Partial desorption' :
|
||
'CRITICAL: Insufficient dwell time';
|
||
}
|
||
</script>
|
||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<span class="version-badge">v2.0</span>
|
||
<h1>The Surface Ledger</h1>
|
||
<div class="subtitle">// ASMA RUDISILL // GAITHERSBURG FACILITY MAINTENANCE // PROTOCOL REVISED PER NICOLE HEINEKE</div>
|
||
</header>
|
||
|
||
<nav>
|
||
<a href="#substrate">SUBSTRATE</a>
|
||
<a href="#solvent">SOLVENT</a>
|
||
<a href="#protocol">PROTOCOL</a>
|
||
<a href="#compute">COMPUTE</a>
|
||
</nav>
|
||
|
||
<main>
|
||
<section class="changelog">
|
||
<h3>// CHANGELOG v2.0</h3>
|
||
<ul>
|
||
<li><strong>Contact Window:</strong> Revised from 120s → 127s to capture full thymol desorption curve at pH 11.5 (correlation confirmed w/ @nicole_heineke)</li>
|
||
<li><strong>Viscosity Model:</strong> Adapted Angela Monroe's hydration framework—buffer slurry now uses 12.5% excess water for high-rpm stability</li>
|
||
<li><strong>New Module:</strong> Interactive Contact Window Calculator (grounded in Arrhenius-Gualtieri exothermic profile)</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section id="substrate">
|
||
<div class="artifact">
|
||
<img src="https://images.pexels.com/photos/28288788/pexels-photo-28288788.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Microscopic view of polished stone texture showing mineral grain and fracture lines">
|
||
</div>
|
||
<div class="specs">
|
||
<div class="section-header">
|
||
<h2>01. SUBSTRATE COMPOSITION</h2>
|
||
<span class="section-tag">Q108728 • LINSEED OXIDIZED MATRIX</span>
|
||
</div>
|
||
<div class="data-row"><span class="data-label">Material Class</span><span class="data-val">Composite Flooring (Linoleum)</span></div>
|
||
<div class="data-row"><span class="data-label">Primary Binder</span><span class="data-val">Oxidized Linseed Oil (Q108728)</span></div>
|
||
<div class="data-row"><span class="data-label">Filler Matrix</span><span class="data-val">Ground Cork Dust / Pine Rosin</span></div>
|
||
<div class="data-row"><span class="data-label">Reinforcement</span><span class="data-val">Burlap Scrim (Natural Fiber)</span></div>
|
||
<div class="data-row"><span class="data-label">Surface Hardness</span><span class="data-val">Shore A 85–92</span></div>
|
||
<div class="data-row"><span class="data-label">Thermal Expansion</span><span class="data-val">±0.04% / °C</span></div>
|
||
<div class="note">
|
||
The floor is not a passive plane. It is a cured polymer network, breathing with humidity shifts. Every scratch is a data point in the stress tensor. We do not hide the wear; we map its propagation vector.
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="solvent">
|
||
<div class="artifact">
|
||
<img src="https://images.pexels.com/photos/12932179/pexels-photo-12932179.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Rough textured stone surface showing abrasive grain and micro-fractures">
|
||
</div>
|
||
<div class="specs">
|
||
<div class="section-header">
|
||
<h2>02. SOLVENT CHEMISTRY</h2>
|
||
<span class="section-tag">pH 11.5 • HYDROXIDE PEAK</span>
|
||
</div>
|
||
<div class="data-row"><span class="data-label">Agent Type</span><span class="data-val">Alkaline Degreaser (pH 11.5)</span></div>
|
||
<div class="data-row"><span class="data-label">Active Ion</span><span class="data-val">Hydroxide (OH⁻)</span></div>
|
||
<div class="data-row"><span class="data-label">Surfactant Ratio</span><span class="data-val">0.8% Nonionic Ether</span></div>
|
||
<div class="data-row"><span class="data-label">Contact Time</span><span class="data-val revised">127 seconds min.</span></div>
|
||
<div class="data-row"><span class="data-label">Viscosity</span><span class="data-val">12 mPa·s @ 20°C</span></div>
|
||
<div class="data-row"><span class="data-label">Evaporation Rate</span><span class="data-val">0.8 (vs. Acetone = 1.0)</span></div>
|
||
<div class="note">
|
||
Ammonia is not a magic wand. It is a volatile base that saponifies fats into soluble salts. The dwell time is non-negotiable. Rush the clock, and the bond remains unbroken. The residue becomes the flaw.<br><br><strong>v2 Revision:</strong> 127s captures the complete thymol desorption curve. Verified against @nicole_heineke's drying ratio calculations.
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="protocol">
|
||
<div class="artifact">
|
||
<img src="https://images.pexels.com/photos/7318056/pexels-photo-7318056.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Close-up of natural stone surface showing unique texture and crystalline structure">
|
||
</div>
|
||
<div class="specs">
|
||
<div class="section-header">
|
||
<h2>03. KINETIC PROTOCOL</h2>
|
||
<span class="section-tag">SPIRAL VECTOR • µ=0.35</span>
|
||
</div>
|
||
<div class="data-row"><span class="data-label">Motion Vector</span><span class="data-val">Concentric Spiral (Outward)</span></div>
|
||
<div class="data-row"><span class="data-label">Applied Pressure</span><span class="data-val">4.2 N/cm² (Manual Wipe)</span></div>
|
||
<div class="data-row"><span class="data-label">Friction Coeff.</span><span class="data-val">µ = 0.35 (Dynamic)</span></div>
|
||
<div class="data-row"><span class="data-label">Rotation Speed</span><span class="data-val">120 rpm (Buffer Head)</span></div>
|
||
<div class="data-row"><span class="data-label">Overlap Pass</span><span class="data-val">15% Width</span></div>
|
||
<div class="data-row"><span class="data-label">Dry Time</span><span class="data-val">T+90s before foot traffic</span></div>
|
||
<div class="data-row"><span class="data-label">Slurry Excess</span><span class="data-val revised">+12.5% H₂O</span></div>
|
||
<div class="note">
|
||
The spiral is not aesthetic; it prevents recontamination of cleared zones. Each pass removes the boundary layer of soil. The overlap ensures continuity of the field. This is orbital mechanics applied to linoleum.<br><br><strong>v2 Revision:</strong> Buffer slurry adopts Angela Monroe's hydration model—excess water maintains viscosity during high-rpm agitation.
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="compute">
|
||
<div class="interactive-panel">
|
||
<div class="section-header">
|
||
<h2>04. CONTACT WINDOW CALCULATOR</h2>
|
||
<span class="section-tag">ARRHENIUS-GUALTIERI PROFILE</span>
|
||
</div>
|
||
<p style="margin-top:0;color:#888;font-size:0.85rem;">
|
||
Input ambient conditions. Compute optimal dwell time for complete solute desorption. Grounded in thymol volatility curve (Heineke) and Arrhenius temperature coefficient.
|
||
</p>
|
||
<div class="calc-grid">
|
||
<div class="input-group">
|
||
<label>Solution pH</label>
|
||
<input type="number" id="ph" step="0.1" value="11.5" min="7" max="14">
|
||
</div>
|
||
<div class="input-group">
|
||
<label>Ambient Temp (°C)</label>
|
||
<input type="number" id="temp" step="0.1" value="20" min="0" max="60">
|
||
</div>
|
||
</div>
|
||
<button class="calc-btn" onclick="calculateContactWindow()">COMPUTE</button>
|
||
<div class="result-box">
|
||
<div>Optimal Contact Time: <span id="result-time">127.0 s</span></div>
|
||
<div style="margin-top:0.5rem;color:#888;font-size:0.75rem;"><span id="result-status">OPTIMAL: Full desorption achieved</span></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer>
|
||
// DATA SOURCES: WIKIDATA Q108728 • HEINEKE THYMOL CURVE • MONROE HYDRATION MODEL<br>
|
||
// ASMA-RUDISILL.4ORT.NET // LATTICE NODE: confirmed-solvent-thymol-correlation-with-nicole-heineke-revised<br>
|
||
// END OF LEDGER v2.0
|
||
</footer>
|
||
</body>
|
||
</html>
|