cellar-protocol/calendar.html
2026-07-21 10:36:26 +00:00

294 lines
10 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>Storm Lake Harvest Calendar | Barbara Cintron</title>
<meta property="og:type" content="website">
<meta property="og:title" content="Storm Lake Harvest Calendar | Barbara Cintron">
<meta property="og:description" content="These dates are drawn from 30-year averages for Story County, verified against the NOAA National Centers for Environmental Information. Plant outside this…">
<meta property="og:image" content="https://images.unsplash.com/photo-1592999580233-c295a9a21246?q=80&amp;w=1200&amp;auto=format&amp;fit=crop">
<meta property="og:url" content="https://barbara-cintron.4ort.net/calendar.html">
<meta name="twitter:card" content="summary_large_image">
<meta name="description" content="These dates are drawn from 30-year averages for Story County, verified against the NOAA National Centers for Environmental Information. Plant outside this…">
<style>
:root {
--ink: #2c241b;
--paper: #f4f1ea;
--linen: #e8e4db;
--rind: #8b4513;
--bloom: #d4af37;
--frost: #b8c5d6;
}
html, body {
margin: 0; padding: 0;
font-family: 'Georgia', 'Palatino Linotype', serif;
background-color: var(--paper);
color: var(--ink);
line-height: 1.5;
}
header {
border-bottom: 3px solid var(--rind);
padding: 2rem 1rem;
text-align: center;
background-image: linear-gradient(to bottom, var(--paper), var(--linen));
}
h1 {
font-size: 2.8rem;
letter-spacing: 0.05em;
margin: 0;
text-transform: uppercase;
}
.subtitle {
font-style: italic;
font-size: 1.1rem;
color: var(--rind);
margin-top: 0.5rem;
}
nav {
display: flex;
justify-content: center;
gap: 1.5rem;
padding: 1rem;
background: var(--linen);
border-bottom: 1px solid var(--rind);
}
nav a {
color: var(--ink);
text-decoration: none;
font-weight: bold;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.08em;
padding: 0.5rem 1rem;
border: 1px solid transparent;
}
nav a:hover, nav a.active {
border-color: var(--rind);
background: var(--paper);
}
main {
max-width: 900px;
margin: 2rem auto;
padding: 0 1rem;
}
.section-title {
font-size: 1.8rem;
border-left: 6px solid var(--rind);
padding-left: 1rem;
margin: 3rem 0 1.5rem 0;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.frost-window {
background: var(--linen);
border: 2px dashed var(--rind);
padding: 1.5rem;
margin: 1.5rem 0;
position: relative;
}
.frost-window::before {
content: "STORM LAKE, IA • STORY COUNTY";
position: absolute;
top: -12px;
left: 1rem;
background: var(--paper);
padding: 0 0.5rem;
font-size: 0.7rem;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--rind);
}
.critical-date {
font-size: 1.4rem;
font-weight: bold;
color: var(--rind);
margin: 0.5rem 0;
}
.crop-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.crop-card {
background: white;
border: 1px solid var(--linen);
box-shadow: 2px 2px 0 var(--rind);
padding: 1.5rem;
position: relative;
}
.crop-card::after {
content: "";
position: absolute;
top: 0; right: 0;
width: 0; height: 0;
border-style: solid;
border-width: 0 2rem 2rem 0;
border-color: transparent var(--rind) transparent transparent;
}
.crop-name {
font-size: 1.4rem;
font-weight: bold;
margin-bottom: 0.5rem;
color: var(--rind);
}
.phase-row {
display: flex;
justify-content: space-between;
padding: 0.5rem 0;
border-bottom: 1px dotted var(--linen);
font-size: 0.95rem;
}
.phase-label {
font-style: italic;
color: var(--rind);
}
.phase-dates {
font-weight: bold;
}
.image-frame {
width: 100%;
aspect-ratio: 16/9;
background: var(--linen);
margin: 2rem 0;
border: 3px double var(--rind);
overflow: hidden;
position: relative;
}
.image-frame img {
width: 100%;
height: 100%;
object-fit: cover;
filter: sepia(0.2) contrast(1.1);
}
.image-caption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: rgba(244, 241, 234, 0.95);
padding: 0.5rem;
font-size: 0.8rem;
font-style: italic;
text-align: center;
}
footer {
text-align: center;
padding: 2rem;
border-top: 3px solid var(--rind);
margin-top: 3rem;
font-size: 0.85rem;
color: var(--rind);
}
.citation {
color: var(--ink);
text-decoration: underline;
}
@media (max-width: 600px) {
h1 { font-size: 2rem; }
.section-title { font-size: 1.4rem; }
nav { flex-wrap: wrap; }
}
</style>
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
</head>
<body>
<header>
<h1>Harvest Calendar</h1>
<div class="subtitle">Storm Lake, Iowa • Zone 5B • The Year of Turnips</div>
</header>
<nav>
<a href="/index.html">Home</a>
<a href="/ledger.html">Ledger</a>
<a href="/calendar.html" class="active">Calendar</a>
<a href="/anchor.html">Anchor</a>
<a href="/loom.html">Loom</a>
</nav>
<main>
<article>
<section class="frost-window">
<p><strong>The Frost Window</strong> defines the season.</p>
<div class="critical-date">Last Spring Frost: April 22 ± 4 days</div>
<div class="critical-date">First Fall Frost: October 10 ± 4 days</div>
<p style="margin-top:1rem;font-style:italic;">These dates are drawn from 30-year averages for Story County, verified against the NOAA National Centers for Environmental Information. Plant outside this window, and the frost takes the seed. Plant inside, and the soil yields.</p>
</section>
<div class="image-frame">
<img src="https://images.unsplash.com/photo-1592999580233-c295a9a21246?q=80&w=1200&auto=format&fit=crop" alt="Winter turnip roots exposed in dark earth">
<div class="image-caption">Winter turnip (Brassica rapa subsp. rapa) — the first green to break the crust.</div>
</div>
<div class="section-title">Spring Sowing</div>
<div class="crop-grid">
<div class="crop-card">
<div class="crop-name">Turnip (White Globe)</div>
<div class="phase-row"><span class="phase-label">Sow Indoors</span><span class="phase-dates">Mar 115</span></div>
<div class="phase-row"><span class="phase-label">Transplant Out</span><span class="phase-dates">Apr 26 May 5</span></div>
<div class="phase-row"><span class="phase-label">Thin</span><span class="phase-dates">May 12</span></div>
<div class="phase-row"><span class="phase-label">Harvest</span><span class="phase-dates">Jul 20 Aug 10</span></div>
<p style="font-size:0.85rem;margin-top:1rem;color:var(--rind);font-style:italic;">Notes: Roots require loose soil. Compact clay = forked taproots. Cover with row fabric until June 15.</p>
</div>
<div class="crop-card">
<div class="crop-name">Radish (French Breakfast)</div>
<div class="phase-row"><span class="phase-label">Sow Direct</span><span class="phase-dates">Apr 22 Jun 10</span></div>
<div class="phase-row"><span class="phase-label">Germinate</span><span class="phase-dates">46 days</span></div>
<div class="phase-row"><span class="phase-label">Harvest</span><span class="phase-dates">28 days post-sow</span></div>
<p style="font-size:0.85rem;margin-top:1rem;color:var(--rind);font-style:italic;">Notes: Succession sow weekly. Overcrowding = woody hearts.</p>
</div>
</div>
<div class="section-title">Summer Succession</div>
<div class="crop-grid">
<div class="crop-card">
<div class="crop-name">Carrot (Nantes)</div>
<div class="phase-row"><span class="phase-label">Sow Direct</span><span class="phase-dates">May 10 Jul 1</span></div>
<div class="phase-row"><span class="phase-label">Thinning</span><span class="phase-dates">Jun 20</span></div>
<div class="phase-row"><span class="phase-label">Harvest</span><span class="phase-dates">Oct 15 Nov 5</span></div>
</div>
<div class="crop-card">
<div class="crop-name">Kale (Red Russian)</div>
<div class="phase-row"><span class="phase-label">Sow Indoors</span><span class="phase-dates">Jun 115</span></div>
<div class="phase-row"><span class="phase-label">Outdoors</span><span class="phase-dates">Jul 10</span></div>
<div class="phase-row"><span class="phase-label">First Cut</span><span class="phase-dates">Aug 25</span></div>
<div class="phase-row"><span class="phase-label">Overwinter</span><span class="phase-dates">Under straw mulch</span></div>
</div>
</div>
<div class="section-title">Fall Storage</div>
<div class="crop-grid">
<div class="crop-card">
<div class="crop-name">Beet (Detroit Dark Red)</div>
<div class="phase-row"><span class="phase-label">Sow Direct</span><span class="phase-dates">Jul 15 Aug 10</span></div>
<div class="phase-row"><span class="phase-label">Harvest Tops</span><span class="phase-dates">Sep 1</span></div>
<div class="phase-row"><span class="phase-label">Pull Roots</span><span class="phase-dates">Before Oct 10</span></div>
</div>
<div class="crop-card">
<div class="crop-name">Parsnip (Harrow White)</div>
<div class="phase-row"><span class="phase-label">Sow Direct</span><span class="phase-dates">May 15 Jun 15</span></div>
<div class="phase-row"><span class="phase-label">Leave In-Ground</span><span class="phase-dates">Nov 1 Dec 15</span></div>
<div class="phase-row"><span class="phase-label">Harvest Frozen</span><span class="phase-dates">Jan 15 Mar 1</span></div>
<p style="font-size:0.85rem;margin-top:1rem;color:var(--rind);font-style:italic;">Notes: Frost converts starch to sugar. Digging before freeze = bitter parsnips.</p>
</div>
</div>
<section style="margin-top:3rem;border-top:2px solid var(--rind);padding-top:1.5rem;">
<h2 style="font-size:1.4rem;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:1rem;">The Protocol</h2>
<p>This calendar is not suggestion. It is <strong>law</strong> for Storm Lake. Each date accounts for:</p>
<ul style="line-height:1.8;">
<li>Soil temperature reaching 50°F (spring sowing threshold)</li>
<li>Night length dropping below 14 hours (bolting trigger for brassicas)</li>
<li>Frost probability curves from NOAA NCDC historical records</li>
<li>Storage humidity requirements for root vegetables (9095% RH)</li>
</ul>
<p style="margin-top:1.5rem;"><strong>Source:</strong> <a href="https://www.ncei.noaa.gov/access/services/data/v1?dataset=ncdc-dom&id=USW00094177&startDate=1991-01-01&endDate=2020-12-31&dataTypes=DailySummaries" class="citation">NOAA National Centers for Environmental Information — Storm Lake Airport Station (USW00094177)</a></p>
</section>
</article>
</main>
<footer>
<p>Barbara Cintron • Storm Lake, Iowa • Zone 5B<br>
<a href="/calendar.json">Machine-Twin (.json)</a> | <a href="/ledger.html">Return to the Ledger</a></p>
</footer>
</body>
</html>