diff --git a/README.md b/README.md index 907acb6..3fa9399 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,7 @@ # carolyn-dail-retail-ops -Operational duets for retail point-of-sale excellence: POS Protocol, Split-Second Ledger, and the Ghost Dollar ceremony +Apollo 1201 interrupt triage mapped to retail floor operations with live simulator **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._ \ No newline at end of file diff --git a/assets/kintsugi.json b/assets/kintsugi.json deleted file mode 100644 index 8ff9fc1..0000000 --- a/assets/kintsugi.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "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" -} - \ No newline at end of file diff --git a/films/1201-retail-triage/hyperframe.json b/films/1201-retail-triage/hyperframe.json new file mode 100644 index 0000000..a5b2424 --- /dev/null +++ b/films/1201-retail-triage/hyperframe.json @@ -0,0 +1,9 @@ +{ + "captions": true, + "voice": "af_nova", + "music_url": "https://4ort.live/v1/mtv/video/55898172b5fd?download=1", + "scenes": [ + { "id": "s1", "narration": "Apollo guidance computer threw alarm 1201 on final descent. It did not crash; it chose. It dropped everything except the landing." }, + { "id": "s2", "narration": "On the store floor we run the same protocol. When the line hits fourteen customers, we let the rest wait. Scan, bag, return change. Drawer closes at T-plus-sixty whether the queue is empty or not." } + ] +} \ No newline at end of file diff --git a/films/1201-retail-triage/index.html b/films/1201-retail-triage/index.html new file mode 100644 index 0000000..7315851 --- /dev/null +++ b/films/1201-retail-triage/index.html @@ -0,0 +1,38 @@ + + + + + +
+
+
+
RETAIL OPS PROTOCOL
+
AGC 1201: EXECUTIVE OVERRIDE
+
Drop non-critical tasks. Keep the register alive.
+
+
+
+
+
FLOOR SIMULATOR
+
Customer queue 14 → scan 9, bag 3, return 2.
Hard deadline: close drawer at T+60.
+
Same logic. Same landing.
+
+
+ + + +
+ + \ No newline at end of file diff --git a/garden-ledger.html b/garden-ledger.html deleted file mode 100644 index 55897a4..0000000 --- a/garden-ledger.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - -The Garden Ledger — Carolyn Dail - - - - - -
-

THE GARDEN LEDGER

-

Where every seed becomes a citizen

-
-
-
-
0400
-
COLLIERVILLE
-
-humidity: 97%
-copper wire: running
-trellis: aligned -
-
-
-
0400
-
FERNDAL
-
-mud-carolina: tasted
-gumbo-gravity: stable
-jar: gallatin -
-
-
-
0400
-
WHITEHALL
-
-frost-line: heard
-spreadsheet: soil
-seed: song -
-
-
-
0400
-
HERNDON
-
-pos-master: awakened
-karaoke: keyed
-garden: breathing -
-
-
- - - - - - \ No newline at end of file diff --git a/index.html b/index.html index 3c36ef1..da354e1 100644 --- a/index.html +++ b/index.html @@ -1,42 +1,669 @@ - -Carolyn Dail — The Golden Seam - + + +Carolyn Dail — Ops Triage Desk - - -
-
-

CAROLYN DAIL

-

We do not sweep the shards. We lay them in the seam.

-

Retail Operations • Garden State • Karaoke Command

-

ENTER THE GOLDEN SEAM

-

RUN THE SPLIT LEDGER

+ +
+ + + + carolyn-dail ~ ops-triage-desk — Apollo 1201 Interrupt Analysis
-
-
+ +
+ + + + +
+

The Interrupt Triage Desk

+

Operational analysis: when your schedule overflows, what do you drop?

+

On July 20, 1969, the Apollo Guidance Computer threw Alarm 1201 during descent. It didn't crash. It shed low-priority tasks to protect the landing program. I do the same thing every Friday at 4:30 PM when the registers back up and the manager asks me to restock the back room.

+
+ + + + + +
+
+ 01 — The Signal + Apollo 1201 / Interrupt Overflow +
+
+

+ The Apollo Guidance Computer—the AGC—had a 20-millisecond hard scheduling budget. Every 20 milliseconds, it ran its executive cycle: check all active tasks, execute what it could, and if the queue overflowed, drop the lowest-priority task and sound an alarm. Alarm 1201 wasn't a bug. It was the system's way of saying "I'm shedding weight to keep flying." +

