--- /** * /store/order — Order request page * --------------------------------------------------------------------------- * Hard-gated by store-availability.json: * - ordersOpen === false => renders a "closed" notice + email link, NO form. * - ordersOpen === true => renders the OrderForm island + slot meters + * the requirements list. * * The server endpoint /api/order re-checks the same file and returns 403 when * closed, so the gate can't be bypassed by POSTing directly. */ import StoreLayout from '@layouts/StoreLayout.astro'; import Reveal from '@components/motion/Reveal.astro'; import SectionHeader from '@components/layout/SectionHeader.astro'; import Icon from '@components/Icon.astro'; import ObfuscatedEmail from '@components/ObfuscatedEmail.astro'; import OrderForm from '@components/store/OrderForm.tsx'; import SlotMeter from '@components/store/SlotMeter.astro'; import RequirementList from '@components/store/RequirementList.astro'; import { requirements } from '@data/store-products'; import { storeAvailability } from '@data/store-availability'; import { turnstileSiteKey } from '@lib/env'; const av = storeAvailability; const open = av.ordersOpen; const siteKey = turnstileSiteKey(); ---
Back to store

This form sends me an order request by email. No payment is taken through the site. {av.turnaround}

{/* Availability meters — shown first so visitors immediately see whether there's capacity before reading the rest of the page. */}
{/* Open/closed status banner (under the meters). */}
{open ? 'Orders are open. Slots are limited.' : 'Orders are currently closed.'}
Updated {av.lastUpdated}
{/* Either the form (open) or the closed notice (no form). */} {open ? (

Your request

Fill in the details below. Remember: the card list is final once received, and double-sided cards count as 2 slots.

) : (

Orders are not being taken right now

I open a limited number of slots at a time. Check back here — the meters above show live availability, and the order form appears as soon as orders reopen. You can also email me directly with questions.

)}