diff --git a/src/app.css b/src/app.css index 5b1152d..44e5f6e 100644 --- a/src/app.css +++ b/src/app.css @@ -1237,53 +1237,87 @@ select:focus { /* Voices Section */ .voices-intro { - color: var(--color-text-muted); - font-size: 0.95em; - font-style: italic; - margin-bottom: 20px; + color: var(--color-text-medium); + font-size: 1em; + margin-bottom: 24px; text-align: center; + line-height: 1.6; } .voices-grid { display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 15px; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 20px; } .voice-card { - background-color: var(--color-bg-card); + background: linear-gradient(135deg, var(--color-bg-card) 0%, var(--color-bg-elevated) 100%); border: 1px solid var(--color-border-dark); - border-left: 3px solid var(--color-primary); - border-radius: 0 8px 8px 0; - padding: 18px 20px; + border-radius: 12px; + padding: 24px 24px 20px; margin: 0; - transition: background-color 0.2s ease, transform 0.2s ease; + position: relative; + transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; +} + +.voice-card::before { + content: '\201C'; + position: absolute; + top: 12px; + left: 16px; + font-size: 3em; + line-height: 1; + color: var(--color-primary); + opacity: 0.25; + font-family: Georgia, serif; } .voice-card:hover { - background-color: #252525; - transform: translateY(-2px); + border-color: var(--color-primary); + transform: translateY(-3px); + box-shadow: 0 8px 24px rgba(255, 215, 0, 0.08); } .voice-card p { color: var(--color-text-medium); font-size: 0.95em; - line-height: 1.6; - margin: 0 0 12px 0; + line-height: 1.7; + margin: 8px 0 16px 0; font-style: italic; } .voice-card footer { - color: var(--color-primary); - font-size: 0.9em; - font-weight: bold; + padding-top: 12px; + border-top: 1px solid var(--color-border-dark); text-align: right; + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 2px; } -.voice-card footer::before { +.voice-name { + color: var(--color-primary); + font-size: 0.95em; + font-weight: bold; +} + +.voice-name::before { content: '— '; } +.voice-role { + color: var(--color-text-muted); + font-size: 0.8em; +} + +.voice-tagline { + color: var(--color-text-muted); + font-size: 0.75em; + font-style: italic; + opacity: 0.8; +} + /* Requirements Section */ .requirements-section { background-color: var(--color-bg-card); diff --git a/src/lib/ReadMePage.svelte b/src/lib/ReadMePage.svelte index 636554a..b398c8e 100644 --- a/src/lib/ReadMePage.svelte +++ b/src/lib/ReadMePage.svelte @@ -16,7 +16,8 @@ { id: 'system', label: 'System', icon: 'images/sysinfo.webp' }, { id: 'faq', label: 'FAQ', icon: 'images/getinfo.webp' }, { id: 'changelog', label: 'Changelog', icon: 'images/callfail.webp' }, - { id: 'manual', label: 'Manual', icon: 'images/bonus.webp' } + { id: 'manual', label: 'Manual', icon: 'images/bonus.webp' }, + { id: 'voices', label: 'Voices', icon: 'images/send.webp' } ]; const faqItems = [ @@ -33,7 +34,10 @@ ]; const changelogItems = [ - { id: 'cl0', title: 'February 2026', items: [ + { id: 'cl0', title: 'March 2026', items: [ + { type: 'New', text: 'Voices tab on the Read Me page showcases reactions from the original LEGO Island development team' } + ]}, + { id: 'cl1', title: 'February 2026', items: [ { type: 'New', text: 'Save Editor lets you view and modify save files — change your player name, character, and high scores directly from the browser' }, { type: 'New', text: 'Sky Color Editor allows customizing the island sky gradient colors in your save file' }, { type: 'New', text: 'Vehicle Part Editor enables modifying vehicle parts and colors with a 3D preview' }, @@ -48,14 +52,14 @@ { type: 'Improved', text: 'Save Editor tabs now use a carousel with arrow navigation for easier browsing on small screens' }, { type: 'Fixed', text: 'Sticky hover highlights on touch devices for editor buttons' } ]}, - { id: 'cl1', title: 'January 2026', items: [ + { id: 'cl2', title: 'January 2026', items: [ { type: 'New', text: 'Debug menu for developers and power users. Tap the LEGO Island logo 5 times to unlock OGEL mode and access debug features like teleporting to locations, switching acts, and playing animations' }, { type: 'Improved', text: 'Configure page redesigned with tabbed navigation, collapsible sections, quick presets (Classic/Modern Mode), and modern toggle switches' }, { type: 'Improved', text: 'Read Me page reorganized into tabs (About, System, FAQ, Changelog, Manual) with the original instruction manual now viewable in-browser' }, { type: 'Fixed', text: 'Safari audio not playing on first toggle' }, { type: 'Fixed', text: 'Tooltips not working correctly on mobile devices' } ]}, - { id: 'cl2', title: 'December 2025', items: [ + { id: 'cl3', title: 'December 2025', items: [ { type: 'New', text: '"Active in Background" option keeps the game running when the tab loses focus' }, { type: 'New', text: 'WASD navigation controls as an alternative to arrow keys' }, { type: 'Fixed', text: 'Act 3 helicopter ammo now correctly sticks to targets and finishes animations' }, @@ -64,17 +68,17 @@ { type: 'Fixed', text: 'Touch controls now properly support widescreen aspect ratios' }, { type: 'Improved', text: 'Default anisotropic filtering increased to 16x for sharper textures' } ]}, - { id: 'cl3', title: 'November 2025', items: [ + { id: 'cl4', title: 'November 2025', items: [ { type: 'Fixed', text: 'Dictionary loading failure no longer causes crashes' }, { type: 'Fixed', text: 'INI configuration now properly applies defaults when values are missing' } ]}, - { id: 'cl4', title: 'September 2025', items: [ + { id: 'cl5', title: 'September 2025', items: [ { type: 'New', text: 'Additional widescreen background images' }, { type: 'Fixed', text: 'Jukebox state now correctly restored when using HD Music extension' }, { type: 'Fixed', text: 'Background audio no longer gets stuck when starting audio fails' }, { type: 'Improved', text: 'SI Loader actions now start at the correct time during world loading' } ]}, - { id: 'cl5', title: 'August 2025', items: [ + { id: 'cl6', title: 'August 2025', items: [ { type: 'New', text: 'Extended Bad Ending FMV extension shows the uncut beta animation' }, { type: 'New', text: 'HD Music extension with high-quality audio' }, { type: 'New', text: 'Widescreen backgrounds extension eliminates 3D edges on wide displays' }, @@ -83,7 +87,7 @@ { type: 'Fixed', text: 'Purple edges no longer appear on scaled transparent 2D elements' }, { type: 'Fixed', text: 'Transparent pixels now render correctly with alpha channel support' } ]}, - { id: 'cl6', title: 'July 2025', items: [ + { id: 'cl7', title: 'July 2025', items: [ { type: 'New', text: 'HD Textures extension with enhanced visuals' }, { type: 'New', text: 'MSAA anti-aliasing support for smoother edges' }, { type: 'New', text: 'Anisotropic filtering for sharper textures at angles' }, @@ -105,7 +109,7 @@ { type: 'Improved', text: 'Mosaic transition animation is faster and cleaner' }, { type: 'Improved', text: 'Loading UX for HD Textures with progress indicators' } ]}, - { id: 'cl7', title: 'June 2025 — Initial Release', items: [ + { id: 'cl8', title: 'June 2025 — Initial Release', items: [ { type: 'New', text: 'Emscripten web port — play LEGO Island directly in your browser!' }, { type: 'New', text: 'WebGL rendering for hardware-accelerated 3D graphics' }, { type: 'New', text: 'Software renderer fallback for devices without WebGL' }, @@ -253,7 +257,6 @@ -

Reactions from the original LEGO Island development team:

@@ -261,7 +264,11 @@

This is just fantastic! What an endeavor! It is a wonderful tribute to a team that was unparalleled in talent, and we should now include you and your team in that august group. I really wish Wes was around to see it. Keep us posted on updates...

-
Scott Anderson
+
+ Scott Anderson + Sr. Producer / Senior Project Manager / Co-Creator + Honorary Mayor of LEGO Island +

Wow; what a trip. My first trial was on my mac; which had problems displaying any of the @@ -269,30 +276,50 @@ navigation frustrations. But being delivered over the web means any fix you make goes out immediately. I want you all to know it was a joy to work on and how grateful I am to have been a part of the origin. I hope you are getting joy from working on it and keeping it alive.

-
Dennis Goodrow
+
+ Dennis Goodrow + Director of Development / Lead Programmer / Co-Creator + Voted "Best Neighbor on LEGO Island" for two years in a row +

This is pretty neat. At least as responsive over the web as the game was on the target machines of the time! I hadn't heard of WebAssembly until now. What kind of changes to the source were needed to get it working under WebAssembly? I foresee many hours of my time being used up experimenting with this tool!

-
Jim Brown
+
+ Jim Brown + Programming Wizard / The Godfather of Code +

Well done and such fun tapping back into such fond creative memories.

-
Paul Melmed
+
+ Paul J. Melmed, Ph.D. + Director of Education and Research / Co-Creator + Resident Shrink and Friend to all on LEGO Island +

That's awesome!

-
Randy Chou
+
+ Randy Yen-pang Chou + 3D Programming / Emperor of Quoternia +

Fantastic! Love it.

-
Kevin Byall
+
+ Kevin Byall + Highly Caffeinated Artist, Animator +

Great stuff!

-
Dave Cherry
+