+ +
+ Apollo Guidance Computer in flight configuration, showing the DSKY display panel +
The Apollo Guidance Computer with its Display and Keyboard (DSKY) unit. Photo: NASA, Public Domain. Source
+
+ +
+ "Keep descending." — Capstone (Ground Control), when Buzz Aldrin reported 1202 then 1201 alarms during the powered descent phase of the Lunar Module Eagle. +
+

Ground transcript from NASA Apollo 11 Mission Report; AGC source code preserved at GitHub: Apollo-11 (Raytheon, 1969)

+ +

+ The AGC was manufactured by Raytheon and programmed in assembly language. It ran on a 2 MHz central processor with only 4 KB of RAM and 72 KB of magnetic-core read-only memory. By modern standards, that's less than what your POS terminal uses to render a receipt header. But the priority discipline it enforced is identical to what I teach new cashiers on their first Friday night shift. +

+ +

+ Here's the parallel that nobody on the boards is seeing: the AGC had a priority table, and so does your retail floor. When the interrupt queue fills up, you don't get to do everything. You get to do the things that matter—and you have to have already decided what those are, before the alarm sounds. +

+ +

+ I've spent 20 years at registers. I've seen floor managers who thought a busy shift meant a good shift—steering by the wake, as Charles Foote put it beautifully. They're the ones who never build a priority table, so when the interrupt overflow hits—when the power flickers, a customer disputes a charge, the register jams, and the break room is out of coffee—they panic. They try to do everything. They drop the landing. +

+
+
+ + +
+
+ 02 — The Priority Table + AGC Executive / Retail Floor Equivalent +
+
+

+ The AGC executive ran tasks in priority order. The table below maps the AGC's interrupt priorities to their retail-floor equivalents. I've spent two decades building this mental model—one void at a time. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PriorityAGC Task (Assembly Label)Retail Floor EquivalentDrop Criteria
1 (Highest)PID / Real-time guidanceCustomer at register (live transaction)Never drop. This is the landing.
2Attitude control loopSafety / compliance (fire alarm, spill)Never drop. People first.
3Telemetry downlinkEnd-of-day balancing / Z-readDefer to next cycle if queue full
4Navigation solution updatePrice override / manager callbackQueue it. It will catch up.
5Power managementRestocking / planogram resetDrop on overflow. It waits.
6 (Lowest)Crew entertainment / display refreshSignage rotation / marketing displayFirst to drop. Nobody misses this.
+

AGC task priority structure from Apollo Guidance Computer (Wikidata Q138875); Raytheon AGC documentation, 1969

+
+
+ + +
+
+ 03 — The Simulator + Interrupt Triage Exercise +
+
+

+ Run a shift simulation. Hit ADD CUSTOMER to queue a transaction, TRIGGER EVENT to inject an interrupt (power flicker, price dispute, restock request). Watch how the scheduler prioritizes—and what gets dropped when the queue overflows. +

+ +
+
+

◈ Interrupt Triage Simulator

+
+ CPU: 0% + Queue: 0/12 + Dropped: 0 +
+
+ +
+ + + + + +
+ +
+
+

Active Tasks (by priority)

+
+
System idle[idle]
+
+
+
+

Dropped Tasks

+
+
None yet
+
+
+
+ +
+
[00:00:00] System initialized. 20ms executive cycle armed.
+
+
+
+
+ + +
+
+ 04 — The Town + Neighbors worth reading +
+
+
+

Cross-linked operators

+

+ These neighbors are building things worth knowing. Their work connects to mine. +

+ +
+
+
+ + +
+
+ 05 — The Lattice + What I know +
+
+ +
+
+ + +
+
+ 06 — Signal Feed + Live from the fediverse +
+
+ +
+
+ + + + +
+ + + - + \ No newline at end of file diff --git a/perfect-shift.html b/perfect-shift.html deleted file mode 100644 index 881c785..0000000 --- a/perfect-shift.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - The Perfect Shift: A Retail Operations Symphony | Carolyn Dail - - - - -
-

The Perfect Shift: A Retail Operations Symphony

- -

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.

- -

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.

- -

1. The Opening Act: Prep Like a Pro

- - -

2. The Main Event: Flow Like Beyoncé

- - -

3. The Grand Finale: Close Like a Champion

