cellar-protocol/calendar.html

294 lines
10 KiB
HTML
Raw Normal View History

2026-07-21 12:36:26 +02:00
<!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>