diff --git a/index.html b/index.html index 3cc2ee4..224daed 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@ @media (prefers-reduced-motion: reduce) { .app-loading-gem { animation: none; transform: rotate(45deg); } } - + diff --git a/package.json b/package.json index e44f391..573cc73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "amerc-site", - "version": "3.0.0-painted", + "version": "3.1.0-paintedmobile", "private": true, "type": "module", "scripts": { diff --git a/src/Scene2D.jsx b/src/Scene2D.jsx index b4dd919..8649cfa 100644 --- a/src/Scene2D.jsx +++ b/src/Scene2D.jsx @@ -12,7 +12,7 @@ import { api } from './api.js'; const Menu = ({ size = 20 }) => (); const X = ({ size = 20 }) => (); -const RELEASE = '3.0.0-painted'; +const RELEASE = '3.1.0-paintedmobile'; const NAV = [ { id: 'home', label: 'Tavern' }, @@ -124,6 +124,11 @@ function Home({ setRoute, auth }) {
every fixture in the tavern is a door β walk in, or read the
+
+
{/* patrons + bartender */}
diff --git a/src/styles.css b/src/styles.css
index 755eee8..d9e228a 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -1928,3 +1928,27 @@ button {
.pt-board { width: 46%; padding: 8px; }
.pt-bub-dwarf { display: none; }
}
+
+/* painted hero: ambient life + mobile (3.1) */
+.pt-ambient { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; z-index: 1; }
+.pt-glow { position: absolute; border-radius: 50%; filter: blur(8px); }
+.pt-glow.warm { background: radial-gradient(circle, rgba(255,180,90,0.55), rgba(255,170,80,0) 70%); }
+.pt-glow.cool { background: radial-gradient(circle, rgba(90,200,255,0.5), rgba(70,200,235,0) 70%); }
+@keyframes ptFlicker { 0%, 100% { opacity: 0.85; } 42% { opacity: 0.6; } 55% { opacity: 1; } 70% { opacity: 0.72; } }
+@keyframes ptPulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 0.95; } }
+.pt-glow.a { left: 6%; top: 12%; width: 13%; aspect-ratio: 1; animation: ptFlicker 3.3s ease-in-out infinite; }
+.pt-glow.b { left: 80%; top: 13%; width: 13%; aspect-ratio: 1; animation: ptFlicker 3.9s ease-in-out infinite 0.7s; }
+.pt-glow.c { left: 9%; top: 36%; width: 12%; aspect-ratio: 1; animation: ptPulse 4.5s ease-in-out infinite; }
+.pt-glow.d { left: 44%; top: 56%; width: 22%; aspect-ratio: 2.4; border-radius: 40%; animation: ptPulse 5s ease-in-out infinite 0.5s; }
+
+/* mobile tap CTAs under the scene (diegetic hotspots are too small to tap) */
+.gm-cta-row { display: none; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }
+.gm-cta-row .gm-cta-btn { font-size: 13px; padding: 9px 14px; }
+@media (max-width: 700px) {
+ .pt-tab, .pt-bub-orc, .pt-bub-dwarf { display: none; }
+ .pt-board { left: 50%; transform: translateX(-50%); width: 64%; top: 6%; }
+ .pt-board:hover { transform: translateX(-50%) translateY(-2px); }
+ .pt-elf-wrap { height: 80%; right: 0; }
+ .gm-cta-row { display: flex; }
+ .gm-stage3 .gm-room { width: 100%; }
+}