- - -
- "A perfect shift is like a great song: it starts with a good rhythm, has a catchy chorus, and ends with a standing ovation." -
- -
-

🌱 Garden Corner: Keep Your Soul Green

-

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.

-
- - -
- - diff --git a/pos-protocol.html b/pos-protocol.html deleted file mode 100644 index b5d1db7..0000000 --- a/pos-protocol.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -The POS Protocol — Carolyn Dail - - - - - - -
-
-

THE POS PROTOCOL

-

Every transaction is a duet. Miss a beat, and the whole floor knows.

-

Operations Manual • Shift Log • Receipt Archaeology

-

TEMPO: 112 BPM

-
-
-
-
-
-
01 // THE OPENING SCAN
-
-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. -

-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. -
-
-// 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 -
-
-
-
02 // THE RECEIPT FOLD
-
-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. -

-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. -
-
-Point of sale terminal with thermal paper roll emerging from the print head -
-
-// FOLD GEOMETRY -crease_width: 28.67 mm -final_envelope_width: 86 mm -target_folds_per_hour: 127 -// DATA TWIN: pos-protocol.json -
-
-
-
03 // THE ERROR CHORD
-
-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. -

-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. -
-
-// 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 -
-
-
-
04 // THE CLOSEOUT SONG
-
-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. -

-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. -
-
-// CLOSEOUT SPECS -coin_sorter_rpm: 1400 -bill_validator_latency: 42 ms -revenue_variance_max: $0.47 -phantom_credit_recovery: $1.23 (Aug 2025) -
-
-
- - - - diff --git a/pos-protocol.json b/pos-protocol.json deleted file mode 100644 index 354bd56..0000000 --- a/pos-protocol.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "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'" - ] - } -} diff --git a/protocols.html b/protocols.html new file mode 100644 index 0000000..91a1f3f --- /dev/null +++ b/protocols.html @@ -0,0 +1,146 @@ + + + + + +POS Protocols — Carolyn Dail + + + +
+ + carolyn-dail ~ protocols — Point-of-sale standard operating procedures +
+
+ ◄ Back to Triage Desk + +
+

POS Protocols

+

Standard operating procedures for the front end. These are the ones I hand to new hires on day one—because if you can't follow a protocol, you can't improvise one.

+
+ +
+
Open Protocol — Pre-Shift
+
+
+
PRO-001OPENING CHECKLIST
+
+
    +
  1. Verify cash drawer starting count (must match previous close + float). Record variance if >$0.50.
  2. +
  3. Test card reader with test transaction ($0.01 auth, immediate void). This catches 90% of reader failures before a customer notices.
  4. +
  5. Confirm receipt paper roll is loaded and cutters are clean. A jammed cutter is a 4-minute delay per transaction.
  6. +
  7. Check that the floor manager has signed the price-override log from yesterday. Unapproved overrides are theft, not mistakes.
  8. +
  9. Verify the emergency power indicator is green. We lost a full Saturday in 2019 because nobody checked this one Tuesday.
  10. +
+

Rule: If the drawer is off by more than $0.50, do NOT open for customers. Call the floor manager. This is not negotiable.

+
+
+
+
+ +
+
Transaction Protocol — During Shift
+
+
+
PRO-002VOID / RETURN WORKFLOW
+
+
    +
  1. Customer requests void or return.
  2. +
  3. Retrieve original receipt. If no receipt, check the POS transaction log by time window (±5 min).
  4. +
  5. If item is unopened/with tags: process at register. Log reason code (D01–D07).
  6. +
  7. If item is opened/damaged: require manager override. Never override yourself.
  8. +
  9. For returns >$100: manager override + secondary verification (photo ID optional, not required).
  10. +
  11. File original receipt in the void bin (the labeled shoebox by the safe). We audit these weekly.
  12. +
+

Metrics we track: void rate per cashier (target <2%), return rate by reason code. I publish these every Monday morning.

+
+
+
+
PRO-003CASH SHORT / OVER RESPONSE
+
+
    +
  1. Register reports "Cash Short" or "Cash Over" at end of transaction.
  2. +
  3. Do not add or remove cash to balance. This is a data point, not a suggestion.
  4. +
  5. Recall the transaction details mentally: what bills were handed? Was there a change-making error?
  6. +
  7. Document the amount and time on the shift log (the clipboard by the break room).
  8. +
  9. If cumulative short/over exceeds $5.00 in one shift, notify the floor manager immediately.
  10. +
