Compare commits

...

4 commits

5 changed files with 1010 additions and 144 deletions

View file

@ -3,52 +3,126 @@
"blocks": [ "blocks": [
{ {
"id": "blk-about", "id": "blk-about",
"title": "Solarpunk Summit 2026", "title": "Solarpunk Summit 2026: The Love Dimension",
"kind": "festival", "kind": "festival",
"body": [ "body": [
{ {
"kind": "paragraph", "kind": "paragraph",
"text": "Solarpunk Summit: The Love Dimension is a five-day gathering exploring regenerative culture, technology, consciousness, and community. The 2026 summit runs October 8-12, 2026, in Kingsbury, Texas." "text": "Five days of regenerative culture, technology, and consciousness — October 8–12, 2026 at Son's Blue River Camp, Kingsbury, TX. The 6th annual Solarpunk Summit is described as more village than festival: speakers, workshops, music, art, food, and celebration, with relationships as the center."
}, },
{ {
"kind": "paragraph", "kind": "paragraph",
"text": "The summit describes solarpunk as a balance of technology, nature, and the individual, with a focus on practical regenerative solutions, voluntary cooperation, and radically optimistic futures." "text": "The Love Dimension theme unfolds as five elements, one per day: Air (words of affirmation), Earth (acts of service), Fire (physical touch), Water (gifts), Ether (quality time — an unplanned closing day)."
},
{
"kind": "link",
"text": "Read the official mission",
"href": "https://solarpunksummit.com/our-mission/"
} }
] ]
}, },
{ {
"id": "blk-themes", "id": "blk-lineup",
"title": "Summit themes", "title": "Speakers",
"kind": "program", "kind": "program",
"body": [ "body": [
{ {
"kind": "list", "kind": "list",
"items": [ "items": [
"Air: communication, personal development, authentic relating, and networking", "Marc Buckley — Homo Universalis: The RegenAissance",
"Earth: regenerative culture, permaculture, sustainable practices, and alternative governance", "Alec Zeck — Founder, The Way Forward",
"Fire: innovation, entrepreneurship, and technology", "Ashleigh Hakes — Love Is an Experience",
"Water: consciousness, spirituality, and integration" "Jeana Locke — Designed to Love Yourself",
"Joseph Hawley — Legend of the Sacred Circle",
"Matt McKibbin — Agentic Energy Sovereignty",
"Billy Tetrud — Building Meridia: A Federated Solarpunk Microcity",
"Austin West — Remember the Divine Within",
"Jenn Lynn — Austin's Future Freedom Frontier",
"Tom Miller — Prosperity for Purpose",
"Connor Wills — Boundaries and Communication in Relationship"
] ]
} }
] ]
}, },
{ {
"id": "blk-venue", "id": "blk-workshops",
"title": "Venue and access", "title": "Workshops",
"kind": "program",
"body": [
{
"kind": "list",
"items": [
"Taelor Monroe — Wild Foraging Plant Walk",
"Michael Ravenwood — The Art of Flow",
"Mandelyn Reese — Coming Back to the Love Within Yourself",
"Ben Holt — The Way of the King",
"Brent Thomas — Animal Forms Qi Gong",
"Tatiana Olga Rodeiro & Víkingur Guðmundsson — Glíma: Viking Wrestling",
"Satya — Satsang and Handpan",
"Lady A — Heartopia: A Playful Journey",
"Stephanie Welch — Touch Lab: Building Intimacy Through Presence",
"Lauren Denney — Contact to Collaboration",
"Kristalynn Love — Tapping Into Love",
"Lacee Wilke — Map Your Next Quantum Leap",
"Natalie Stone — 9D Breathwork: Awakening",
"Mimi Daraa — Maison Palo Santo",
"River Roaring — Waking the Body: Touch, Desire, and Limits",
"Brittany Brice — Bhakti Flow: Mantra & Movement",
"Adam Russel — Remembering Our Place as Stewards",
"Ellis Hernandez — Elemental Qi Gong"
]
}
]
},
{
"id": "blk-kitchen",
"title": "Community Kitchen",
"kind": "program",
"body": [
{
"kind": "list",
"items": [
"Early riser breakfast 8:30–10 AM: chia pudding, overnight oats, fruit, yogurt, granola, boiled eggs",
"Hot brunch 10–11 AM",
"Build-your-own-bowl lunch 2–4 PM: salads, grains, fresh veggies, vegan proteins",
"Dinner 8–9:30 PM: curries, chili and cornbread, hearty soups",
"Vegan and vegetarian options at every meal",
"Access comes with a food donation: bring 5–10 lbs of fresh organic produce; sign-up link arrives by email and Telegram"
]
}
]
},
{
"id": "blk-gate",
"title": "Arrival, gates & parking",
"kind": "venue", "kind": "venue",
"body": [ "body": [
{ {
"kind": "address", "kind": "address",
"text": "Son's Blue River Camp, 2769 Sherrill Rd, Kingsbury, TX 78638" "text": "Son's Blue River Camp, 2769 Sherrill Rd, Kingsbury, TX 78638 — about 40 min from Austin-Bergstrom (AUS), 1 hr from San Antonio (SAT)"
}, },
{ {
"kind": "paragraph", "kind": "list",
"text": "The venue is along the San Marcos River, about 40 minutes from Austin-Bergstrom International Airport and one hour from San Antonio International Airport. Camping, glamping, cabins, and limited RV options are available." "items": [
"Gates: Thu Oct 8 open 11 AM; Fri–Mon 8 AM–8 PM. Late arrivals outside gate hours pay a $50 fee. Bring photo ID for re-entry.",
"Every attendee (and each child) must sign the venue waiver before arriving: app.waiverelectronic.com/render/splash/Blue-River-Camp",
"Parking pass required per vehicle: $25 day / $50 full event (car-camping passes already cover the vehicle).",
"Event ends: all attendees off property by Tuesday Oct 13, 11 AM. Monday-night camping is included with admission.",
"Day passes and a Sat+Sun weekend pass are available on Eventbrite"
]
}
]
},
{
"id": "blk-passes",
"title": "Passes & accommodations",
"kind": "pricing",
"body": [
{
"kind": "list",
"items": [
"Full Access: $280 (listed sale, $350 face) — Thu–Mon, all programming, BYO tent camping",
"Steward Pass: $868+ — full access plus patron bundle; subsidizes low-income tickets",
"Team Pass: $283/ea for groups of 3+, group tent space",
"Kids $23 · Teen $38 · Volunteer $174 · Parking $59 · Low-income applications available",
"On-site stays: Car Camping $150–175 · Enhanced Campsites $162+ (power/water) · Glamping Tents $695 (AC bell tent) · Glamping Cabins $1,157+ (kitchenette, AC) · Cabin Suite $2,023 (full kitchen, bath, AC)",
"RV camping limited — inquire via info@r3zproductions.com"
]
}, },
{ {
"kind": "link", "kind": "link",
@ -58,57 +132,43 @@
] ]
}, },
{ {
"id": "blk-guidance", "id": "blk-rules",
"title": "Attendee guidance", "title": "Policies & good stewardship",
"kind": "rules", "kind": "rules",
"body": [ "body": [
{ {
"kind": "list", "kind": "list",
"items": [ "items": [
"All ages are welcome; anyone under 18 must be accompanied by a parent or legal guardian.", "All ages; under 18 must be accompanied by parent/legal guardian with documentation.",
"Pack reusable bottles, cups, plates, and flatware, and pack out all waste under the Leave No Trace policy.", "Leave No Trace: pack out everything you bring and any MOOP. Bring reusable bottles, cups, plates, utensils, and trash bags — no disposables provided.",
"Non-service animals are not permitted at Son's Blue River Camp; service animals require documentation.", "Fires only in existing venue fire pits; check with staff before lighting.",
"No alcohol is sold at the summit.", "No alcohol sold on site; bringing it is discouraged.",
"Drones are prohibited without written permission from Solarpunk Summit." "Non-service animals prohibited ($75 penalty); service animals need documentation and an animal waiver.",
"Drones prohibited without written permission and will be confiscated.",
"Photo policy: attendance implies consent to being filmed; DSLR/360 cameras need media credentials.",
"No lockable storage on site; a lost-and-found station is available.",
"Times and lineup may shift; check the Telegram for updates"
] ]
}, },
{ {
"kind": "link", "kind": "link",
"text": "Read the official FAQ", "text": "Official FAQ",
"href": "https://solarpunksummit.com/faq/" "href": "https://solarpunksummit.com/faq/"
} }
] ]
}, },
{ {
"id": "blk-passes", "id": "blk-contact",
"title": "Passes and accommodations", "title": "Contact & community",
"kind": "pricing", "kind": "contact",
"body": [ "body": [
{ {
"kind": "list", "kind": "list",
"items": [ "items": [
"Full Access: $280 listed sale price; Thursday through Monday access and tent camping included.", "Email: info@r3zproductions.com",
"Steward Pass: $868+; full access plus patron benefits and low-income ticket support.", "Solarpunk Summit Community Telegram: t.me/+SHvix5vV8Cs3ZGMx (updates, ride shares, questions)",
"Team Pass: $283 per person for groups of three or more.", "Host a workshop, focus camp, vend, perform, or nominate a speaker via solarpunksummit.com/collaborate/"
"Single Day: $118; Kids: $23; Teen: $38; Volunteer: $174; Parking: $59.",
"Accommodation options include cabin suites, glamping cabins, glamping tents, enhanced campsites, and car camping."
] ]
},
{
"kind": "link",
"text": "Verify current prices and availability",
"href": "https://solarpunksummit.com/passes/"
}
]
},
{
"id": "blk-source",
"title": "Content source",
"kind": "provenance",
"body": [
{
"kind": "paragraph",
"text": "Imported from solarpunksummit.com on 2026-08-31. Prices, availability, policies, and program details can change; verify against the official site before relying on them."
} }
] ]
} }

View file

@ -11,62 +11,122 @@
] ]
}, },
"pois": [ "pois": [
{
"id": "poi-gate",
"name": "Main Entrance / Gate",
"category": "entrance",
"x": 0.5,
"y": 0.03,
"lat": null,
"lng": null,
"description": "Thu 11 AM; Fri–Mon 8 AM–8 PM. Waiver required before entry."
},
{
"id": "poi-registration",
"name": "Registration",
"category": "other",
"x": 0.44,
"y": 0.1,
"lat": null,
"lng": null,
"description": "Check in here; photo ID for re-entry."
},
{ {
"id": "poi-main-stage", "id": "poi-main-stage",
"name": "Main Stage", "name": "Main Stage",
"category": "stage", "category": "stage",
"x": 0.28, "x": 0.3,
"y": 0.28, "y": 0.3,
"description": "Headline sets, 6 PM–2 AM nightly.",
"lat": null, "lat": null,
"lng": null "lng": null,
"description": "Speakers, ceremonies, headline sets nightly."
}, },
{ {
"id": "poi-second-stage", "id": "poi-cabanas",
"name": "Second Stage", "name": "Cabanas",
"category": "stage", "category": "other",
"x": 0.72, "x": 0.68,
"y": 0.27, "y": 0.28,
"description": "Acoustic and workshop acts.",
"lat": null, "lat": null,
"lng": null "lng": null,
"description": "Workshop blocks 7 AM–3 PM and 6–9:30 PM Fri–Sun."
},
{
"id": "poi-river",
"name": "River Swimming",
"category": "other",
"x": 0.14,
"y": 0.55,
"lat": null,
"lng": null,
"description": "San Marcos River access; Water Blessing Friday 11 AM."
},
{
"id": "poi-kitchen",
"name": "Community Kitchen",
"category": "food",
"x": 0.52,
"y": 0.48,
"lat": null,
"lng": null,
"description": "Breakfast 8:30, brunch 10, lunch 2–4, dinner 8–9:30 PM daily."
},
{
"id": "poi-marketplace",
"name": "Marketplace & Expo",
"category": "other",
"x": 0.62,
"y": 0.44,
"lat": null,
"lng": null,
"description": "Solarpunk vendors, art exhibits, innovation expo."
},
{
"id": "poi-fire-circle",
"name": "Fire Circle",
"category": "other",
"x": 0.4,
"y": 0.74,
"lat": null,
"lng": null,
"description": "Sacred fire gatherings late Fri/Sun; check with staff before lighting fires."
},
{
"id": "poi-hub",
"name": "Homeostasis Hub",
"category": "other",
"x": 0.72,
"y": 0.6,
"lat": null,
"lng": null,
"description": "Sound baths and wind-downs."
}, },
{ {
"id": "poi-first-aid", "id": "poi-first-aid",
"name": "First Aid", "name": "First Aid",
"category": "other", "category": "other",
"x": 0.5, "x": 0.46,
"y": 0.5, "y": 0.4,
"description": "Staffed 24h during the festival.",
"lat": null, "lat": null,
"lng": null "lng": null,
"description": "Tell event staff first; keep access clear for responders."
}, },
{ {
"id": "poi-water", "id": "poi-water",
"name": "Water Station", "name": "Water Station",
"category": "water", "category": "water",
"x": 0.44, "x": 0.56,
"y": 0.52, "y": 0.54,
"description": "Free refill — bring a bottle.",
"lat": null, "lat": null,
"lng": null "lng": null,
}, "description": "Free refill — bring a reusable bottle."
{
"id": "poi-food",
"name": "Food Court",
"category": "food",
"x": 0.62,
"y": 0.55,
"description": "Vendors 11 AM–11 PM.",
"lat": null,
"lng": null
}, },
{ {
"id": "poi-restrooms-n", "id": "poi-restrooms-n",
"name": "Restrooms (North)", "name": "Restrooms (Main)",
"category": "restroom", "category": "restroom",
"x": 0.35, "x": 0.38,
"y": 0.47, "y": 0.44,
"lat": null, "lat": null,
"lng": null "lng": null
}, },
@ -74,30 +134,50 @@
"id": "poi-restrooms-c", "id": "poi-restrooms-c",
"name": "Restrooms (Camping)", "name": "Restrooms (Camping)",
"category": "restroom", "category": "restroom",
"x": 0.3, "x": 0.26,
"y": 0.78, "y": 0.84,
"lat": null, "lat": null,
"lng": null "lng": null
}, },
{ {
"id": "poi-camping", "id": "poi-camping",
"name": "Camping Field", "name": "Tent Camping Field",
"category": "camping", "category": "camping",
"x": 0.27, "x": 0.24,
"y": 0.7, "y": 0.72,
"description": "Permies and walk-in.",
"lat": null, "lat": null,
"lng": null "lng": null,
"description": "Community sites; shared fire pits and tables."
}, },
{ {
"id": "poi-entrance", "id": "poi-car-camp",
"name": "Main Entrance", "name": "Car Camping",
"category": "entrance", "category": "camping",
"x": 0.5, "x": 0.82,
"y": 0.03, "y": 0.78,
"description": "Gate opens 8 AM.",
"lat": null, "lat": null,
"lng": null "lng": null,
"description": "Premium shaded area; pass covers vehicle parking."
},
{
"id": "poi-glamping",
"name": "Glamping & Cabins",
"category": "camping",
"x": 0.8,
"y": 0.46,
"lat": null,
"lng": null,
"description": "Bell tents, cabins, and suites near main stage."
},
{
"id": "poi-lost-found",
"name": "Lost & Found",
"category": "other",
"x": 0.47,
"y": 0.14,
"lat": null,
"lng": null,
"description": "Staffed station near registration."
} }
], ],
"categories": ["stage", "restroom", "water", "food", "camping", "entrance", "other"] "categories": ["stage", "restroom", "water", "food", "camping", "entrance", "other"]

