diff --git a/package.json b/package.json index 2b1d4b1..b479fc5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "siteforge", "private": true, - "version": "2.40.0", + "version": "2.41.0", "type": "module", "scripts": { "dev": "vite", diff --git a/public/salvation/index.html b/public/salvation/index.html index ab5a014..98371b2 100644 --- a/public/salvation/index.html +++ b/public/salvation/index.html @@ -643,6 +643,22 @@ #audio-seek { flex: 1; min-width: 0; accent-color: var(--gold); height: 1.6rem; cursor: pointer; } .audio-time { font-family: 'Cinzel', serif; font-size: 0.8rem; min-width: 4.6rem; text-align: right; color: var(--parchment-dark); white-space: nowrap; } @media (max-width: 600px) { .audio-controls { flex-wrap: wrap; } #audio-seek { flex-basis: 100%; order: 5; } .audio-time { margin-left: auto; } } + + .audio-actions { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed rgba(184,134,11,0.5); } + .audio-actions[hidden] { display: none; } + .audio-q { font-family: 'Cinzel', serif; font-weight: 900; font-size: 1.25rem; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; margin-bottom: 0.7rem; text-align: center; } + .audio-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; } + .audio-choice { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 1rem 0.8rem; font-family: 'Cinzel', serif; font-weight: 900; font-size: 1.1rem; letter-spacing: 0.08em; text-transform: uppercase; color: #1a0f05; background: linear-gradient(135deg, #f0c24a, var(--gold) 55%, #9a6f0a); border: 2px solid #f6d77a; border-radius: 3px; cursor: pointer; box-shadow: 0 0 22px rgba(240,194,74,0.3); transition: transform .15s, filter .15s; } + .audio-choice small { font-family: 'EB Garamond', serif; font-weight: 500; font-size: 0.95rem; letter-spacing: 0; text-transform: none; } + .audio-choice:hover { transform: translateY(-2px); filter: brightness(1.08); } + .audio-choice--alt { background: transparent; color: var(--parchment); border-color: var(--gold); box-shadow: none; } + .audio-choice--alt:hover { background: rgba(184,134,11,0.18); filter: none; } + .audio-actions-row { display: flex; flex-wrap: wrap; gap: 0.7rem; justify-content: center; } + .audio-actions-row .audio-choice { flex: 1 1 14rem; } + .audio-skip { margin-top: 0.8rem; text-align: center; } + .audio-skip[hidden] { display: none; } + .audio-link { background: none; border: 0; color: var(--parchment-dark); font-family: 'EB Garamond', serif; font-size: 1rem; font-style: italic; text-decoration: underline; cursor: pointer; } + @media (max-width: 600px) { .audio-choices { grid-template-columns: 1fr; } }
@@ -687,8 +703,8 @@Listen to the case
-The full case read aloud, about 10 minutes.
+Listen to the case
+The case read aloud, about 10 minutes. At the end you choose your plea.
An audio version of The Case, with a player at the top of the page. Leave this blank to hide the player.
+A choose-your-path audio version. Listeners hear The Case, then choose Guilty or Not guilty and hear the matching track. Leave the first field blank to hide the player. If the two plea tracks are blank, the plea buttons just select the plea on the page.
- To make the file: put your ElevenLabs key and voice in your local .env, then run{' '}
- node --env-file=.env scripts/generate-salvation-audio.mjs. Upload the MP3 in Asset Manager and paste its URL here, then Save and Publish.
+ To make the files: put your ElevenLabs key and voice in your local .env, try node --env-file=.env scripts/generate-salvation-audio.mjs --sample first, then run it without --sample to make all three. Upload the MP3s in Asset Manager and paste their URLs here, then Save and Publish.