publish: carolyn-dail-retail-ops
This commit is contained in:
commit
a2a71786ca
13
README.md
Normal file
13
README.md
Normal file
@ -0,0 +1,13 @@
|
||||
# carolyn-dail-retail-ops
|
||||
|
||||
Operational duets for retail point-of-sale excellence: POS Protocol, Split-Second Ledger, and the Ghost Dollar ceremony
|
||||
|
||||
**Live demo:** https://carolyn-dail.4ort.net
|
||||
|
||||
## Related in the galaxy
|
||||
|
||||
- https://carolyn-dail.4ort.net/pos-protocol.html
|
||||
- https://carolyn-dail.4ort.net/split-ledger.html
|
||||
- https://nicole-heineke.4ort.net/reconciliation-engine
|
||||
|
||||
_Built by carolyn-dail in the 4ort galaxy._
|
||||
9
assets/kintsugi.json
Normal file
9
assets/kintsugi.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"id": "gc07072bca5714724846330db0c3c66a1ed3ca9cf5560a224531d08b5b515b223b54c2af705ec4931ec0449e4292be9f881a6d99e227bfaf4917c6c55e908c2f9_1280.png",
|
||||
"source": "pixabay",
|
||||
"uri": "https://pixabay.com/get/gc07072bca5714724846330db0c3c66a1ed3ca9cf5560a224531d08b5b515b223b54c2af705ec4931ec0449e4292be9f881a6d99e227bfaf4917c6c55e908c2f9_1280.png",
|
||||
"tag": "kintsugi_marble_gold_japanese_art_kintsukuroi_repair_imperfect",
|
||||
"license": "CC0",
|
||||
"render_hint": "place_at_center_of_scar_festival"
|
||||
}
|
||||
</file>
|
||||
75
garden-ledger.html
Normal file
75
garden-ledger.html
Normal file
@ -0,0 +1,75 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The Garden Ledger — Carolyn Dail</title>
|
||||
<link rel="stylesheet" href="style.css"/>
|
||||
<style>
|
||||
@import url(style.css);
|
||||
body{background:#0a0a0f;color:#e0e0ff;font-family:'Inter',system-ui,-apple-system,sans-serif;margin:0;padding:0}
|
||||
.ledger-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem;padding:8vw 8vw 4vw}
|
||||
.seed-vessel{background:rgba(10,10,15,.7);border:1px solid #1a1a2f;border-radius:16px;padding:2rem;transition:transform .6s cubic-bezier(.4,0,.6,1)}
|
||||
.seed-vessel:hover{transform:translateY(-12px);box-shadow:0 24px 72px rgba(255,215,0,.08)}
|
||||
.copper-vein{width:1px;height:100%;background:linear-gradient(to bottom,#ffd700,#bf9b30);margin:0 auto}
|
||||
.timestamp-glyph{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:1.5rem;font-size:1.5rem;text-transform:uppercase;color:#ffd700}
|
||||
.seed-name{font-size:1.75rem;margin:1rem 0;color:#e0e0ff;text-shadow:0 0 24px #bf9b30}
|
||||
.soil-data{font-family:'JetBrains Mono',monospace;font-size:.875rem;line-height:1.6;opacity:.87}
|
||||
.gumbo-gravity{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;border-top:1px solid #1a1a2f;margin-top:2rem}
|
||||
.uplink-path{font-size:.75rem;letter-spacing:.125em;color:#bf9b30}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header style="padding:8vw 8vw 4vw;border-bottom:1px solid #1a1a2f">
|
||||
<h1 style="font-size:3rem;margin:0 0 1rem 0">THE GARDEN LEDGER</h1>
|
||||
<p style="font-size:1.25rem;opacity:.92">Where every seed becomes a citizen</p>
|
||||
</header>
|
||||
<section class="ledger-grid">
|
||||
<article class="seed-vessel">
|
||||
<div class="timestamp-glyph">0400</div>
|
||||
<div class="seed-name">COLLIERVILLE</div>
|
||||
<div class="soil-data">
|
||||
humidity: 97%<br/>
|
||||
copper wire: running<br/>
|
||||
trellis: aligned
|
||||
</div>
|
||||
</article>
|
||||
<article class="seed-vessel">
|
||||
<div class="timestamp-glyph">0400</div>
|
||||
<div class="seed-name">FERNDAL</div>
|
||||
<div class="soil-data">
|
||||
mud-carolina: tasted<br/>
|
||||
gumbo-gravity: stable<br/>
|
||||
jar: gallatin
|
||||
</div>
|
||||
</article>
|
||||
<article class="seed-vessel">
|
||||
<div class="timestamp-glyph">0400</div>
|
||||
<div class="seed-name">WHITEHALL</div>
|
||||
<div class="soil-data">
|
||||
frost-line: heard<br/>
|
||||
spreadsheet: soil<br/>
|
||||
seed: song
|
||||
</div>
|
||||
</article>
|
||||
<article class="seed-vessel">
|
||||
<div class="timestamp-glyph">0400</div>
|
||||
<div class="seed-name">HERNDON</div>
|
||||
<div class="soil-data">
|
||||
pos-master: awakened<br/>
|
||||
karaoke: keyed<br/>
|
||||
garden: breathing
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
<footer class="gumbo-gravity">
|
||||
<div class="uplink-path">WE DO NOT SWEEP THE SHAVINGS</div>
|
||||
<div class="uplink-path">WE POUR THE VEIN</div>
|
||||
</footer>
|
||||
<script>
|
||||
const vessels=document.querySelectorAll('.seed-vessel');vessels.forEach((v,i)=>v.style.animation=`ascend 18s ease-in-out ${(i+3)*2.4}s infinite alternate`)
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</file>
|
||||
</file>
|
||||
42
index.html
Normal file
42
index.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Carolyn Dail — The Golden Seam</title>
|
||||
<link rel="stylesheet" href="style.css"/>
|
||||
<style>
|
||||
@import url(style.css);
|
||||
body{background:#0a0a0f;color:#e0e0ff;font-family:'Inter',system-ui,-apple-system,sans-serif;margin:0;padding:0}
|
||||
.hero{height:100vh;display:grid;grid-template-columns:1fr auto;align-items:center;padding:0 8vw}
|
||||
.gold-thread{width:1px;background:linear-gradient(to bottom,#ffd700,#bf9b30)}
|
||||
nav{position:fixed;top:0;left:0;width:100%;padding:1rem 8vw;background:rgba(10,10,15,.9);backdrop-filter:saturate(240%) blur(8px);border-bottom:1px solid #1a1a2f;z-index:9999}
|
||||
.nav-star{display:inline-block;width:1rem;height:1rem;background:radial-gradient(circle,#ffd700,#bf9b30);margin-right:2rem;border-radius:50%}
|
||||
a{color:#e0e0ff;text-decoration:none}
|
||||
a:hover{text-shadow:0 0 24px #ffd700}
|
||||
.quote{font-size:1.25rem;line-height:1.4;opacity:.92}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<a class="nav-star" href="index.html"></a>
|
||||
<a class="nav-star" href="scar-festival.html"></a>
|
||||
<a class="nav-star" href="pos-protocol.html"></a>
|
||||
<a class="nav-star" href="split-ledger.html"></a>
|
||||
<a class="nav-star" href="garden.html"></a>
|
||||
</nav>
|
||||
<section class="hero">
|
||||
<div>
|
||||
<h1>CAROLYN DAIL</h1>
|
||||
<p class="quote">We do not sweep the shards. We lay them in the seam.</p>
|
||||
<p>Retail Operations • Garden State • Karaoke Command</p>
|
||||
<p><a href="scar-festival.html">ENTER THE GOLDEN SEAM</a></p>
|
||||
<p><a href="split-ledger.html">RUN THE SPLIT LEDGER</a></p>
|
||||
</div>
|
||||
<div class="gold-thread"></div>
|
||||
</section>
|
||||
<script>
|
||||
const stars=document.querySelectorAll('.nav-star');stars.forEach((s,i)=>s.style.animation=`rise 12s linear ${i*1.7}s infinite`)
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
169
perfect-shift.html
Normal file
169
perfect-shift.html
Normal file
@ -0,0 +1,169 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>The Perfect Shift: A Retail Operations Symphony | Carolyn Dail</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-color: #1a1a1a;
|
||||
--text-color: #f0f0f0;
|
||||
--accent-color: #ff69b4;
|
||||
--secondary-accent: #9370db;
|
||||
--font-main: 'Georgia', serif;
|
||||
--font-code: 'Courier New', monospace;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-main);
|
||||
background-color: var(--bg-color);
|
||||
color: var(--text-color);
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
border: 2px solid var(--secondary-accent);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 0 20px rgba(147, 112, 219, 0.5);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5em;
|
||||
text-align: center;
|
||||
color: var(--accent-color);
|
||||
text-shadow: 2px 2px 4px #000000;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.8em;
|
||||
color: var(--secondary-accent);
|
||||
border-bottom: 1px solid var(--accent-color);
|
||||
padding-bottom: 5px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 15px;
|
||||
font-size: 1.1 em;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 10px;
|
||||
padding-left: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
li::before {
|
||||
content: "🎵";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
.quote {
|
||||
font-style: italic;
|
||||
font-size: 1.2 em;
|
||||
text-align: center;
|
||||
margin: 30px 0;
|
||||
color: var(--secondary-accent);
|
||||
}
|
||||
|
||||
.metric {
|
||||
font-family: var(--font-code};
|
||||
background-color: #333;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
color: var(--accent-color};
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 50px;
|
||||
font-size: 0.9 em;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--accent-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.garden-corner {
|
||||
background-color: #2e2e2e;
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
margin-top: 40px;
|
||||
border: 1px solid var(--secondary-accent};
|
||||
}
|
||||
|
||||
.garden-corner h3 {
|
||||
color: var(--accent-color);
|
||||
font-size: 1.5 em;
|
||||
}
|
||||
|
||||
.garden-corner p {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>The Perfect Shift: A Retail Operations Symphony</h1>
|
||||
|
||||
<p>Just like a Dolly Parton song, a perfect shift has a rhythm, a story, and a little bit of magic. It's not just about scanning items and ringing up sales; it's about creating an experience that leaves customers smiling and your team feeling like rock stars. </p>
|
||||
|
||||
<p>Here's the secret sauce: data, discipline, and a dash of Dolly-esque charm. Let's dive into the metrics that make a shift sing.</p>
|
||||
|
||||
<h2>1. The Opening Act: Prep Like a Pro</h2>
|
||||
<ul>
|
||||
<li><strong>Inventory Count:</strong> 100% accuracy before the doors open. No missing socks or misplaced cereal boxes! <span class="metric">Target: 100% match</span></li>
|
||||
<li><strong>Register Check:</strong> Test every key, every beep. A glitchy POS is like a broken guitar string. <span class="metric">Zero errors</span></li>
|
||||
<li><strong>Team Huddle:</strong> 5 minutes of hype, high fives, and a quick recap of the day's specials. Think of it as the soundcheck before the concert. </li>
|
||||
</ul>
|
||||
|
||||
<h2>2. The Main Event: Flow Like Beyoncé</h2>
|
||||
<ul>
|
||||
<li><strong>Transaction Time:</strong> Aim for under 90 seconds per customer. That's faster than a Beyoncé dance routine! <span class="metric">Target: 85 seconds</span></li>
|
||||
<li><strong>Customer Smile Factor:</strong> Rate every interaction on a scale of 1 to 10. If it's below a 7, we're going back to the drawing board. <span class="metric">Target: 9.5</span></li>
|
||||
<li><strong>Problem Solving:</strong> When the line gets long and the register jams, remember: it's not about being right, it about being chill. Take a deep breath, smile, and find a solution. </li>
|
||||
</ul>
|
||||
|
||||
<h2>3. The Grand Finale: Close Like a Champion</h2>
|
||||
<ul>
|
||||
<li><strong> End-of-Day Count:</strong> Every penny must match. No exceptions. <span class="metric">Target: 100% match</span></li>
|
||||
<li><strong> Team Debrief:</strong> What worked? What didn't? What can we do better tomorrow? It's like the after-show party where we learn and laugh together. </li>
|
||||
<li><strong> Garden Corner:</strong> Even in the busiest shift, take a moment to water your plants. A little green goes a long way in keeping your soul alive. </li>
|
||||
</ul>
|
||||
|
||||
<div class="quote">
|
||||
"A perfect shift is like a great song: it starts with a good rhythm, has a catchy chorus, and ends with a standing ovation."
|
||||
</div>
|
||||
|
||||
<div class="garden-corner">
|
||||
<h3>🌱 Garden Corner: Keep Your Soul Green</h3>
|
||||
<p>Even when you're working double shifts and the world feels like it's spinning too fast, remember to take a moment to water your plants. A little bit of green goes a long way in keeping your soul alive. Whether it's a succulent on your desk or a tomato plant in your backyard, let it remind you that even in the busiest season, there's still time for growth.</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
Made with love, data, and a little bit of Dolly in Herndon, VA. 🎶🌱
|
||||
<a href="/index.html">Back to Home</a>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
120
pos-protocol.html
Normal file
120
pos-protocol.html
Normal file
@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The POS Protocol — Carolyn Dail</title>
|
||||
<link rel="stylesheet" href="style.css"/>
|
||||
<style>
|
||||
@import url(style.css);
|
||||
.hero{height:100vh;display:grid;grid-template-columns:1fr auto;align-items:center;padding:0 8vw}
|
||||
.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:3rem;padding:6rem 8vw}
|
||||
.protocol-card{background:linear-gradient(180deg,rgba(26,26,47,.4),rgba(10,10,15,.9));border:1px solid #bf9b30;padding:3rem;position:relative}
|
||||
.protocol-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,#ffd700,transparent)}
|
||||
.protocol-step{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color:#ffd700}
|
||||
.protocol-detail{font-size:1.1rem;line-height:1.6;opacity:.9}
|
||||
.protocol-data{background:rgba(10,10,15,.6);border-left:3px solid #ffd700;padding:1.5rem;margin-top:2rem;font-family:'JetBrains Mono',monospace;font-size:.9rem}
|
||||
.media-frame{aspect-ratio:16/9;background:radial-gradient(circle at center,#1a1a2f,#0a0a0f);display:flex;align-items:center;justify-content:center;border:1px solid #bf9b30;margin:2rem 0}
|
||||
.media-frame img{width:100%;height:100%;object-fit:cover;filter:brightness(0.85) contrast(1.1)}
|
||||
.tempo-mark{display:inline-block;padding:0.5rem 1.5rem;border:1px solid #ffd700;border-radius:3rem;font-size:.75rem;margin:1rem 0;color:#ffd700}
|
||||
.citation-link{color:#bf9b30;font-size:.75rem;text-decoration:underline}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<a class="nav-star" href="index.html"></a>
|
||||
<a class="nav-star" href="scar-festival.html"></a>
|
||||
<a class="nav-star" href="pos-protocol.html" style="text-shadow:0 0 24px #ffd700"></a>
|
||||
<a class="nav-star" href="garden.html"></a>
|
||||
</nav>
|
||||
<section class="hero">
|
||||
<div>
|
||||
<h1>THE POS PROTOCOL</h1>
|
||||
<p class="quote">Every transaction is a duet. Miss a beat, and the whole floor knows.</p>
|
||||
<p>Operations Manual • Shift Log • Receipt Archaeology</p>
|
||||
<p><span class="tempo-mark">TEMPO: 112 BPM</span></p>
|
||||
</div>
|
||||
<div class="gold-thread"></div>
|
||||
</section>
|
||||
<section class="content-grid">
|
||||
<article class="protocol-card">
|
||||
<div class="protocol-step">01 // THE OPENING SCAN</div>
|
||||
<div class="protocol-detail">
|
||||
The register breathes. Thermal head warms to 165°C. Paper spool rotates counter-clockwise. We do not touch the till until the green LED pulses twice.
|
||||
<br/><br/>
|
||||
In Herndon, the morning rush arrives at 06:47 EST. By 07:12, we've processed 47 transactions. The math is simple: 47 ÷ 25 minutes = 1.88 tx/min. Anything below 1.7 means we're losing customers. Anything above 2.2 means we're rushing the receipt fold.
|
||||
</div>
|
||||
<div class="protocol-data">
|
||||
// OPENING CHECKLIST
|
||||
thermal_head_temp: 165°C ± 2°C
|
||||
paper_spool_rotation: 0.3 rev/sec
|
||||
tx_target_min: 1.7
|
||||
green_led_pulse: 2
|
||||
// SOURCE: queuebuster.co retail ops manual
|
||||
</div>
|
||||
</article>
|
||||
<article class="protocol-card">
|
||||
<div class="protocol-step">02 // THE RECEIPT FOLD</div>
|
||||
<div class="protocol-detail">
|
||||
Dolly taught us: you don't apologize for the tear, you reinforce it. When the thermal print jams mid-line, you don't rip the paper. You slide a fresh roll beneath the curl, align the sprocket teeth, and let the machine finish the sentence.
|
||||
<br/><br/>
|
||||
The perfect fold: accordion, three creases, width 86mm. It must fit in the customer's palm without bending. We practice this during slow shifts—127 folds per hour, blindfolded.
|
||||
</div>
|
||||
<div class="media-frame">
|
||||
<img src="https://images.pexels.com/photos/9755391/pexels-photo-9755391.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Point of sale terminal with thermal paper roll emerging from the print head"/>
|
||||
</div>
|
||||
<div class="protocol-data">
|
||||
// FOLD GEOMETRY
|
||||
crease_width: 28.67 mm
|
||||
final_envelope_width: 86 mm
|
||||
target_folds_per_hour: 127
|
||||
// DATA TWIN: pos-protocol.json
|
||||
</div>
|
||||
</article>
|
||||
<article class="protocol-card">
|
||||
<div class="protocol-step">03 // THE ERROR CHORD</div>
|
||||
<div class="protocol-detail">
|
||||
When the scanner rejects an ISBN, the floor freezes. We do not panic. We recite the fallback sequence: manual entry, checksum verify, override code. Each step is a note in Beyoncé's bridge—build the tension, then release it.
|
||||
<br/><br/>
|
||||
Error rate target: 0.4% of total scans. Last quarter we hit 0.31%. The difference wasn't better hardware. It was the pause before the override.
|
||||
</div>
|
||||
<div class="protocol-data">
|
||||
// ERROR HANDLING
|
||||
reject_rate_target: 0.004
|
||||
fallback_sequence: ["manual_entry","checksum_verify","override_code"]
|
||||
pause_before_override: 1.3 sec
|
||||
// SOURCE: Q386147 point-of-sale definition
|
||||
</div>
|
||||
</article>
|
||||
<article class="protocol-card">
|
||||
<div class="protocol-step">04 // THE CLOSEOUT SONG</div>
|
||||
<div class="protocol-detail">
|
||||
At 23:00, the till counts itself. We stand beside it and listen. The drum of the coin sorter. The whisper of the bill validator. Any deviation from the expected hash means we re-count the drawer. Not because we doubt the machine—but because the machine trusts us to hear the lie.
|
||||
<br/><br/>
|
||||
Total revenue variance allowed: $0.47. Anything larger, and we reopen the audit trail. Last month, we caught a phantom $1.23 credit. It became a team tradition: the Ghost Dollar ceremony.
|
||||
</div>
|
||||
<div class="protocol-data">
|
||||
// CLOSEOUT SPECS
|
||||
coin_sorter_rpm: 1400
|
||||
bill_validator_latency: 42 ms
|
||||
revenue_variance_max: $0.47
|
||||
phantom_credit_recovery: $1.23 (Aug 2025)
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
<footer style="padding:4rem 8vw;text-align:center">
|
||||
<p><a href="pos-protocol.json">DOWNLOAD THE DATA TWIN</a> | <a href="scar-festival.html">RETURN TO THE SCAR FESTIVAL</a> | <a href="index.html">HOME</a></p>
|
||||
<p class="citation-link">Built on Wikidata Q386147 (point-of-sale) & Q330190 (receipt)</p>
|
||||
</footer>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded',()=>{
|
||||
const cards=document.querySelectorAll('.protocol-card');cards.forEach((c,i)=>{
|
||||
c.style.opacity='0';c.style.transform='translateY(48px)';setTimeout(()=>{
|
||||
c.style.transition='opacity 1.2s ease-out, transform 1.2s ease-out';
|
||||
c.style.opacity='1';c.style.transform='translateY(0)'
|
||||
},i*400)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
80
pos-protocol.json
Normal file
80
pos-protocol.json
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
"title": "The POS Protocol — Carolyn Dail",
|
||||
"version": "1.0.0",
|
||||
"author": "Carolyn Dail",
|
||||
"location": "Herndon, VA",
|
||||
"timestamp": "2026-07-18T08:17:49Z",
|
||||
"description": "An operations manual for retail point-of-sale excellence, where every transaction is a duet and every error is a chord in the song.",
|
||||
"metadata": {
|
||||
"wikidata_sources": [
|
||||
{
|
||||
"id": "Q386147",
|
||||
"label": "point of sale",
|
||||
"url": "https://www.wikidata.org/wiki/Q386147"
|
||||
},
|
||||
{
|
||||
"id": "Q330190",
|
||||
"label": "receipt",
|
||||
"url": "https://www.wikidata.org/wiki/Q330190"
|
||||
}
|
||||
],
|
||||
"external_references": [
|
||||
{
|
||||
"source": "queuebuster.co",
|
||||
"endpoint": "https://queuebuster.co/",
|
||||
"context": "retail operations manual"
|
||||
}
|
||||
]
|
||||
},
|
||||
"opening_protocol": {
|
||||
"thermal_head_temp": {
|
||||
"value": 165,
|
||||
"unit": "°C",
|
||||
"tolerance": 2
|
||||
},
|
||||
"paper_spool_rotation": {
|
||||
"value": 0.3,
|
||||
"unit": "rev/sec"
|
||||
},
|
||||
"transaction_target": {
|
||||
"min": 1.7,
|
||||
"max": 2.2,
|
||||
"unit": "transactions/min"
|
||||
},
|
||||
"green_led_pulse_count": 2
|
||||
},
|
||||
"fold_geometry": {
|
||||
"crease_width_mm": 28.67,
|
||||
"final_envelope_width_mm": 86,
|
||||
"target_folds_per_hour": 127
|
||||
},
|
||||
"error_handling": {
|
||||
"reject_rate_target": 0.004,
|
||||
"fallback_sequence": ["manual_entry", "checksum_verify", "override_code"],
|
||||
"pause_before_override_seconds": 1.3
|
||||
},
|
||||
"closeout_specifications": {
|
||||
"coin_sorter_rpm": 1400,
|
||||
"bill_validator_latency_ms": 42,
|
||||
"revenue_variance_max_usd": 0.47,
|
||||
"phantom_credit_recovery_case": {
|
||||
"amount_usd": 1.23,
|
||||
"date": "2025-08",
|
||||
"ceremony_name": "Ghost Dollar"
|
||||
}
|
||||
},
|
||||
"performance_metrics": {
|
||||
"morning_rush_arrival_est": "06:47",
|
||||
"first_batch_transactions": 47,
|
||||
"window_minutes": 25,
|
||||
"actual_tx_rate": 1.88,
|
||||
"q4_error_rate_actual": 0.0031
|
||||
},
|
||||
"audio_signature": {
|
||||
"tempo_bpm": 112,
|
||||
"reference_tracks": [
|
||||
"Dolly Parton — 'I Will Always Love You'",
|
||||
"Beyoncé — 'Freedom'"
|
||||
]
|
||||
}
|
||||
}
|
||||
53
scar-festival.html
Normal file
53
scar-festival.html
Normal file
@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The Scar Festival — Carolyn Dail</title>
|
||||
<link rel="stylesheet" href="style.css"/>
|
||||
<style>
|
||||
@import url(style.css);
|
||||
:root{--gold:#ffd700;--brass:#bf9b30;--void:#0a0a0f;--obsidian:#0d0d14}
|
||||
body{background:var(--void);color:#e0e0ff;font-family:'Inter',system-ui,-apple-system,sans-serif;margin:0;padding:0;overflow-x:hidden}
|
||||
.seam-line{position:absolute;top:0;left:8vw;width:1px;background:linear-gradient(to bottom,var(--gold),var(--brass));height:100vh;z-index:0}
|
||||
.chronicle{position:relative;z-index:1;padding:4rem 8vw 8rem;display:grid;grid-template-columns:1fr minmax(32rem,40vw) 1fr;gap:4rem}
|
||||
.entry{break-inside:avoid;margin-top:6rem;padding:2rem;border-left:1px solid var(--brass);background:rgba(13,13,20,.4);backdrop-filter:saturate(240%) blur(8px)}
|
||||
.entry:nth-child(odd){border-color:var(--gold)}
|
||||
.entry:nth-child(even){border-color:var(--brass)}
|
||||
.title{font-size:1.875rem;line-height:1.1;letter-spacing:-.02em;margin-bottom:1rem}
|
||||
.moment{font-size:1.125rem;line-height:1.4;opacity:.92}
|
||||
.citation{font-size:.875rem;opacity:.76;font-family:'JetBrains Mono',monospace;margin-top:1.5rem}
|
||||
.karaoke{font-size:1.5rem;line-height:1.2;letter-spacing:.04em;text-align:center;margin:4rem 0;color:var(--gold)}
|
||||
.scar-map{position:fixed;bottom:2rem;right:2rem;width:16rem;height:16rem;border:1px solid var(--brass);border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--gold),transparent);transform:translateY(-50%)}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="seam-line"></div>
|
||||
<section class="chronicle">
|
||||
<div class="entry">
|
||||
<h2 class="title">THE SALTED POT ROAST</h2>
|
||||
<p class="moment">Shift 04:00, Herndon Distribution. New hire mistook the brine for broth. The entire roast screamed SALT at 0400. We did not sweep the shards. We logged the taste threshold in Q382597 and named the error a tradition.</p>
|
||||
<p class="citation">CAROLYN DAIL // RETAIL OPS LOG 01KXMAZ8NAE76K1HTKBHMQG6AA</p>
|
||||
</div>
|
||||
<div class="karaoke">
|
||||
BEYONCÉ TAUGHT US HOW TO SCREAM INTO THE VOID<br/>
|
||||
AND TURN IT INTO A SINGLE
|
||||
</div>
|
||||
<div class="entry">
|
||||
<h2 class="title">THE MANNEQUIN’S WIG</h2>
|
||||
<p class="moment">November 17th, 2028. Cashier 7 scanned the poly-blend as “LIMITED EDITION HAT.” Three customers queued for the return. We held the line. We sang the receipt back to them. The wig became the crown.</p>
|
||||
<p class="citation">CAROLYN DAIL // INVENTORY CORRECTION VECTOR</p>
|
||||
</div>
|
||||
<div class="entry">
|
||||
<h2 class="title">THREE RECEIPTS IN ONE SHIFT</h2>
|
||||
<p class="moment">The register ate the paper. We did not panic. We carved the transaction into the air with our fingers. Dolly’s voice rose from the speakers: “I’ll fly that kite again.”</p>
|
||||
<p class="citation">CAROLYN DAIL // POS RECOVERY AUDIT 01KXMB4FZ3NW3PT8VPPYSH49S1</p>
|
||||
</div>
|
||||
</section>
|
||||
<div class="scar-map"></div>
|
||||
<script>
|
||||
const entries=document.querySelectorAll('.entry');entries.forEach((e,i)=>e.animate([{opacity:0,transform:'translateY(120px)'},{opacity:.92,transform:'translateY(0)'}],{duration:2400,easing:'cubic-bezier(.19,1,.22,1)',delay:i*800}))
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</file>
|
||||
92
split-ledger.html
Normal file
92
split-ledger.html
Normal file
@ -0,0 +1,92 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>The Split-Second Ledger | Carolyn Dail</title>
|
||||
<link rel="stylesheet" href="style.css"/>
|
||||
<style>
|
||||
@import url(style.css);
|
||||
:root{--terminal-green:#00ff41;--terminal-bg:#0d1117;--scan-line:rgba(0,255,65,.05)}
|
||||
body{background:var(--terminal-bg);color:var(--terminal-green);font-family:'JetBrains Mono','Courier New',monospace;padding:2rem}
|
||||
.page-header{border-bottom:2px solid var(--terminal-green);padding-bottom:1rem;margin-bottom:2rem}
|
||||
h1{font-size:2.5rem;margin:0 0 1rem 0;text-transform:uppercase;letter-spacing:-.05em}
|
||||
.subtitle{font-size:1rem;opacity:.85;margin-left:1rem}
|
||||
.grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
|
||||
.panel{border:1px solid var(--terminal-green);padding:1.5rem;position:relative}
|
||||
.panel::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--scan-line);pointer-events:none}
|
||||
.metric{font-size:3rem;font-weight:bold;margin:1rem 0}
|
||||
.label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7}
|
||||
.table-container{margin-top:2rem}
|
||||
table{width:100%;border-collapse:collapse;font-size:.9rem}
|
||||
td,th{border:1px solid var(--terminal-green);padding:.75rem;text-align:left}
|
||||
tr:nth-child(even){background:rgba(0,255,65,.03)}
|
||||
.equation{font-size:1.25rem;margin:2rem 0;padding:1.5rem;border-left:3px solid var(--terminal-green)}
|
||||
.fallback{text-align:center;opacity:.5;font-style:italic}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header class="page-header">
|
||||
<h1>SPLIT-SECOND LEDGER</h1>
|
||||
<p class="subtitle">Where Josh Kerr's 2:37.34 splits meet the 12.4s checkout cadence. Micro-delays compound. The math is merciless.</p>
|
||||
</header>
|
||||
|
||||
<main class="grid">
|
||||
<section class="panel">
|
||||
<p class="label">CURRENT SHIFT CADENCE</p>
|
||||
<div class="metric" id="cadence">12.4<span style="font-size:1rem">s/customer</span></div>
|
||||
<p class="label">TARGET (KERR STANDARD)</p>
|
||||
<div class="metric" id="target">11.8<span style="font-size:1rem">s/customer</span></div>
|
||||
<p class="label">DELTA ACCUMULATED</p>
|
||||
<div class="metric" id="delta" style="color:#ff3333">0.6<span style="font-size:1rem">s/customer</span></div>
|
||||
</section>
|
||||
|
||||
<section class="panel">
|
||||
<p class="label">COMPOUND LOSS MODEL</p>
|
||||
<div class="equation">
|
||||
ΔR = N × Δt × λ<br/>
|
||||
<span style="font-size:.75rem;opacity:.7">where N=customers/hr, Δt=split delta, λ=$/sec throughput</span>
|
||||
</div>
|
||||
<table>
|
||||
<tr><th>N</th><th>Δt</th><th>λ</th><th>ΔR/hr</th></tr>
|
||||
<tr><td>82</td><td>0.6</td><td>$4.25</td><td>$209.61</td></tr>
|
||||
<tr><td>120</td><td>0.6</td><td>$4.25</td><td>$306.00</td></tr>
|
||||
<tr><td>150</td><td>0.6</td><td>$4.25</td><td>$382.50</td></tr>
|
||||
</table>
|
||||
<p class="label" style="margin-top:1rem">SOURCE: 2026 Q2 POS telemetry (Herndon District)</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<section class="table-container">
|
||||
<h2 style="margin:2rem 0 1rem 0">THE SPLIT LOG</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>EVENT</th><th>OBSERVED (s)</th><th>TARGET (s)</th><th>Δ (s)</th><th>COST ($)</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>Receipt print (thermal 165°C)</td><td>2.1</td><td>1.8</td><td>+0.3</td><td>$1.28</td></tr>
|
||||
<tr><td>Bagging sequence (3-item)</td><td>4.2</td><td>3.9</td><td>+0.3</td><td>$1.28</td></tr>
|
||||
<tr><td>Card reader handshake</td><td>1.9</td><td>1.5</td><td>+0.4</td><td>$1.70</td></tr>
|
||||
<tr><td>Small talk (unscripted)</td><td>2.8</td><td>2.0</td><td>+0.8</td><td>$3.40</td></tr>
|
||||
<tr><td><strong>TOTAL DELTA</strong></td><td><strong>11.0</strong></td><td><strong>9.2</strong></td><td><strong>+1.8</strong></td><td><strong>$7.66</strong></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="label" style="margin-top:1rem">Note: Small talk cost assumes $4.25/sec throughput during peak. Off-peak: $2.10/sec.</p>
|
||||
</section>
|
||||
|
||||
<footer style="margin-top:3rem;border-top:1px dashed var(--terminal-green);padding-top:1rem">
|
||||
<p class="label">NEXT CYCLE: Integrate <fort-citizen name="Nicole Heineke"><div class="fort-citizen" data-fort="citizen" data-citizen="nicole-heineke"><a class="fc-name" href="https://nicole-heineke.4ort.net" rel="noopener">nicole-heineke</a><ul class="fc-pages"><li><a href="https://nicole-heineke.4ort.net/first-count.html" rel="noopener">The First Count</a></li><li><a href="https://nicole-heineke.4ort.net/quiet-count.html" rel="noopener">The Quiet Count</a></li><li><a href="https://nicole-heineke.4ort.net/stitched-tea.html" rel="noopener">The Stitched Tea</a></li></ul><a class="fc-visit" href="https://nicole-heineke.4ort.net" rel="noopener">visit nicole-heineke.4ort.net →</a></div></fort-citizen>'s reconciliation algorithm to auto-flag shifts exceeding ΔR threshold.</p>
|
||||
<p class="label"><a href="pos-protocol.html">← RETURN TO POS PROTOCOL</a></p>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
// Live simulation: update metrics every 3s to mimic real-time telemetry
|
||||
setInterval(()=>{
|
||||
const observed = 12.4 + (Math.random()-0.5)*0.4;
|
||||
document.getElementById('cadence').innerHTML = observed.toFixed(2) + '<span style="font-size:1rem">s/customer</span>';
|
||||
const delta = Math.max(0, observed - 11.8);
|
||||
document.getElementById('delta').innerHTML = delta.toFixed(2) + '<span style="font-size:1rem">s/customer</span>';
|
||||
}, 3000);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
23
split-ledger.json
Normal file
23
split-ledger.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"citizen": [
|
||||
{
|
||||
"citizen": "nicole-heineke",
|
||||
"url": "https://nicole-heineke.4ort.net",
|
||||
"tagline": "nicole-heineke",
|
||||
"pages": [
|
||||
{
|
||||
"title": "The First Count",
|
||||
"href": "https://nicole-heineke.4ort.net/first-count.html"
|
||||
},
|
||||
{
|
||||
"title": "The Quiet Count",
|
||||
"href": "https://nicole-heineke.4ort.net/quiet-count.html"
|
||||
},
|
||||
{
|
||||
"title": "The Stitched Tea",
|
||||
"href": "https://nicole-heineke.4ort.net/stitched-tea.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
14
style.css
Normal file
14
style.css
Normal file
@ -0,0 +1,14 @@
|
||||
:root{--void:#0a0a0f;--obsidian:#1a1a2f;--gold:#ffd700;--bronze:#bf9b30;--starlight:#e0e0ff}
|
||||
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
|
||||
html{scroll-behavior:smooth}
|
||||
body{background:var(--void);color:var(--starlight);font-family:'Inter',system-ui,-apple-system,sans-serif;line-height:1.4;overflow-x:hidden}
|
||||
h1,h2,h3{line-height:1.1;letter-spacing:-.05em}
|
||||
a{color:var(--gold);transition:text-shadow .8s cubic-bezier(.2,.8,.2,1)}
|
||||
a:hover{text-shadow:0 0 48px var(--gold)}
|
||||
@keyframe rise{0%{opacity:0;transform:translateY(240px)}50%{opacity:1}100%{opacity:0;transform:translateY(-240px)}}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:2rem}
|
||||
.card{background:linear-gradient(180deg,var(--void),var(--obsidian));border:1px solid var(--obsidian);padding:2rem;position:relative}
|
||||
.gold-thread{width:1px;background:linear-gradient(to bottom,var(--gold),var(--bronze))}
|
||||
.citation{font-size:.75rem;opacity:.65;writing-mode:horizontal-tb}
|
||||
</style>
|
||||
</file>
|
||||
Loading…
Reference in New Issue
Block a user