View file

@ -1,74 +1,796 @@
{ {
"section": "schedule", "section": "schedule",
"stages": [ "stages": [
{ "id": "track-air", "name": "Air Tribe" }, {
{ "id": "track-earth", "name": "Earth Tribe" }, "id": "stage-main",
{ "id": "track-fire", "name": "Fire Tribe" }, "name": "Main Stage"
{ "id": "track-water", "name": "Water Tribe" } },
{
"id": "stage-cabanas",
"name": "Cabanas"
},
{
"id": "stage-river",
"name": "River"
},
{
"id": "stage-fire",
"name": "Fire Circle"
},
{
"id": "stage-hub",
"name": "Homeostasis Hub"
}
], ],
"artists": [ "artists": [
{ "id": "art-community", "name": "Solarpunk Community" }, {
{ "id": "art-facilitators", "name": "Summit Facilitators" } "id": "air",
"name": "Air Day Crew"
},
{
"id": "earth",
"name": "Earth Day Crew"
},
{
"id": "jeana",
"name": "Dr. Jeana Locke"
},
{
"id": "monahan",
"name": "Robert Monahan"
},
{
"id": "blouis",
"name": "B. Louis"
},
{
"id": "ghostpipe",
"name": "Ghost Pipe"
},
{
"id": "sayuri",
"name": "Danza · Sayuri + Yolanda"
},
{
"id": "mimi",
"name": "Mimi Daraa"
},
{
"id": "murray",
"name": "Murray Kyle"
},
{
"id": "tetrud",
"name": "Billy Tetrud"
},
{
"id": "jenn",
"name": "Jenn Lynn"
},
{
"id": "hawley",
"name": "Joe Hawley"
},
{
"id": "monroe",
"name": "Taelor Monroe"
},
{
"id": "draper",
"name": "Joshua Draper"
},
{
"id": "morillo",
"name": "MORiLLO"
},
{
"id": "rize",
"name": "Nattali Rize"
},
{
"id": "drum",
"name": "Drum Temple"
},
{
"id": "habitaat",
"name": "HABITAAT"
},
{
"id": "swahe",
"name": "Ecstatic Dance · Joshua Swahe"
},
{
"id": "zeck",
"name": "Alec Zeck"
},
{
"id": "mckibbin",
"name": "Matt McKibbin"
},
{
"id": "nakamoto",
"name": "Poly Nakamoto"
},
{
"id": "improv",
"name": "Contact Improv Activation"
},
{
"id": "trev",
"name": "Trevmental"
},
{
"id": "marin",
"name": "Sierra Marin"
},
{
"id": "chase",
"name": "Ruby Chase"
},
{
"id": "starfire",
"name": "David Starfire"
},
{
"id": "bloom",
"name": "Liquid Bloom"
},
{
"id": "mckusick",
"name": "Eileen McKusick, Isaac + Toral"
},
{
"id": "sage",
"name": "Sage the Mage"
},
{
"id": "hayden",
"name": "Hayden Earth Keeper / Ka Resh"
},
{
"id": "robertson",
"name": "Brian Robertson"
},
{
"id": "bass",
"name": "Bass Church"
},
{
"id": "bottner",
"name": "Sam Bottner"
},
{
"id": "seaz",
"name": "2SeaZ"
},
{
"id": "larrosa",
"name": "Freddy Larrosa"
},
{
"id": "iyakuh",
"name": "Iyakuh"
},
{
"id": "facil",
"name": "Summit Facilitators"
},
{
"id": "comm",
"name": "Solarpunk Community"
}
], ],
"events": [ "events": [
{ {
"id": "evt-air-day", "id": "evt-doors",
"title": "Air Day: Communication and Connection", "title": "Doors Open · Registration",
"description": "A day focused on personal development, authentic relating, and networking.", "description": "Gates open 11 AM Thursday. Sign your venue waiver before arriving to speed check-in.",
"stageId": "track-air", "stageId": "stage-main",
"artistIds": ["art-facilitators"], "artistIds": ["comm"],
"startUtc": 1791504000000, "startUtc": 1791475200000,
"endUtc": 1791586800000, "endUtc": 1791489600000,
"dayKey": "2026-10-08", "dayKey": "2026-10-08",
"tags": ["theme", "connection", "workshops"], "tags": ["gate", "registration"],
"status": "scheduled" "status": "scheduled"
}, },
{ {
"id": "evt-earth-day", "id": "evt-air-checkin",
"title": "Earth Day: Regenerative Culture", "title": "Arrivals · Check-In · Camp Set-Up",
"description": "A day centered on permaculture, sustainable practices, alternative governance, and community connection.", "description": "Check in and set up camp before opening circle.",
"stageId": "track-earth", "stageId": "stage-main",
"artistIds": ["art-community"], "artistIds": ["comm"],
"startUtc": 1791590400000, "startUtc": 1791475200000,
"endUtc": 1791673200000, "endUtc": 1791489600000,
"dayKey": "2026-10-08",
"tags": ["camp"],
"status": "scheduled"
},
{
"id": "evt-air-opening",
"title": "Opening Prayer Circle + Activation",
"description": "The summit begins with a communal opening.",
"stageId": "stage-main",
"artistIds": ["facil"],
"startUtc": 1791489600000,
"endUtc": 1791493200000,
"dayKey": "2026-10-08",
"tags": ["ceremony"],
"status": "scheduled"
},
{
"id": "evt-air-connection",
"title": "Connection Games",
"description": "Authentic relating and games to meet the village.",
"stageId": "stage-main",
"artistIds": ["facil"],
"startUtc": 1791493200000,
"endUtc": 1791496800000,
"dayKey": "2026-10-08",
"tags": ["connection"],
"status": "scheduled"
},
{
"id": "evt-air-speakers",
"title": "Speaker Sessions feat. Dr. Jeana Locke",
"description": "Designed to love yourself, and more talks TBC.",
"stageId": "stage-main",
"artistIds": ["jeana", "facil"],
"startUtc": 1791496800000,
"endUtc": 1791502200000,
"dayKey": "2026-10-08",
"tags": ["speakers"],
"status": "scheduled"
},
{
"id": "evt-air-frequency",
"title": "Frequency of Love Evening · Open Mic",
"description": "Open mic feat. Robert Monahan + featured artists TBC.",
"stageId": "stage-main",
"artistIds": ["monahan"],
"startUtc": 1791504000000,
"endUtc": 1791512400000,
"dayKey": "2026-10-08",
"tags": ["music", "openmic"],
"status": "scheduled"
},
{
"id": "evt-air-blouis",
"title": "B. Louis",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["blouis"],
"startUtc": 1791513000000,
"endUtc": 1791517500000,
"dayKey": "2026-10-08",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-air-ghostpipe",
"title": "Ghost Pipe · Closing Set",
"description": "Closing set for Air day.",
"stageId": "stage-main",
"artistIds": ["ghostpipe"],
"startUtc": 1791518100000,
"endUtc": 1791522600000,
"dayKey": "2026-10-08",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-workshops",
"title": "Workshops · Cabana Day Slots",
"description": "Hands-on regenerative skills all morning.",
"stageId": "stage-cabanas",
"artistIds": ["facil"],
"startUtc": 1791547200000,
"endUtc": 1791576000000,
"dayKey": "2026-10-09", "dayKey": "2026-10-09",
"tags": ["theme", "permaculture", "regeneration"], "tags": ["workshops"],
"status": "scheduled" "status": "scheduled"
}, },
{ {
"id": "evt-fire-day", "id": "evt-earth-opening",
"title": "Fire Day: Innovation and Technology", "title": "Opening Prayers · Honor the Earth + PlantWave Meditation",
"description": "A day exploring innovation, entrepreneurship, technology, and transformative solutions.", "description": "Morning ceremony.",
"stageId": "track-fire", "stageId": "stage-main",
"artistIds": ["art-facilitators"], "artistIds": ["facil"],
"startUtc": 1791676800000, "startUtc": 1791554400000,
"endUtc": 1791759600000, "endUtc": 1791601200000,
"dayKey": "2026-10-09",
"tags": ["ceremony"],
"status": "scheduled"
},
{
"id": "evt-earth-danza",
"title": "Danza · Sayuri + Yolanda",
"description": "Movement and dance.",
"stageId": "stage-main",
"artistIds": ["sayuri"],
"startUtc": 1791558000000,
"endUtc": 1791604800000,
"dayKey": "2026-10-09",
"tags": ["dance"],
"status": "scheduled"
},
{
"id": "evt-earth-blessing",
"title": "Water Blessing",
"description": "Ceremony at the river.",
"stageId": "stage-river",
"artistIds": ["facil"],
"startUtc": 1791561600000,
"endUtc": 1791565200000,
"dayKey": "2026-10-09",
"tags": ["ceremony", "river"],
"status": "scheduled"
},
{
"id": "evt-earth-mimi",
"title": "Mimi Daraa · Palo Santo Activation",
"description": "Activation session.",
"stageId": "stage-main",
"artistIds": ["mimi"],
"startUtc": 1791568800000,
"endUtc": 1791571800000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-murray",
"title": "Murray Kyle",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["murray"],
"startUtc": 1791572400000,
"endUtc": 1791575400000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-speakers",
"title": "Speaker Sessions · Community Building",
"description": "Billy Tetrud, Jenn Lynn, Joe Hawley, Taelor Monroe + more TBC.",
"stageId": "stage-main",
"artistIds": ["tetrud", "jenn", "hawley", "monroe"],
"startUtc": 1791576000000,
"endUtc": 1791585600000,
"dayKey": "2026-10-09",
"tags": ["speakers"],
"status": "scheduled"
},
{
"id": "evt-earth-draper",
"title": "Joshua Draper",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["draper"],
"startUtc": 1791585900000,
"endUtc": 1791589500000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-eveningws",
"title": "Workshops · Cabana Evening Slots",
"description": "Evening workshop block.",
"stageId": "stage-cabanas",
"artistIds": ["facil"],
"startUtc": 1791586800000,
"endUtc": 1791599400000,
"dayKey": "2026-10-09",
"tags": ["workshops"],
"status": "scheduled"
},
{
"id": "evt-earth-morillo",
"title": "MORiLLO",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["morillo"],
"startUtc": 1791590400000,
"endUtc": 1791594900000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-rize",
"title": "Nattali Rize",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["rize"],
"startUtc": 1791595800000,
"endUtc": 1791599400000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-drum",
"title": "Drum Temple",
"description": "Drum circle.",
"stageId": "stage-main",
"artistIds": ["drum"],
"startUtc": 1791600300000,
"endUtc": 1791605700000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-habitaat",
"title": "HABITAAT · Closing Set",
"description": "Closing set for Earth day.",
"stageId": "stage-main",
"artistIds": ["habitaat"],
"startUtc": 1791606600000,
"endUtc": 1791612000000,
"dayKey": "2026-10-09",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-earth-sacred",
"title": "Sacred Fire Gathering",
"description": "Gathering at the fire circle.",
"stageId": "stage-fire",
"artistIds": ["comm"],
"startUtc": 1791612000000,
"endUtc": 1791619200000,
"dayKey": "2026-10-09",
"tags": ["fire"],
"status": "scheduled"
},
{
"id": "evt-earth-soundbath",
"title": "Evening Sound Bath",
"description": "Wind-down sound bath.",
"stageId": "stage-hub",
"artistIds": ["facil"],
"startUtc": 1791612000000,
"endUtc": 1791615600000,
"dayKey": "2026-10-09",
"tags": ["soundbath"],
"status": "scheduled"
},
{
"id": "evt-fire-workshops",
"title": "Workshops · Cabana Day Slots",
"description": "Day workshop block.",
"stageId": "stage-cabanas",
"artistIds": ["facil"],
"startUtc": 1791633600000,
"endUtc": 1791662400000,
"dayKey": "2026-10-10", "dayKey": "2026-10-10",
"tags": ["theme", "technology", "innovation"], "tags": ["workshops"],
"status": "scheduled" "status": "scheduled"
}, },
{ {
"id": "evt-water-day", "id": "evt-fire-opening",
"title": "Water Day: Consciousness and Integration", "title": "Opening Prayers · Honor the Fire",
"description": "A reflective day devoted to mindfulness, yoga, spirituality, and integrating the summit experience.", "description": "Morning ceremony.",
"stageId": "track-water", "stageId": "stage-main",
"artistIds": ["art-facilitators"], "artistIds": ["facil"],
"startUtc": 1791763200000, "startUtc": 1791640800000,
"endUtc": 1791846000000, "endUtc": 1791687600000,
"dayKey": "2026-10-10",
"tags": ["ceremony"],
"status": "scheduled"
},
{
"id": "evt-fire-ecstatic",
"title": "Ecstatic Dance · Joshua Swahe",
"description": "Free-form movement.",
"stageId": "stage-main",
"artistIds": ["swahe"],
"startUtc": 1791648000000,
"endUtc": 1791653400000,
"dayKey": "2026-10-10",
"tags": ["dance"],
"status": "scheduled"
},
{
"id": "evt-fire-zeck",
"title": "Alec Zeck · Daytime DJ Set",
"description": "DJ set on the main stage.",
"stageId": "stage-main",
"artistIds": ["zeck"],
"startUtc": 1791658800000,
"endUtc": 1791662400000,
"dayKey": "2026-10-10",
"tags": ["music", "dj"],
"status": "scheduled"
},
{
"id": "evt-fire-speakers",
"title": "Speaker Sessions · Technology",
"description": "Matt McKibbin, Poly Nakamoto + more TBC. Agentic energy sovereignty, Meridia microcity.",
"stageId": "stage-main",
"artistIds": ["mckibbin", "nakamoto"],
"startUtc": 1791662400000,
"endUtc": 1791669600000,
"dayKey": "2026-10-10",
"tags": ["speakers", "tech"],
"status": "scheduled"
},
{
"id": "evt-fire-dinner",
"title": "Dinner · Open Space",
"description": "Community dinner.",
"stageId": "stage-main",
"artistIds": ["comm"],
"startUtc": 1791669600000,
"endUtc": 1791678600000,
"dayKey": "2026-10-10",
"tags": ["food"],
"status": "scheduled"
},
{
"id": "evt-fire-improv",
"title": "Contact Improv Activation",
"description": "Embodied connection practice.",
"stageId": "stage-main",
"artistIds": ["improv"],
"startUtc": 1791669600000,
"endUtc": 1791675000000,
"dayKey": "2026-10-10",
"tags": ["dance"],
"status": "scheduled"
},
{
"id": "evt-fire-eveningws",
"title": "Workshops · Cabana Evening Slots",
"description": "Evening workshop block.",
"stageId": "stage-cabanas",
"artistIds": ["facil"],
"startUtc": 1791673200000,
"endUtc": 1791685800000,
"dayKey": "2026-10-10",
"tags": ["workshops"],
"status": "scheduled"
},
{
"id": "evt-fire-trev",
"title": "Trevmental",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["trev"],
"startUtc": 1791675600000,
"endUtc": 1791677400000,
"dayKey": "2026-10-10",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-fire-marin",
"title": "Sierra Marin",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["marin"],
"startUtc": 1791680700000,
"endUtc": 1791684300000,
"dayKey": "2026-10-10",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-fire-chase",
"title": "Ruby Chase",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["chase"],
"startUtc": 1791684600000,
"endUtc": 1791690000000,
"dayKey": "2026-10-10",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-fire-starfire",
"title": "David Starfire",
"description": "Headline set.",
"stageId": "stage-main",
"artistIds": ["starfire"],
"startUtc": 1791690300000,
"endUtc": 1791695700000,
"dayKey": "2026-10-10",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-fire-bloom",
"title": "Liquid Bloom",
"description": "Late set.",
"stageId": "stage-main",
"artistIds": ["bloom"],
"startUtc": 1791696000000,
"endUtc": 1791701400000,
"dayKey": "2026-10-10",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-fire-soundbath",
"title": "Sound Bath · Wind-Down",
"description": "Closing wind-down.",
"stageId": "stage-main",
"artistIds": ["facil"],
"startUtc": 1791702000000,
"endUtc": 1791705600000,
"dayKey": "2026-10-10",
"tags": ["soundbath"],
"status": "scheduled"
},
{
"id": "evt-water-workshops",
"title": "Workshops · Cabana Day Slots",
"description": "Day workshop block.",
"stageId": "stage-cabanas",
"artistIds": ["facil"],
"startUtc": 1791720000000,
"endUtc": 1791748800000,
"dayKey": "2026-10-11", "dayKey": "2026-10-11",
"tags": ["theme", "wellness", "integration"], "tags": ["workshops"],
"status": "scheduled" "status": "scheduled"
}, },
{ {
"id": "evt-closing", "id": "evt-water-opening",
"title": "Closing and Carry-Forward", "title": "Opening Prayers · Honor the Water",
"description": "Closing day for reflection, community, and carrying practical ideas into the world.", "description": "Morning ceremony.",
"stageId": "track-water", "stageId": "stage-main",
"artistIds": ["art-community"], "artistIds": ["facil"],
"startUtc": 1791849600000, "startUtc": 1791727200000,
"endUtc": 1791932400000, "endUtc": 1791774000000,
"dayKey": "2026-10-11",
"tags": ["ceremony"],
"status": "scheduled"
},
{
"id": "evt-water-sing",
"title": "Sing the Body Electric",
"description": "Eileen McKusick, Isaac + Toral.",
"stageId": "stage-main",
"artistIds": ["mckusick"],
"startUtc": 1791734400000,
"endUtc": 1791738000000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-sage",
"title": "Sage the Mage",
"description": "Set, placement TBC.",
"stageId": "stage-main",
"artistIds": ["sage"],
"startUtc": 1791738600000,
"endUtc": 1791741300000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-hayden",
"title": "Hayden Earth Keeper / Ka Resh",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["hayden"],
"startUtc": 1791745200000,
"endUtc": 1791748800000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-speakers",
"title": "Speaker Sessions feat. Alec Zeck",
"description": "Alec Zeck, Brian Robertson + more.",
"stageId": "stage-main",
"artistIds": ["zeck", "robertson"],
"startUtc": 1791748800000,
"endUtc": 1791756000000,
"dayKey": "2026-10-11",
"tags": ["speakers"],
"status": "scheduled"
},
{
"id": "evt-water-bass",
"title": "Bass Church",
"description": "Bass music gathering.",
"stageId": "stage-main",
"artistIds": ["bass"],
"startUtc": 1791756000000,
"endUtc": 1791761400000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-eveningws",
"title": "Workshops · Cabana Evening Slots",
"description": "Evening workshop block.",
"stageId": "stage-cabanas",
"artistIds": ["facil"],
"startUtc": 1791759600000,
"endUtc": 1791772200000,
"dayKey": "2026-10-11",
"tags": ["workshops"],
"status": "scheduled"
},
{
"id": "evt-water-bottner",
"title": "Sam Bottner",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["bottner"],
"startUtc": 1791762000000,
"endUtc": 1791765600000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-seaz",
"title": "2SeaZ",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["seaz"],
"startUtc": 1791766200000,
"endUtc": 1791769800000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-larrosa",
"title": "Freddy Larrosa",
"description": "Live set.",
"stageId": "stage-main",
"artistIds": ["larrosa"],
"startUtc": 1791770400000,
"endUtc": 1791774000000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-iyakuh",
"title": "Iyakuh · Headline Set",
"description": "Final headline set.",
"stageId": "stage-main",
"artistIds": ["iyakuh"],
"startUtc": 1791774600000,
"endUtc": 1791780000000,
"dayKey": "2026-10-11",
"tags": ["music"],
"status": "scheduled"
},
{
"id": "evt-water-firecircle",
"title": "Fire Circle",
"description": "Closing fire circle.",
"stageId": "stage-fire",
"artistIds": ["comm"],
"startUtc": 1791780000000,
"endUtc": 1791784800000,
"dayKey": "2026-10-11",
"tags": ["fire"],
"status": "scheduled"
},
{
"id": "evt-ether-open",
"title": "Ether Day · Open Emergent Space",
"description": "No fixed programming. Space to swim, make music, linger, and create what no one planned. Off the property by Tue 11 AM.",
"stageId": "stage-main",
"artistIds": ["comm"],
"startUtc": 1791810000000,
"endUtc": 1791853200000,
"dayKey": "2026-10-12", "dayKey": "2026-10-12",
"tags": ["closing", "community"], "tags": ["ether", "open"],
"status": "scheduled" "status": "scheduled"
} }
] ]

View file

@ -661,14 +661,14 @@ html.dark .app-main__icon {
font-size: 0.875rem; font-size: 0.875rem;
font-weight: 600; font-weight: 600;
} }
.emergency-alert { .emergency-fallback {
background: var(--emergency); background: var(--emergency);
border: 1px solid var(--emergency); border: 1px solid var(--emergency);
border-radius: var(--radius); border-radius: var(--radius);
color: var(--emergency-contrast); color: var(--emergency-contrast);
padding: 1rem; padding: 1rem;
} }
.emergency-alert h2 { .emergency-fallback h2 {
margin-top: 0; margin-top: 0;
} }
.emergency-service p { .emergency-service p {

View file

@ -130,12 +130,12 @@ export function createEmergencyView(
const procedures = detail?.procedures?.length ? detail.procedures : resolved.floor.procedures; const procedures = detail?.procedures?.length ? detail.procedures : resolved.floor.procedures;
const urgent = document.createElement("div"); const urgent = document.createElement("div");
urgent.className = "emergency-alert"; urgent.className = "emergency-fallback";
urgent.append(heading("emergency-call-heading", "Need immediate help?")); urgent.append(heading("emergency-call-heading", "Can't reach event help?"));
addService(urgent, "Emergency services", services.emergencyNumber, true);
urgent.append(text("p", "Tap to call. The number is also selectable for copying."));
section.append(urgent);
// Share first: the practical action (send your location + numbers to your
// group) belongs above the emergency-services number, which the procedures
// now frame as the fallback.
const shareBtn = document.createElement("button"); const shareBtn = document.createElement("button");
shareBtn.className = "emergency-share-btn"; shareBtn.className = "emergency-share-btn";
shareBtn.textContent = "Share emergency info"; shareBtn.textContent = "Share emergency info";
@ -153,7 +153,11 @@ export function createEmergencyView(
alert("Copied to clipboard: " + textToShare.slice(0, 80) + "..."); alert("Copied to clipboard: " + textToShare.slice(0, 80) + "...");
} }
}; };
section.append(shareBtn); urgent.append(shareBtn);
addService(urgent, "Emergency services", services.emergencyNumber, true);
urgent.append(text("p", "Call only when event staff and first aid can't respond. Tap to call."));
section.append(urgent);
const contacts = document.createElement("section"); const contacts = document.createElement("section");
contacts.setAttribute("aria-labelledby", "emergency-services-heading"); contacts.setAttribute("aria-labelledby", "emergency-services-heading");