asma-rudisill-site/surface-ledger.html
2026-07-18 05:01:22 +00:00

389 lines
13 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 8592</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>