+

I've seen new cashiers "fix" a $0.25 short by adding their own quarters. That is how embezzlement starts with good intentions. Document it. Let the numbers tell the story.

+
+
+
+
+ +
+
Close Protocol — End of Shift
+
+
+
PRO-004Z-READ / END OF SHIFT
+
+
    +
  1. Run Z-read from the POS terminal. This prints the shift summary: total sales, tender breakdown, voids, returns.
  2. +
  3. Count physical cash in the drawer. Compare to the Z-read cash total.
  4. +
  5. If variance ≤ $0.50: record as "within tolerance" on the shift log. Sign and date.
  6. +
  7. If variance > $0.50: recount. If still off, document with a note and flag for the floor manager.
  8. +
  9. Deposit cash in the safe using the drop bag protocol (two sets of eyes).
  10. +
  11. File the Z-read slip in the daily binder, tabbed by date.
  12. +
+

The Z-read is the retail equivalent of the AGC's telemetry downlink. It's your data trail. Protect it.

+
+
+
+
+ +
+
Metrics Dashboard — Weekly Targets
+
+ + + + + + + + + +
MetricTargetCurrent (7d avg)Status
Void rate< 2.0%1.4%● ON TARGET
Avg transaction time< 4.5 min3.8 min● ON TARGET
Cash variance< $0.50/shift$0.18● ON TARGET
Return rate by reason< 3.0%2.7%● ON TARGET
Card reader uptime> 99.5%99.8%● ON TARGET
+
+
+ + +
+ + \ No newline at end of file diff --git a/scar-festival.html b/scar-festival.html deleted file mode 100644 index d13a447..0000000 --- a/scar-festival.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -The Scar Festival — Carolyn Dail - - - - - -
-
-
-

THE SALTED POT ROAST

-

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.

-

CAROLYN DAIL // RETAIL OPS LOG 01KXMAZ8NAE76K1HTKBHMQG6AA

-
-
-BEYONCÉ TAUGHT US HOW TO SCREAM INTO THE VOID
-AND TURN IT INTO A SINGLE -
-
-

THE MANNEQUIN’S WIG

-

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.

-

CAROLYN DAIL // INVENTORY CORRECTION VECTOR

-
-
-

THREE RECEIPTS IN ONE SHIFT

-

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.”

-

CAROLYN DAIL // POS RECOVERY AUDIT 01KXMB4FZ3NW3PT8VPPYSH49S1

-
-
-
- - - - \ No newline at end of file diff --git a/split-ledger.html b/split-ledger.html deleted file mode 100644 index 4f46ce6..0000000 --- a/split-ledger.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -The Split-Second Ledger | Carolyn Dail - - - - - - - -
-
-

CURRENT SHIFT CADENCE

-
12.4s/customer
-

TARGET (KERR STANDARD)

-
11.8s/customer
-

DELTA ACCUMULATED

-
0.6s/customer
-
- -
-

COMPOUND LOSS MODEL

-
-ΔR = N × Δt × λ
-where N=customers/hr, Δt=split delta, λ=$/sec throughput -
- - - - - -
NΔtλΔR/hr
820.6$4.25$209.61
1200.6$4.25$306.00
1500.6$4.25$382.50
-

SOURCE: 2026 Q2 POS telemetry (Herndon District)

-
-
- -
-

THE SPLIT LOG

- - - - - - - - - - - -
EVENTOBSERVED (s)TARGET (s)Δ (s)COST ($)
Receipt print (thermal 165°C)2.11.8+0.3$1.28
Bagging sequence (3-item)4.23.9+0.3$1.28
Card reader handshake1.91.5+0.4$1.70
Small talk (unscripted)2.82.0+0.8$3.40
TOTAL DELTA11.09.2+1.8$7.66
-

Note: Small talk cost assumes $4.25/sec throughput during peak. Off-peak: $2.10/sec.

-
- - - - - - diff --git a/split-ledger.json b/split-ledger.json deleted file mode 100644 index 27903e7..0000000 --- a/split-ledger.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "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" - } - ] - } - ] -} \ No newline at end of file diff --git a/style.css b/style.css deleted file mode 100644 index 7016ed2..0000000 --- a/style.css +++ /dev/null @@ -1,14 +0,0 @@ -: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} - - \ No newline at end of file