PageSourceSearch

https://sol.vin/games

html sol.vin collected 2026-10-09 21:58:20 UTC 698,882 bytes, 2,408 lines download raw bytes

1<!-- src/templates/layout.ecr -->
2<!DOCTYPE html>
3<html lang="en">
4<head>
5  <meta charset="UTF-8">
6  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7  <title>GAMES // Godot & Indie // Interactive Showcase - SOL.VIN</title>
8  
9  <meta name="description" content="Collection of 3D/2D indie games, game jam entries, and WebAssembly experiences by Ian Rash.">
10  <meta name="author" content="Ian Rash">
11  
12  
13    <meta name="keywords" content="DevOps, Systems Engineering, Linux Kernel, Crystal, Ruby, Python, Infrastructure as Code, OpenTofu, Terraform, Security Engineering, Reverse Engineering">
14  
15  <meta name="robots" content="index, follow">
16
17  
18  <link rel="canonical" href="https://sol.vin/games">
19
20  <link rel="alternate" type="application/rss+xml" title="SOL.VIN Journal - Global RSS Feed" href="./rss.xml">
21  
22
23  <meta property="og:title" content="GAMES // Godot &amp; Indie // Interactive Showcase - SOL.VIN">
24  <meta property="og:description" content="Collection of 3D/2D indie games, game jam entries, and WebAssembly experiences by Ian Rash.">
25  <meta property="og:type" content="website">
26  <meta property="og:url" content="https://sol.vin/games">
27  <meta property="og:image" content="https://sol.vin/images/logo.png">
28  <meta property="og:site_name" content="SOL.VIN">
29
30  <meta name="twitter:card" content="summary_large_image">
31  <meta name="twitter:title" content="GAMES // Godot &amp; Indie // Interactive Showcase - SOL.VIN">
32  <meta name="twitter:description" content="Collection of 3D/2D indie games, game jam entries, and WebAssembly experiences by Ian Rash.">
33  <meta name="twitter:image" content="https://sol.vin/images/logo.png">
34
35  
36  <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png">
37  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png">
38  <link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
39  <link rel="manifest" href="./site.webmanifest">
40  
40<script>
41    window.SITE_PALETTES = [{"id":"warm_paper","name":"Warm Paper (Default)","colors":{"bg_color":"#faf6ee","bg_window":"#faf6ee","text_color":"#1c1c1e","link_color":"#303030","text_dim":"#1c1c1e","border_color":"#1c1c1e","border_active":"#1c1c1e","accent_color":"#1c1c1e","shadow_color":"#1c1c1e","accent_secondary":"#3a3a3c","accent_tertiary":"#545458","accent_quaternary":"#303030","cube":"#1c1c1e","cube_hover":"#303030","resume_job_role":"#1c1c1e","resume_job_company":"#303030","resume_job_meta":"#545458","resume_skill_bg":"#1c1c1e","resume_skill_text":"#faf6ee","resume_badge_bg":"#1c1c1e","resume_badge_text":"#faf6ee","filter_start_color":"#1c1c1e","filter_end_color":"#faf6ee"},"palette_colors":{"cream":"#faf6ee","dark_charcoal":"#1c1c1e","charcoal":"#303030","dark_grey":"#3a3a3c","grey":"#545458"},"variables":{"bg_color":"cream","bg_window":"cream","text_color":"dark_charcoal","link_color":"charcoal","text_dim":"dark_charcoal","border_color":"dark_charcoal","border_active":"dark_charcoal","accent_color":"dark_charcoal","shadow_color":"dark_charcoal","accent_secondary":"dark_grey","accent_tertiary":"grey","accent_quaternary":"charcoal","cube":"dark_charcoal","cube_hover":"charcoal","resume_job_role":"dark_charcoal","resume_job_company":"charcoal","resume_job_meta":"grey","resume_skill_bg":"dark_charcoal","resume_skill_text":"cream","resume_badge_bg":"dark_charcoal","resume_badge_text":"cream","filter_start_color":"dark_charcoal","filter_end_color":"cream"}},{"id":"monochrome","name":"Monochrome","colors":{"bg_color":"#ffffff","bg_window":"#ffffff","text_color":"#000000","link_color":"#000000","text_dim":"#555555","border_color":"#000000","border_active":"#000000","accent_color":"#000000","shadow_color":"#000000","accent_secondary":"#333333","accent_tertiary":"#555555","accent_quaternary":"#777777","cube":"#000000","cube_hover":"#333333","resume_job_role":"#000000","resume_job_company":"#333333","resume_job_meta":"#555555","resume_skill_bg":"#000000","resume_skill_text":"#ffffff","resume_badge_bg":"#000000","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#ffffff"},"palette_colors":{"white":"#ffffff","black":"#000000","grey":"#555555","dark_grey":"#333333","light_grey":"#777777"},"variables":{"bg_color":"white","bg_window":"white","text_color":"black","link_color":"black","text_dim":"grey","border_color":"black","border_active":"black","accent_color":"black","shadow_color":"black","accent_secondary":"dark_grey","accent_tertiary":"grey","accent_quaternary":"light_grey","cube":"black","cube_hover":"dark_grey","resume_job_role":"black","resume_job_company":"dark_grey","resume_job_meta":"grey","resume_skill_bg":"black","resume_skill_text":"white","resume_badge_bg":"black","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"white"}},{"id":"inversion","name":"Inversion","colors":{"bg_color":"#000000","bg_window":"#000000","text_color":"#ffffff","link_color":"#ffffff","text_dim":"#aaaaaa","border_color":"#ffffff","border_active":"#ffffff","accent_color":"#ffffff","shadow_color":"#ffffff","accent_secondary":"#dddddd","accent_tertiary":"#aaaaaa","accent_quaternary":"#888888","cube":"#ffffff","cube_hover":"#aaaaaa","resume_job_role":"#ffffff","resume_job_company":"#dddddd","resume_job_meta":"#aaaaaa","resume_skill_bg":"#ffffff","resume_skill_text":"#000000","resume_badge_bg":"#ffffff","resume_badge_text":"#000000","filter_start_color":"#000000","filter_end_color":"#ffffff"},"palette_colors":{"black":"#000000","white":"#ffffff","light_grey":"#aaaaaa","grey":"#dddddd","dark_grey":"#888888"},"variables":{"bg_color":"black","bg_window":"black","text_color":"white","link_color":"white","text_dim":"light_grey","border_color":"white","border_active":"white","accent_color":"white","shadow_color":"white","accent_secondary":"grey","accent_tertiary":"light_grey","accent_quaternary":"dark_grey","cube":"white","cube_hover":"light_grey","resume_job_role":"white","resume_job_company":"grey","resume_job_meta":"light_grey","resume_skill_bg":"white","resume_skill_text":"black","resume_badge_bg":"white","resume_badge_text":"black","filter_start_color":"black","filter_end_color":"white"}},{"id":"monokai","name":"Monokai","colors":{"bg_color":"#272822","bg_window":"#1e1f1c","text_color":"#f8f8f2","link_color":"#66d9ef","text_dim":"#75715e","border_color":"#f92672","border_active":"#a6e22e","accent_color":"#fd971f","shadow_color":"#141411","accent_secondary":"#a6e22e","accent_tertiary":"#66d9ef","accent_quaternary":"#f92672","cube":"#f8f8f2","cube_hover":"#f92672","resume_job_role":"#fd971f","resume_job_company":"#66d9ef","resume_job_meta":"#75715e","resume_skill_bg":"#f92672","resume_skill_text":"#ffffff","resume_badge_bg":"#a6e22e","resume_badge_text":"#272822","filter_start_color":"#272822","filter_end_color":"#f8f8f2"}
41,"palette_colors":{"charcoal":"#272822","dark_charcoal":"#1e1f1c","off_white":"#f8f8f2","grey":"#75715e","cyan":"#66d9ef","pink":"#f92672","green":"#a6e22e","orange":"#fd971f","black":"#141411","white":"#ffffff"},"variables":{"bg_color":"charcoal","bg_window":"dark_charcoal","text_color":"off_white","link_color":"cyan","text_dim":"grey","border_color":"pink","border_active":"green","accent_color":"orange","shadow_color":"black","accent_secondary":"green","accent_tertiary":"cyan","accent_quaternary":"pink","cube":"off_white","cube_hover":"pink","resume_job_role":"orange","resume_job_company":"cyan","resume_job_meta":"grey","resume_skill_bg":"pink","resume_skill_text":"white","resume_badge_bg":"green","resume_badge_text":"charcoal","filter_start_color":"charcoal","filter_end_color":"off_white"}},{"id":"candy","name":"Candy","colors":{"bg_color":"#fdf0f8","bg_window":"#ffffff","text_color":"#4a2c58","link_color":"#d84b9b","text_dim":"#8c6899","border_color":"#e5a8d8","border_active":"#d84b9b","accent_color":"#b8388c","shadow_color":"#d6b2dc","accent_secondary":"#d84b9b","accent_tertiary":"#b8388c","accent_quaternary":"#e5a8d8","cube":"#4a2c58","cube_hover":"#d84b9b","resume_job_role":"#b8388c","resume_job_company":"#d84b9b","resume_job_meta":"#8c6899","resume_skill_bg":"#d84b9b","resume_skill_text":"#ffffff","resume_badge_bg":"#b8388c","resume_badge_text":"#ffffff","filter_start_color":"#4a2c58","filter_end_color":"#fdf0f8"},"palette_colors":{"blush_pink":"#fdf0f8","white":"#ffffff","plum":"#4a2c58","mauve":"#8c6899","hot_pink":"#d84b9b","pastel_pink":"#e5a8d8","magenta":"#b8388c","lavender":"#d6b2dc"},"variables":{"bg_color":"blush_pink","bg_window":"white","text_color":"plum","link_color":"hot_pink","text_dim":"mauve","border_color":"pastel_pink","border_active":"hot_pink","accent_color":"magenta","shadow_color":"lavender","accent_secondary":"hot_pink","accent_tertiary":"magenta","accent_quaternary":"pastel_pink","cube":"plum","cube_hover":"hot_pink","resume_job_role":"magenta","resume_job_company":"hot_pink","resume_job_meta":"mauve","resume_skill_bg":"hot_pink","resume_skill_text":"white","resume_badge_bg":"magenta","resume_badge_text":"white","filter_start_color":"plum","filter_end_color":"blush_pink"}},{"id":"pastel","name":"Pastel","colors":{"bg_color":"#f7f5ff","bg_window":"#ffffff","text_color":"#2d2738","link_color":"#ff6b8b","text_dim":"#786b8e","border_color":"#a288e3","border_active":"#ff6b8b","accent_color":"#9b5de5","
41shadow_color":"#d0c4e8","accent_secondary":"#ff6b8b","accent_tertiary":"#9b5de5","accent_quaternary":"#a288e3","cube":"#2d2738","cube_hover":"#a288e3","resume_job_role":"#9b5de5","resume_job_company":"#ff6b8b","resume_job_meta":"#786b8e","resume_skill_bg":"#9b5de5","resume_skill_text":"#ffffff","resume_badge_bg":"#ff6b8b","resume_badge_text":"#ffffff","filter_start_color":"#2d2738","filter_end_color":"#f7f5ff"},"palette_colors":{"lavender_white":"#f7f5ff","white":"#ffffff","dark_purple":"#2d2738","muted_purple":"#786b8e","pink":"#ff6b8b","pastel_purple":"#a288e3","bright_purple":"#9b5de5","light_purple":"#d0c4e8"},"variables":{"bg_color":"lavender_white","bg_window":"white","text_color":"dark_purple","link_color":"pink","text_dim":"muted_purple","border_color":"pastel_purple","border_active":"pink","accent_color":"bright_purple","shadow_color":"light_purple","accent_secondary":"pink","accent_tertiary":"bright_purple","accent_quaternary":"pastel_purple","cube":"dark_purple","cube_hover":"pastel_purple","resume_job_role":"bright_purple","resume_job_company":"pink","resume_job_meta":"muted_purple","resume_skill_bg":"bright_purple","resume_skill_text":"white","resume_badge_bg":"pink","resume_badge_text":"white","filter_start_color":"dark_purple","filter_end_color":"lavender_white"}},{"id":"fos","name":"FOS","colors":{"bg_color":"#0000aa","bg_window":"#0000aa","text_color":"#ffffff","link_color":"#55ffff","text_dim":"#aaaaaa","border_color":"#ffffff","border_active":"#55ffff","accent_color":"#ffffff","shadow_color":"#000000","accent_secondary":"#55ffff","accent_tertiary":"#ffff55","accent_quaternary":"#aaaaaa","cube":"#ffffff","cube_hover":"#55ffff","resume_job_role":"#ffffff","resume_job_company":"#55ffff","resume_job_meta":"#aaaaaa","resume_skill_bg":"#ffffff","resume_skill_text":"#0000aa","resume_badge_bg":"#ffff55","resume_badge_text":"#000000","filter_start_color":"#0000aa","filter_end_color":"#ffffff"},"palette_colors":{"dos_blue":"#0000aa","dark_blue":"#000055","white":"#ffffff","light_grey":"#aaaaaa","dark_grey":"#555555","cyan":"#55ffff","yellow":"#ffff55","black":"#000000"},"variables":{"bg_color":"dos_blue","bg_window":"dos_blue","text_color":"white","link_color":"cyan","text_dim":"light_grey","border_color":"white","border_active":"cyan","accent_color":"white","shadow_color":"black","accent_secondary":"cyan","accent_tertiary":"yellow","accent_quaternary":"light_grey","cube":"white","cube_hover":"cyan","resume_job_role":"white","resume_job_company":"cyan","resume_job_meta":"light_grey","resume_skill_bg":"white","resume_skill_text":"dos_blue","resume_badge_bg":"yellow","resume_badge_text":"black","filter_start_color":"dos_blue","filter_end_color":"white"}},{"id":"a64_pal","name":"A64 PAL","colors":{"bg_color":"#40318d","bg_window":"#40318d","text_color":"#7869c4","link_color":"#94e089","text_dim":"#787878","border_color":"#8b3f96","border_active":"#7869c4","accent_color":"#bfce72","shadow_color":"#000000","accent_secondary":"#94e089","accent_tertiary":"#67b6bd","accent_quaternary":"#8b3f96","cube":"#7869c4","cube_hover":"#bfce72","resume_job_role":"#bfce72","resume_job_company":"#94e089","resume_job_meta":"#787878","resume_skill_bg":"#8b3f96","resume_skill_text":"#ffffff","resume_badge_bg":"#bfce72","resume_badge_text":"#000000","filter_start_color":"#8b3f96","filter_end_color":"#ffffff"},"palette_colors":{"black":"#000000","white":"#ffffff","red":"#883932","cyan":"#67b6bd","purple":"#8b3f96","green":"#55a049","blue":"#40318d","yellow":"#bfce72","orange":"#8b5429","brown":"#574200","light_red":"#b86962","dark_grey":"#505050","grey":"#787878","light_green":"#94e089","light_blue":"#7869c4","light_grey":"#9f9f9f"},"variables":{"bg_color":"blue","bg_window":"blue","text_color":"light_blue","link_color":"light_green","text_dim":"grey","border_color":"purple","border_active":"light_blue","accent_color":"yellow","shadow_color":"black","accent_secondary":"light_green","accent_tertiary":"cyan","accent_quaternary":"purple","cube":"light_blue","cube_hover":"yellow","resume_job_role":"yellow","resume_job_company":"light_green","resume_job_meta":"grey","resume_skill_bg":"purple","resume_skill_text":"white","resume_badge_bg":"yellow","resume_badge_text":"black","filter_start_color":"purple","filter_end_color":"white"}},{"id":"a64_ntsc","name":"A64 NTSC","colors":{"bg_color":"#0000aa","bg_window":"#0000aa","text_color":"#0088ff","link_color":"#aaff66","text_dim":"#777777","border_color":"#cc44cc","border_active":"#0088ff","accent_color":"#eeee7
417","shadow_color":"#000000","accent_secondary":"#aaff66","accent_tertiary":"#aaffee","accent_quaternary":"#cc44cc","cube":"#0088ff","cube_hover":"#eeee77","resume_job_role":"#eeee77","resume_job_company":"#aaff66","resume_job_meta":"#777777","resume_skill_bg":"#cc44cc","resume_skill_text":"#ffffff","resume_badge_bg":"#eeee77","resume_badge_text":"#000000","filter_start_color":"#cc44cc","filter_end_color":"#ffffff"},"palette_colors":{"black":"#000000","white":"#ffffff","red":"#880000","cyan":"#aaffee","purple":"#cc44cc","green":"#00cc55","blue":"#0000aa","yellow":"#eeee77","orange":"#dd8855","brown":"#664400","light_red":"#ff7777","dark_grey":"#333333","grey":"#777777","light_green":"#aaff66","light_blue":"#0088ff","light_grey":"#bbbbbb"},"variables":{"bg_color":"blue","bg_window":"blue","text_color":"light_blue","link_color":"light_green","text_dim":"grey","border_color":"purple","border_active":"light_blue","accent_color":"yellow","shadow_color":"black","accent_secondary":"light_green","accent_tertiary":"cyan","accent_quaternary":"purple","cube":"light_blue","cube_hover":"yellow","resume_job_role":"yellow","resume_job_company":"light_green","resume_job_meta":"grey","resume_skill_bg":"purple","resume_skill_text":"white","resume_badge_bg":"yellow","resume_badge_text":"black","filter_start_color":"purple","filter_end_color":"white"}},{"id":"amigo","name":"Amigo","colors":{"bg_color":"#0055aa","bg_window":"#0055aa","text_color":"#ffffff","link_color":"#ff5500","text_dim":"#aaaaaa","border_color":"#ffffff","border_active":"#ff5500","accent_color":"#ff9900","shadow_color":"#000000","accent_secondary":"#ff9900","accent_tertiary":"#ff5500","accent_quaternary":"#aaaaaa","cube":"#ffffff","cube_hover":"#ff5500","resume_job_role":"#ff9900","resume_job_company":"#ff5500","resume_job_meta":"#aaaaaa","resume_skill_bg":"#ff5500","resume_skill_text":"#ffffff","resume_badge_bg":"#ff9900","resume_badge_text":"#000000","filter_start_color":"#0055aa","filter_end_color":"#ffffff"},"palette_colors":{"blue":"#0055aa","white":"#ffffff","light_grey":"#aaaaaa","orange":"#ff5500","amber":"#ff9900","black":"#000000"},"variables":{"bg_color":"blue","bg_window":"blue","text_color":"white","link_color":"orange","text_dim":"light_grey","border_color":"white","border_active":"orange","accent_color":"amber","shadow_color":"black","accent_secondary":"amber","accent_tertiary":"orange","accent_quaternary":"light_grey","cube":"white","cube_hover":"orange","resume_job_role":"amber","resume_job_company":"orange","resume_job_meta":"light_grey","resume_skill_bg":"orange","resume_skill_text":"white","resume_badge_bg":"amber","resume_badge_text":"black","filter_start_color":"blue","filter_end_color":"white"}},{"id":"trash80","name":"Trash80","colors":{"bg_color":"#0a0d0a","bg_window":"#121612","text_color":"#33ff33","link_color":"#66ff66","text_dim":"#1e881e","border_color":"#33ff33","border_active":"#66ff66","accent_color":"#33ff33","shadow_color":"#000000","accent_secondary":"#66ff66","accent_tertiary":"#99ff99","accent_quaternary":"#00cc00","cube":"#33ff33","cube_hover":"#66ff66","resume_job_role":"#33ff33","resume_job_company":"#66ff66","resume_job_meta":"#1e881e","resume_skill_bg":"#33ff33","resume_skill_text":"#000000","resume_badge_bg":"#66ff66","resume_badge_text":"#000000","filter_start_color":"#0a0d0a","filter_end_color":"#33ff33"},"palette_colors":{"dark_charcoal":"#0a0d0a","slate":"#121612","neon_green":"#33ff33","forest_green":"#1e881e","mint_green":"#66ff66","pastel_green":"#99ff99","green":"#00cc00","black":"#000000"},"variables":{"bg_color":"dark_charcoal","bg_window":"slate","text_color":"neon_green","link_color":"mint_green","text_dim":"forest_green","border_color":"neon_green","border_active":"mint_green","accent_color":"neon_green","shadow_color":"black","accent_secondary":"mint_green","accent_tertiary":"pastel_green","accent_quaternary":"green","cube":"neon_green","cube_hover":"mint_green","resume_job_role":"neon_green","resume_job_company":"mint_green","resume_job_meta":"forest_green","resume_skill_bg":"neon_green","resume_skill_text":"black","resume_badge_bg":"mint_green","resume_badge_text":"black","filter_start_color":"dark_charcoal","filter_end_color":"neon_green"}},{"id":"classic_green","name":"Nuke","colors":{"bg_color":"#0a0a0a","bg_window":"#121212","text_color":"#33ff33","link_color":"#66ff66","text_dim":"#1e881e","border_color":"#00cc00","border_active":"#66ff66","accent_color":"#33ff33","shadow_color":"#0a0a0a","accent_secondary":"#66ff66","accent_tertiary":"#33ff33","accent_quaternary":"#1e881e","cube":"#33ff33","cube_hover":"#66ff66","resume_job_role":"#33ff33","resume_job_company":"#66ff66","resume_job_meta":"#1e881e","resume_skill_bg":"#00cc00","resume_skill_text":"#0a0a0a","resume_badge_bg":"#33ff33","resume_badge_text":"#0a0a0a","filter_start_color":"#0a0a0a","filter_end_color":"#33ff33"},"palette_colors":{"black":"#0a0a0a","dark_charcoal":"#121212","neon_green":"#33ff33","forest_green":"#1e881e","bright_green":"#66ff66","emerald":"#00cc00"},"variables":{"bg_color":"black","bg_window":"dark_charcoal","text_color":"neon_green","link_color":"bright_green","text_dim":"forest_green","border_color":"emerald","border_active":"bright_green","accent_color":"neon_green","shadow_color":"black","accent_secondary":"bright_green","accent_tertiary":"neon_green","accent_quaternary":"forest_green","cube":"neon_green","cube_hover":"bright_green","resume_job_role":"neon_green","resume_job_company":"bright_green","resume_job_meta":"forest_green","resume_skill_bg":"emerald","resume_skill_text":"black","resume_badge_bg":"neon_green","resume_badge_text":"black","filter_start_color":"black","filter_end_color":"neon_green"}},{"id":"aperture","name":"Aperture","colors":{"bg_color":"#1f232a","bg_window":"#262a33","text_color":"#ffee55","link_color":"#ff9900","text_dim":"#c4a63a","border_color":"#ffcc00","border_active":"#ff9100","accent_color":"#ffcc00","shadow_color":"#101216","accent_secondary":"#ff9900","accent_tertiary":"#ffee55","accent_quaternary":"#ff6600","cube":"#ffee55","cube_hover":"#ff9900","resume_job_role":"#ffcc00","resume_job_company":"#ff9900","resume_job_meta":"#c4a63a","resume_skill_bg":"#ffcc00","resume_skill_text":"#1f232a","resume_badge_bg":"#ffee55","resume_badge_text":"#1f232a","filter_start_color":"#1f232a","filter_end_color":"#ffee55"},"palette_colors":{"dark_grey":"#1f232a","slate":"#262a33","yellow":"#ffee55","amber":"#c4a63a","orange":"#ff9900","gold":"#ffcc00","dark_orange":"#ff9100","bright_orange":"#ff6600","black":"#101216"},"variables":{"bg_color":"dark_grey","bg_window":"slate","text_color":"yellow","link_color":"orange","text_dim":"amber","border_color":"gold","border_active":"dark_orange","accent_color":"gold","shadow_color":"black","accent_secondary":"orange","accent_tertiary":"yellow","accent_quaternary":"bright_orange","cube":"yellow","cube_hover":"orange","resume_job_role":"gold","resume_job_company":"orange","resume_job_meta":"amber","resume_skill_bg":"gold","resume_skill_text":"dark_grey","resume_badge_bg":"yellow","resume_badge_text":"dark_grey","filter_start_color":"dark_grey","filter_end_color":"yellow"}},{"id":"smile_os","name":"SmileOS","colors":{"bg_color":"#e6e6ea","bg_window":"#c0c0c0","text_color":"#000000","link_color":"#b30000","text_dim":"#444444","border_color":"#8b0000","border_active":"#c00000","accent_color":"#b30000","
41shadow_color":"#a0a0a8","accent_secondary":"#c00000","accent_tertiary":"#8b0000","accent_quaternary":"#b30000","cube":"#000000","cube_hover":"#b30000","resume_job_role":"#b30000","resume_job_company":"#8b0000","resume_job_meta":"#444444","resume_skill_bg":"#b30000","resume_skill_text":"#ffffff","resume_badge_bg":"#8b0000","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#e6e6ea"},"palette_colors":{"light_grey":"#e6e6ea","grey":"#c0c0c0","black":"#000000","dark_grey":"#444444","red":"#b30000","dark_red":"#8b0000","crimson":"#c00000","slate":"#a0a0a8","white":"#ffffff"},"variables":{"bg_color":"light_grey","bg_window":"grey","text_color":"black","link_color":"red","text_dim":"dark_grey","border_color":"dark_red","border_active":"crimson","accent_color":"red","shadow_color":"slate","accent_secondary":"crimson","accent_tertiary":"dark_red","accent_quaternary":"red","cube":"black","cube_hover":"red","resume_job_role":"red","resume_job_company":"dark_red","resume_job_meta":"dark_grey","resume_skill_bg":"red","resume_skill_text":"white","resume_badge_bg":"dark_red","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"former_rain","name":"The Former Rain","colors":{"bg_color":"#1b1726","bg_window":"#261e34","text_color":"#e8ddf5","link_color":"#c77dff","text_dim":"#8a7b9c","border_color":"#a076c5","border_active":"#c77dff","accent_color":"#d896ff","shadow_color":"#100c19","accent_secondary":"#c77dff","accent_tertiary":"#d896ff","accent_quaternary":"#a076c5","cube":"#e8ddf5","cube_hover":"#c77dff","resume_job_role":"#d896ff","resume_job_company":"#c77dff","resume_job_meta":"#8a7b9c","resume_skill_bg":"#c77dff","resume_skill_text":"#1b1726","resume_badge_bg":"#d896ff","resume_badge_text":"#1b1726","filter_start_color":"#1b1726","filter_end_color":"#e8ddf5"},"palette_colors":{"dark_purple":"#1b1726","deep_purple":"#261e34","lavender":"#e8ddf5","muted_purple":"#8a7b9c","bright_violet":"#c77dff","violet":"#a076c5","light_violet":"#d896ff","black":"#100c19"},"variables":{"bg_color":"dark_purple","bg_window":"deep_purple","text_color":"lavender","link_color":"bright_violet","text_dim":"muted_purple","border_color":"violet","border_active":"bright_violet","accent_color":"light_violet","shadow_color":"black","accent_secondary":"bright_violet","accent_tertiary":"light_violet","accent_quaternary":"violet","cube":"lavender","cube_hover":"bright_violet","resume_job_role":"light_violet","resume_job_company":"bright_violet","resume_job_meta":"muted_purple","resume_skill_bg":"bright_violet","resume_skill_text":"dark_purple","resume_badge_bg":"light_violet","resume_badge_text":"dark_purple","filter_start_color":"dark_purple","filter_end_color":"lavender"}},{"id":"ranger","name":"Ranger","colors":{"bg_color":"#1f1914","bg_window":"#2c241d","text_color":"#d4c39e","link_color":"#e06d20","text_dim":"#8c7355","border_color":"#8c603b","border_active":"#e57c25","accent_color":"#e57c25","shadow_color":"#120e0b","accent_secondary":"#e06d20","accent_tertiary":"#e57c25","accent_quaternary":"#8c603b","cube":"#d4c39e","cube_hover":"#e57c25","resume_job_role":"#e57c25","resume_job_company":"#e06d20","resume_job_meta":"#8c7355","resume_skill_bg":"#e57c25","resume_skill_text":"#faf4e1","resume_badge_bg":"#8c603b","resume_badge_text":"#faf4e1","filter_start_color":"#1f1914","filter_end_color":"#d4c39e"},"palette_colors":{"dark_brown":"#1f1914","espresso":"#2c241d","sand":"#d4c39e","tan":"#8c7355","burnt_orange":"#e06d20","brown":"#8c603b","orange":"#e57c25","black":"#120e0b","cream":"#faf4e1"},"variables":{"bg_color":"dark_brown","bg_window":"espresso","text_color":"sand","link_color":"burnt_orange","text_dim":"tan","border_color":"brown","border_active":"orange","accent_color":"orange","shadow_color":"black","accent_secondary":"burnt_orange","accent_tertiary":"orange","accent_quaternary":"brown","cube":"sand","cube_hover":"orange","resume_job_role":"orange","resume_job_company":"burnt_orange","resume_job_meta":"tan","resume_skill_bg":"orange","resume_skill_text":"cream","resume_badge_bg":"brown","resume_badge_text":"cream","filter_start_color":"dark_brown","filter_end_color":"sand"}},{"id":"bring_me_hope","name":"Bluebie","colors":{"bg_color":"#002b55","bg_window":"#003a70","text_color":"#00c8ff","link_color":"#66e0ff","text_dim":"#3a7ca5","border_color":"#00a8e8","border_active":"#00e5ff","accent_color":"#00e5ff","shadow_color":"#00152b","accent_secondary":"#66e0ff","accent_tertiary":"#00e5ff","accent_quaternary":"#00a8e8","cube":"#00c8ff","cube_hover":"#00e5ff","resume_job_role":"#00e5ff","resume_job_company":"#00c8ff","resume_job_meta":"#3a7ca5","resume_skill_bg":"#00a8e8","resume_skill_text":"#002b55","resume_badge_bg":"#00e5ff","resume_badge_text":"#002b55","filter_start_color":"#002b55","filter_end_color":"#00c8ff"},"palette_colors":{"navy":"#002b55","deep_blue":"#003a70","cyan":"#00c8ff","steel_blue":"#3a7ca5","light_blue":"#66e0ff","blue":"#00a8e8","bright_cyan":"#00e5ff","dark_navy":"#001
4152b"},"variables":{"bg_color":"navy","bg_window":"deep_blue","text_color":"cyan","link_color":"light_blue","text_dim":"steel_blue","border_color":"blue","border_active":"bright_cyan","accent_color":"bright_cyan","shadow_color":"dark_navy","accent_secondary":"light_blue","accent_tertiary":"bright_cyan","accent_quaternary":"blue","cube":"cyan","cube_hover":"bright_cyan","resume_job_role":"bright_cyan","resume_job_company":"cyan","resume_job_meta":"steel_blue","resume_skill_bg":"blue","resume_skill_text":"navy","resume_badge_bg":"bright_cyan","resume_badge_text":"navy","filter_start_color":"navy","filter_end_color":"cyan"}},{"id":"disinherited","name":"Samuel","colors":{"bg_color":"#16120e","bg_window":"#281f18","text_color":"#faf4e1","link_color":"#f2a81d","text_dim":"#857458","border_color":"#d48815","border_active":"#c01111","accent_color":"#f2a81d","shadow_color":"#0c0906","accent_secondary":"#f2a81d","accent_tertiary":"#d48815","accent_quaternary":"#857458","cube":"#faf4e1","cube_hover":"#f2a81d","resume_job_role":"#f2a81d","resume_job_company":"#d48815","resume_job_meta":"#857458","resume_skill_bg":"#f2a81d","resume_skill_text":"#16120e","resume_badge_bg":"#c01111","resume_badge_text":"#ffffff","filter_start_color":"#16120e","filter_end_color":"#faf4e1"},"palette_colors":{"dark_brown":"#16120e","espresso":"#281f18","cream":"#faf4e1","sand":"#857458","amber":"#f2a81d","crimson":"#c01111","burnt_amber":"#d48815","black":"#0c0906","white":"#ffffff"},"variables":{"bg_color":"dark_brown","bg_window":"espresso","text_color":"cream","link_color":"amber","text_dim":"sand","border_color":"burnt_amber","border_active":"crimson","accent_color":"amber","shadow_color":"black","accent_secondary":"amber","accent_tertiary":"burnt_amber","accent_quaternary":"sand","cube":"cream","cube_hover":"amber","resume_job_role":"amber","resume_job_company":"burnt_amber","resume_job_meta":"sand","resume_skill_bg":"amber","resume_skill_text":"dark_brown","resume_badge_bg":"crimson","resume_badge_text":"white","filter_start_color":"dark_brown","filter_end_color":"cream"}},{"id":"game_station","name":"GameStation","colors":{"bg_color":"#d2d2d6","bg_window":"#e8e8ec","text_color":"#141418","link_color":"#0063be","text_dim":"#585860","border_color":"#df0024","border_active":"#00a88f","accent_color":"#c88e00","shadow_color":"#a0a0a8","accent_secondary":"#0063be","accent_tertiary":"#00a88f","accent_quaternary":"#df0024","cube":"#141418","cube_hover":"#df0024","resume_job_role":"#c88e00","resume_job_company":"#0063be","resume_job_meta":"#585860","resume_skill_bg":"#0063be","resume_skill_text":"#ffffff","resume_badge_bg":"#df0024","resume_badge_text":"#ffffff","filter_start_color":"#141418","filter_end_color":"#d2d2d6"},"palette_colors":{"light_grey":"#d2d2d6","grey_white":"#e8e8ec","black":"#141418","dark_grey":"#585860","blue":"#0063be","red":"#df0024","teal":"#00a88f","gold":"#c88e00","slate":"#a0a0a8","white":"#ffffff"},"variables":{"bg_color":"light_grey","bg_window":"grey_white","text_color":"black","link_color":"blue","text_dim":"dark_grey","border_color":"red","border_active":"teal","accent_color":"gold","shadow_color":"slate","accent_secondary":"blue","accent_tertiary":"teal","accent_quaternary":"red","cube":"black","cube_hover":"red","resume_job_role":"gold","resume_job_company":"blue","resume_job_meta":"dark_grey","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"red","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"game_station_2","name":"GameStation2","colors":{"bg_color":"#090a10","bg_window":"#121520","text_color":"#e0e6f0","link_color":"#0088ff","text_dim":"#4a5870","border_color":"#00439c","border_active":"#00a2e8","accent_color":"#0072ce","shadow_color":"#040508","accent_secondary":"#0088ff","accent_tertiary":"#00a2e8","accent_quaternary":"#00439c","cube":"#e0e6f0","cube_hover":"#0088ff","resume_job_role":"#0072ce","resume_job_company":"#0088ff","resume_job_meta":"#4a5870","resume_skill_bg":"#0088ff","resume_skill_text":"#ffffff","resume_badge_bg":"#0072ce","resume_badge_text":"#ffffff","filter_start_color":"#090a10","filter_end_color":"#e0e6f0"},"palette_colors":{"black":"#090a10","dark_navy":"#121520","ice_blue":"#e0e6f0","slate_blue":"#4a5870","bright_blue":"#0088ff","navy":"#00439c","cyan_blue":"#00a2e8","royal_blue":"#0072ce","dark_black":"#040508","white":"#ffffff"},"variables":{"bg_color":"black","bg_window":"dark_navy","text_color":"ice_blue","link_color":"bright_blue","text_dim":"slate_blue","border_color":"navy","border_active":"cyan_blue","accent_color":"royal_blue","shadow_color":"dark_black","accent_secondary":"bright_blue","accent_tertiary":"
41cyan_blue","accent_quaternary":"navy","cube":"ice_blue","cube_hover":"bright_blue","resume_job_role":"royal_blue","resume_job_company":"bright_blue","resume_job_meta":"slate_blue","resume_skill_bg":"bright_blue","resume_skill_text":"white","resume_badge_bg":"royal_blue","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"ice_blue"}},{"id":"digital_guy","name":"DigitalGuy","colors":{"bg_color":"#000000","bg_window":"#110000","text_color":"#ff0000","link_color":"#ff3333","text_dim":"#880000","border_color":"#ff0000","border_active":"#ff5555","accent_color":"#ff0000","shadow_color":"#330000","accent_secondary":"#ff3333","accent_tertiary":"#ff5555","accent_quaternary":"#880000","cube":"#ff0000","cube_hover":"#ff5555","resume_job_role":"#ff0000","resume_job_company":"#ff3333","resume_job_meta":"#880000","resume_skill_bg":"#ff0000","resume_skill_text":"#ffffff","resume_badge_bg":"#ff5555","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#ff0000"},"palette_colors":{"black":"#000000","dark_red":"#110000","red":"#ff0000","maroon":"#880000","light_red":"#ff3333","bright_red":"#ff5555","deep_red":"#330000","white":"#ffffff"},"variables":{"bg_color":"black","bg_window":"dark_red","text_color":"red","link_color":"light_red","text_dim":"maroon","border_color":"red","border_active":"bright_red","accent_color":"red","shadow_color":"deep_red","accent_secondary":"light_red","accent_tertiary":"bright_red","accent_quaternary":"maroon","cube":"red","cube_hover":"bright_red","resume_job_role":"red","resume_job_company":"light_red","resume_job_meta":"maroon","resume_skill_bg":"red","resume_skill_text":"white","resume_badge_bg":"bright_red","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"red"}},{"id":"playtoy","name":"PlayToy","colors":{"bg_color":"#8bac0f","bg_window":"#9bbc0f","text_color":"#0f380f","link_color":"#0f380f","text_dim":"#1b3f1b","border_color":"#0f380f","border_active":"#306230","accent_color":"#0f380f","shadow_color":"#0f380f","accent_secondary":"#1b3f1b","accent_tertiary":"#306230","accent_quaternary":"#0f380f","cube":"#0f380f","cube_hover":"#306230","resume_job_role":"#0f380f","resume_job_company":"#0f380f","resume_job_meta":"#1b3f1b","resume_skill_bg":"#0f380f","resume_skill_text":"#9bbc0f","resume_badge_bg":"#306230","resume_badge_text":"#9bbc0f","filter_start_color":"#0f380f","filter_end_color":"#8bac0f"},"palette_colors":{"olive":"#8bac0f","light_olive":"#9bbc0f","dark_green":"#0f380f","forest_green":"#1b3f1b","green":"#306230"},"variables":{"bg_color":"olive","bg_window":"light_olive","text_color":"dark_green","link_color":"dark_green","text_dim":"forest_green","border_color":"dark_green","border_active":"green","accent_color":"dark_green","shadow_color":"dark_green","accent_secondary":"forest_green","accent_tertiary":"green","accent_quaternary":"dark_green","cube":"dark_green","cube_hover":"green","resume_job_role":"dark_green","resume_job_company":"dark_green","resume_job_meta":"forest_green","resume_skill_bg":"dark_green","resume_skill_text":"light_olive","resume_badge_bg":"green","resume_badge_text":"light_olive","filter_start_color":"dark_green","filter_end_color":"olive"}},{"id":"entertainment_system","name":"Entertainment System","colors":{"bg_color":"#e8e8ec","bg_window":"#d8d8dc","text_color":"#101012","link_color":"#c80018","text_dim":"#505055","border_color":"#202024","border_active":"#c80018","accent_color":"#c80018","shadow_color":"#a0a0a8","accent_secondary":"#c80018","accent_tertiary":"#202024","accent_quaternary":"#a0a0a8","cube":"#101012","cube_hover":"#c80018","resume_job_role":"#c80018","resume_job_company":"#c80018","resume_job_meta":"#505055","resume_skill_bg":"#c80018","resume_skill_text":"#ffffff","resume_badge_bg":"#202024","resume_badge_text":"#ffffff","filter_start_color":"#101012","filter_end_color":"#e8e8ec"},"palette_colors":{"light_grey":"#e8e8ec","grey":"#d8d8dc","black":"#101012","dark_grey":"#505055","crimson":"#c80018","charcoal":"#202024","slate":"#a0a0a8","white":"#ffffff"},"variables":{"bg_color":"light_grey","bg_window":"grey","text_color":"black","link_color":"crimson","text_dim":"dark_grey","border_color":"charcoal","border_active":"crimson","accent_color":"crimson","shadow_color":"slate","accent_secondary":"crimson","accent_tertiary":"
41charcoal","accent_quaternary":"slate","cube":"black","cube_hover":"crimson","resume_job_role":"crimson","resume_job_company":"crimson","resume_job_meta":"dark_grey","resume_skill_bg":"crimson","resume_skill_text":"white","resume_badge_bg":"charcoal","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"super_es","name":"Super ES","colors":{"bg_color":"#f0f0f5","bg_window":"#e2e2ea","text_color":"#1b1924","link_color":"#5c439b","text_dim":"#605c70","border_color":"#4f3880","border_active":"#785dba","accent_color":"#4f3880","shadow_color":"#b0b0c0","accent_secondary":"#785dba","accent_tertiary":"#5c439b","accent_quaternary":"#605c70","cube":"#4f3880","cube_hover":"#5c439b","resume_job_role":"#4f3880","resume_job_company":"#785dba","resume_job_meta":"#605c70","resume_skill_bg":"#785dba","resume_skill_text":"#ffffff","resume_badge_bg":"#4f3880","resume_badge_text":"#ffffff","filter_start_color":"#1b1924","filter_end_color":"#f0f0f5"},"palette_colors":{"light_slate":"#f0f0f5","slate":"#e2e2ea","dark_charcoal":"#1b1924","muted_purple":"#605c70","purple":"#5c439b","deep_purple":"#4f3880","bright_purple":"#785dba","grey":"#b0b0c0","white":"#ffffff"},"variables":{"bg_color":"light_slate","bg_window":"slate","text_color":"dark_charcoal","link_color":"purple","text_dim":"muted_purple","border_color":"deep_purple","border_active":"bright_purple","accent_color":"deep_purple","shadow_color":"grey","accent_secondary":"bright_purple","accent_tertiary":"purple","accent_quaternary":"muted_purple","cube":"deep_purple","cube_hover":"purple","resume_job_role":"deep_purple","resume_job_company":"bright_purple","resume_job_meta":"muted_purple","resume_skill_bg":"bright_purple","resume_skill_text":"white","resume_badge_bg":"deep_purple","resume_badge_text":"white","filter_start_color":"dark_charcoal","filter_end_color":"light_slate"}},{"id":"m64","name":"M64","colors":{"bg_color":"#232328","bg_window":"#32323a","text_color":"#d0d0d8","link_color":"#1e68d8","text_dim":"#80808a","border_color":"#1e68d8","border_active":"#f0c018","accent_color":"#f0c018","shadow_color":"#121215","accent_secondary":"#24ac4c","accent_tertiary":"#e62828","accent_quaternary":"#f0c018","cube":"#f0c018","cube_hover":"#e62828","resume_job_role":"#f0c018","resume_job_company":"#24ac4c","resume_job_meta":"#e62828","resume_skill_bg":"#1e68d8","resume_skill_text":"#d0d0d8","resume_badge_bg":"#e62828","resume_badge_text":"#d0d0d8","filter_start_color":"#121215","filter_end_color":"#e62828"},"palette_colors":{"dark_grey":"#232328","slate":"#32323a","light_grey":"#d0d0d8","dpad_grey":"#80808a","start_red":"#e62828","a_blue":"#1e68d8","b_green":"#24ac4c","c_yellow":"#f0c018","black":"#121215"},"variables":{"bg_color":"dark_grey","bg_window":"slate","text_color":"light_grey","link_color":"a_blue","text_dim":"dpad_grey","border_color":"a_blue","border_active":"c_yellow","accent_color":"c_yellow","shadow_color":"black","accent_secondary":"b_green","accent_tertiary":"start_red","accent_quaternary":"c_yellow","cube":"c_yellow","cube_hover":"start_red","resume_job_role":"c_yellow","resume_job_company":"b_green","resume_job_meta":"start_red","resume_skill_bg":"a_blue","resume_skill_text":"light_grey","resume_badge_bg":"start_red","resume_badge_text":"light_grey","filter_start_color":"black","filter_end_color":"start_red"}},{"id":"playbox","name":"Playbox","colors":{"bg_color":"#2d224b","bg_window":"#563f91","text_color":"#ffffff","link_color":"#22c55e","text_dim":"#b0a4d0","border_color":"#8b75c8","border_active":"#22c55e","accent_color":"#ef4444","shadow_color":"#19122c","accent_secondary":"#22c55e","accent_tertiary":"#ef4444","accent_quaternary":"#8b75c8","cube":"#ffffff","cube_hover":"#22c55e","resume_job_role":"#ef4444","resume_job_company":"#22c55e","resume_job_meta":"#b0a4d0","resume_skill_bg":"#22c55e","resume_skill_text":"#2d224b","resume_badge_bg":"#ef4444","resume_badge_text":"#ffffff","filter_start_color":"#2d224b","filter_end_color":"#ffffff"},"palette_colors":{"dark_purple":"#2d224b","purple":"#563f91","white":"#ffffff","light_violet":"#b0a4d0","green":"#22c55e","violet":"#8b75c8","red":"#ef4444","deep_purple":"#19122c"},"variables":{"bg_color":"dark_purple","bg_window":"purple","text_color":"white","link_color":"green","text_dim":"light_violet","border_color":"violet","border_active":"green","accent_color":"red","shadow_color":"deep_purple","accent_secondary":"green","accent_tertiary":"red","accent_quaternary":"violet","cube":"white","cube_hover":"green","resume_job_role":"red","resume_job_company":"green","resume_job_meta":"light_violet","resume_skill_bg":"green","resume_skill_text":"dark_purple","resume_badge_bg":"red","resume_badge_text":"white","filter_start_color":"dark_purple","filter_end_color":"white"}},{"id":"oui","name":"Oui","colors":{"bg_color":"#e8ecef","bg_window":"#ffffff","text_color":"#2c3238","link_color":"#00a3e0","text_dim":"#788490","border_color":"#0095d0","border_active":"#00c3ff","accent_color":"#0095d0","shadow_color":"#c8d0d8","accent_secondary":"#00a3e0","accent_tertiary":"#00c3ff","accent_quaternary":"#788490","cube":"#2c3238","cube_hover":"#00a3e0","resume_job_role":"#0095d0","resume_job_company":"#00a3e0","resume_job_meta":"#788490","resume_skill_bg":"#00a3e0","resume_skill_text":"#ffffff","resume_badge_bg":"#0095d0","resume_badge_text":"#ffffff","filter_start_color":"#2c3238","filter_end_color":"#e8ecef"},"palette_colors":{"light_blue":"#e8ecef","white":"#ffffff","charcoal":"#2c3238","slate":"#788490","cyan":"#00a3e0","bright_cyan":"#00c3ff","blue":"#0095d0","grey":"#c8d0d8"},"variables":{"bg_color":"light_blue","bg_window":"white","text_color":"charcoal","link_color":"cyan","text_dim":"slate","border_color":"blue","border_active":"bright_cyan","accent_color":"blue","shadow_color":"grey","accent_secondary":"cyan","accent_tertiary":"bright_cyan","accent_quaternary":"slate","cube":"charcoal","cube_hover":"cyan","resume_job_role":"blue","resume_job_company":"cyan","resume_job_meta":"slate","resume_skill_bg":"cyan","resume_skill_text":"white","resume_badge_bg":"blue","resume_badge_text":"white","filter_start_color":"charcoal","filter_end_color":"light_blue"}},{"id":"cross_cube","name":"CrossCube","colors":{"bg_color":"#121412","bg_window":"#1a1d1a","text_color":"#e2ece2","link_color":"#107c41","text_dim":"#556855","border_color":"#107c41","border_active":"#00ff2b","accent_color":"#52b736","shadow_color":"#080a08","accent_secondary":"#00ff2b","accent_tertiary":"#52b736","accent_quaternary":"#107c41","cube":"#e2ece2","cube_hover":"#00ff2b","resume_job_role":"#52b736","resume_job_company":"#107c41","resume_job_meta":"#556855","resume_skill_bg":"#107c41","resume_skill_text":"#ffffff","resume_badge_bg":"#52b736","resume_badge_text":"#121412","filter_start_color":"#121412","filter_end_color":"#e2ece2"},"palette_colors":{"black":"#121412","dark_green":"#1a1d1a","light_green":"#e2ece2","forest_green":"#556855","green":"#107c41","neon_green":"#00ff2b","lime":"#52b736","deep_black":"#080a08","white":"#ffffff"},"variables":{"bg_color":"black","bg_window":"dark_green","text_color":"light_green","link_color":"green","text_dim":"forest_green","border_color":"green","border_active":"neon_green","accent_color":"lime","shadow_color":"deep_black","accent_secondary":"neon_green","accent_tertiary":"lime","accent_quaternary":"green","cube":"light_green","cube_hover":"neon_green","resume_job_role":"lime","resume_job_company":"green","resume_job_meta":"forest_green","resume_skill_bg":"green","resume_skill_text":"white","resume_badge_bg":"lime","resume_badge_text":"black","filter_start_color":"black","filter_end_color":"light_green"}}
41,{"id":"cross_cube_360","name":"CrossCube 360","colors":{"bg_color":"#e4e8ec","bg_window":"#ffffff","text_color":"#1e242b","link_color":"#107c41","text_dim":"#606d7a","border_color":"#107c41","border_active":"#7fba00","accent_color":"#7fba00","shadow_color":"#b8c0c8","accent_secondary":"#107c41","accent_tertiary":"#7fba00","accent_quaternary":"#606d7a","cube":"#1e242b","cube_hover":"#107c41","resume_job_role":"#7fba00","resume_job_company":"#107c41","resume_job_meta":"#606d7a","resume_skill_bg":"#107c41","resume_skill_text":"#ffffff","resume_badge_bg":"#7fba00","resume_badge_text":"#1e242b","filter_start_color":"#1e242b","filter_end_color":"#e4e8ec"},"palette_colors":{"light_grey":"#e4e8ec","white":"#ffffff","dark_slate":"#1e242b","slate":"#606d7a","green":"#107c41","lime":"#7fba00","grey":"#b8c0c8"},"variables":{"bg_color":"light_grey","bg_window":"white","text_color":"dark_slate","link_color":"green","text_dim":"slate","border_color":"green","border_active":"lime","accent_color":"lime","shadow_color":"grey","accent_secondary":"green","accent_tertiary":"lime","accent_quaternary":"slate","cube":"dark_slate","cube_hover":"green","resume_job_role":"lime","resume_job_company":"green","resume_job_meta":"slate","resume_skill_bg":"green","resume_skill_text":"white","resume_badge_bg":"lime","resume_badge_text":"dark_slate","filter_start_color":"dark_slate","filter_end_color":"light_grey"}},{"id":"creation","name":"Creation","colors":{"bg_color":"#141518","bg_window":"#1e2024","text_color":"#e8e8ed","link_color":"#d81b24","text_dim":"#7a7e85","border_color":"#c81018","border_active":"#e6222b","accent_color":"#d4af37","shadow_color":"#0a0b0d","accent_secondary":"#d81b24","accent_tertiary":"#e6222b","accent_quaternary":"#c81018","cube":"#e8e8ed","cube_hover":"#e6222b","resume_job_role":"#d4af37","resume_job_company":"#d81b24","resume_job_meta":"#7a7e85","resume_skill_bg":"#c81018","resume_skill_text":"#ffffff","resume_badge_bg":"#d4af37","resume_badge_text":"#141518","filter_start_color":"#141518","filter_end_color":"#e8e8ed"},"palette_colors":{"black":"#141518","dark_charcoal":"#1e2024","off_white":"#e8e8ed","grey":"#7a7e85","red":"#d81b24","dark_red":"#c81018","bright_red":"#e6222b","gold":"#d4af37","deep_black":"#0a0b0d","white":"#ffffff"},"variables":{"bg_color":"black","bg_window":"dark_charcoal","text_color":"off_white","link_color":"red","text_dim":"grey","border_color":"dark_red","border_active":"bright_red","accent_color":"gold","shadow_color":"deep_black","accent_secondary":"red","accent_tertiary":"bright_red","accent_quaternary":"dark_red","cube":"off_white","cube_hover":"bright_red","resume_job_role":"gold","resume_job_company":"red","resume_job_meta":"grey","resume_skill_bg":"dark_red","resume_skill_text":"white","resume_badge_bg":"gold","resume_badge_text":"black","filter_start_color":"black","filter_end_color":"off_white"}},{"id":"game_sprocket","name":"GameSprocket","colors":{"bg_color":"#1c1e22","bg_window":"#262930","text_color":"#f4f6fa","link_color":"#0088ff","text_dim":"#767e8c","border_color":"#e6001a","border_active":"#00c878","accent_color":"#0088ff","shadow_color":"#0a0c0e","accent_secondary":"#00c878","accent_tertiary":"#0088ff","accent_quaternary":"#e6001a","cube":"#f4f6fa","cube_hover":"#00c878","resume_job_role":"#00c878","resume_job_company":"#0088ff","resume_job_meta":"#767e8c","resume_skill_bg":"#e6001a","resume_skill_text":"#ffffff","resume_badge_bg":"#00c878","resume_badge_text":"#0a0c0e","filter_start_color":"#1c1e22","filter_end_color":"#f4f6fa"},"palette_colors":{"dark_charcoal":"#1c1e22","charcoal":"#262930","off_white":"#f4f6fa","grey":"#767e8c","blue":"#0088ff","red":"#e6001a","emerald":"#00c878","black":"#0a0c0e","white":"#ffffff"},"variables":{"bg_color":"dark_charcoal","bg_window":"charcoal","text_color":"off_white","link_color":"blue","text_dim":"grey","border_color":"red","border_active":"emerald","accent_color":"blue","shadow_color":"black","accent_secondary":"emerald","accent_tertiary":"blue","accent_quaternary":"red","cube":"off_white","cube_hover":"emerald","resume_job_role":"emerald","resume_job_company":"blue","resume_job_meta":"grey","resume_skill_bg":"red","resume_skill_text":"white","resume_badge_bg":"emerald","resume_badge_text":"black","filter_start_color":"dark_charcoal","filter_end_color":"off_white"}},{"id":"spaces_31","name":"Spaces 3.1","colors":{"bg_color":"#ffffff","bg_window":"#c0c0c0","text_color":"#000000","link_color":"#000080","text_dim":"#404040","border_color":"#000080","border_active":"#008080","accent_color":"#000080","shadow_color":"#004040","accent_secondary":"#008080","accent_tertiary":"#004080","accent_quaternary":"#000080","cube":"#000000","cube_hover":"#004080","resume_job_role":"#000080","resume_job_company":"#004080","resume_job_meta":"#404040","resume_skill_bg":"#000080","resume_skill_text":"#ffffff","resume_badge_bg":"#008080","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#ffffff"},"palette_colors":{"white":"#ffffff","grey":"#c0c0c0","black":"#000000","dark_grey":"#404040","navy":"#000080","teal":"#008080","blue":"#004080","dark_teal":"#004040"},"variables":{"bg_color":"white","bg_window":"grey","text_color":"black","link_color":"navy","text_dim":"dark_grey","border_color":"navy","border_active":"teal","accent_color":"navy","shadow_color":"dark_teal","accent_secondary":"teal","accent_tertiary":"blue","accent_quaternary":"navy","cube":"black","cube_hover":"blue","resume_job_role":"navy","resume_job_company":"blue","resume_job_meta":"dark_grey","resume_skill_bg":"navy","resume_skill_text":"white","resume_badge_bg":"teal","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"white"}},{"id":"spaces_95","name":"Spaces 95","colors":{"bg_color":"#f0f4f4","bg_window":"#c0c0c0","text_color":"#000000","link_color":"#000080","text_dim":"#333333","border_color":"#000080","border_active":"#104e8b","accent_color":"#000080","shadow_color":"#004040","accent_secondary":"#104e8b","accent_tertiary":"#008080","accent_quaternary":"#000080","cube":"#000000","cube_hover":"#000080","resume_job_role":"#000080","resume_job_company":"#104e8b","resume_job_meta":"#333333","resume_skill_bg":"#000080","resume_skill_text":"#ffffff","resume_badge_bg":"#008080","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#f0f4f4"},"palette_colors":{"light_grey":"#f0f4f4","grey":"#c0c0c0","black":"#000000","dark_grey":"#333333","navy":"#000080","blue":"#104e8b","teal":"#008080","dark_teal":"#004040","white":"#ffffff"},"variables":{"bg_color":"light_grey","bg_window":"grey","text_color":"black","link_color":"navy","text_dim":"dark_grey","border_color":"navy","border_active":"blue","accent_color":"navy","shadow_color":"dark_teal","accent_secondary":"blue","accent_tertiary":"teal","accent_quaternary":"navy","cube":"black","cube_hover":"navy","resume_job_role":"navy","resume_job_company":"blue","resume_job_meta":"dark_grey","resume_skill_bg":"navy","resume_skill_text":"white","resume_badge_bg":"teal","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"spaces_97","name":"Spaces 97","colors":{"bg_color":"#f0f4f8","bg_window":"#d4d0c8","text_color":"#000000","link_color":"#000080","text_dim":"#333333","border_color":"#2b579a","border_active":"#1084d0","accent_color":"#000080","shadow_color":"#1a385c","accent_secondary":"#1084d0","accent_tertiary":"#2b579a","accent_quaternary":"#000080","cube":"#000000","cube_hover":"#000080","resume_job_role":"#000080","resume_job_company":"#2b579a","resume_job_meta":"#333333","resume_skill_bg":"#2b579a","resume_skill_text":"#ffffff","resume_badge_bg":"#1084d0","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#f0f4f8"},"palette_colors":{"light_blue":"#f0f4f8","grey":"#d4d0c8","black":"#000000","dark_grey":"#333333","navy":"#000080","blue":"#1084d0","steel_blue":"#2b579a","dark_navy":"#1a385c","white":"#ffffff"},"variables":{"bg_color":"light_blue","bg_window":"grey","text_color":"black","link_color":"navy","text_dim":"dark_grey","border_color":"steel_blue","border_active":"blue","accent_color":"navy","shadow_color":"dark_navy","accent_secondary":"blue","accent_tertiary":"steel_blue","accent_quaternary":"navy","cube":"black","cube_hover":"navy","resume_job_role":"navy","resume_job_company":"steel_blue","resume_job_meta":"dark_grey","resume_skill_bg":"steel_blue","resume_skill_text":"white","resume_badge_bg":"blue","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_blue"}},{"id":"spaces_98","name":"Spaces 98","colors":{"bg_color":"#f0f4f4","bg_window":"#c0c0c0","text_color":"#000000","link_color":"#000080","text_dim":"#444444","border_color":"#000080","border_active":"#10549c","accent_color":"#000080","shadow_color":"#004040","accent_secondary":"#10549c","accent_tertiary":"#008080","accent_quaternary":"#000080","cube":"#000000","cube_hover":"#10549c","resume_job_role":"#000080","resume_job_company":"#10549c","resume_job_meta":"#444444","resume_skill_bg":"#000080","resume_skill_text":"#ffffff","resume_badge_bg":"#008080","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#f0f4f4"},"palette_colors":{"light_grey":"#f0f4f4","grey":"#c0c0c0","black":"#000000","dark_grey":"#444444","navy":"#000080","blue":"#10549c","teal":"#008080","dark_teal":"#004040","white":"#ffffff"},"variables":{"bg_color":"light_grey","bg_window":"grey","text_color":"black","link_color":"navy","text_dim":"dark_grey","border_color":"navy","border_active":"blue","accent_color":"navy","shadow_color":"dark_teal","accent_secondary":"blue","accent_tertiary":"teal","accent_quaternary":"navy","cube":"black","cube_hover":"blue","resume_job_role":"navy","resume_job_company":"blue","resume_job_meta":"dark_grey","resume_skill_bg":"navy","resume_skill_text":"white","resume_badge_bg":"teal","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"spaces_2000","name":"Spaces 2000","colors":{"bg_color":"#f0f4f8","bg_window":"#d4d0c8","text_color":"#000000","link_color":"#0a246a","text_dim":"#404040","border_color":"#2c5aa0","border_active":"#18429c","accent_color":"#0a246a","shadow_color":"#203858","accent_secondary":"#18429c","accent_tertiary":"#5b7b9a","accent_quaternary":"#0a246a","cube":"#000000","cube_hover":"#18429c","resume_job_role":"#0a246a","resume_job_company":"#18429c","resume_job_meta":"#404040","resume_skill_bg":"#2c5aa0","resume_skill_text":"#ffffff","resume_badge_bg":"#2c5aa0","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#f0f4f8"},"palette_colors":{"light_grey":"#f0f4f8","grey":"#d4d0c8","black":"#000000","dark_grey":"#404040","navy":"#0a246a","blue":"#18429c","steel_blue":"#5b7b9a","dark_navy":"#203858","royal_blue":"#2c5aa0","white":"#ffffff"},"variables":{"bg_color":"light_grey","bg_window":"grey","text_color":"black","link_color":"navy","text_dim":"dark_grey","border_color":"royal_blue","border_active":"blue","accent_color":"navy","shadow_color":"dark_navy","accent_secondary":"blue","accent_tertiary":"steel_blue","accent_quaternary":"navy","cube":"black","cube_hover":"blue","resume_job_role":"navy","resume_job_company":"blue","resume_job_meta":"dark_grey","resume_skill_bg":"royal_blue","resume_skill_text":"white","resume_badge_bg":"royal_blue","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"spaces_xp","name":"Spaces XP","colors":{"bg_color":"#e2ebf4","bg_window":"#ffffff","text_color":"#0f2545","link_color":"#0055ea","text_dim":"#4e6580","border_color":"#0055ea","border_active":"#2e7d32","accent_color":"#0055ea","shadow_color":"#a0b4cc","accent_secondary":"#2e7d32","accent_tertiary":"#d84315","accent_quaternary":"#0055ea","cube":"#0f2545","cube_hover":"#d84315","resume_job_role":"#0055ea","resume_job_company":"#2e7d32","resume_job_meta":"#4e6580","resume_skill_bg":"#0055ea","resume_skill_text":"#ffffff","resume_badge_bg":"#2e7d32","resume_badge_text":"#ffffff","filter_start_color":"#0f2545","filter_end_color":"#e2ebf4"},"palette_colors":{"light_blue":"#e2ebf4","white":"#ffffff","navy":"#0f2545","steel_blue":"#4e6580","blue":"#0055ea","green":"#2e7d32","orange":"#d84315","grey":"#a0b4cc"},"variables":{"bg_color":"light_blue","bg_window":"white","text_color":"navy","link_color":"blue","text_dim":"steel_blue","border_color":"blue","border_active":"green","accent_color":"blue","shadow_color":"grey","accent_secondary":"green","accent_tertiary":"orange","accent_quaternary":"blue","cube":"navy","cube_hover":"orange","resume_job_role":"blue","resume_job_company":"green","resume_job_meta":"steel_blue","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"green","resume_badge_text":"white","filter_start_color":"navy","filter_end_color":"light_blue"}},{"id":"spaces_xp_royale","name":"Spaces XP Royale","colors":{"bg_color":"#141820","bg_window":"#1f2430","text_color":"#f0f4f9","link_color":"#4090ff","text_dim":"#7b8c9e","border_color":"#1f5ac8","border_active":"#4090ff","accent_color":"#4090ff","shadow_color":"#0a0d12","accent_secondary":"#10b981","accent_tertiary":"#4090ff","accent_quaternary":"#1f5ac8","cube":"#f0f4f9","cube_hover":"#4090ff","resume_job_role":"#4090ff","resume_job_company":"#10b981","resume_job_meta":"#7b8c9e","resume_skill_bg":"#1f5ac8","resume_skill_text":"#ffffff","resume_badge_bg":"#10b981","resume_badge_text":"#0f172a","filter_start_color":"#141820","filter_end_color":"#f0f4f9"},"palette_colors":{"dark_navy":"#141820","navy":"#1f2430","ice_blue":"#f0f4f9","slate":"#7b8c9e","bright_blue":"#4090ff","blue":"#1f5ac8","emerald":"#10b981","black":"#0a0d12","
41white":"#ffffff","dark_slate":"#0f172a"},"variables":{"bg_color":"dark_navy","bg_window":"navy","text_color":"ice_blue","link_color":"bright_blue","text_dim":"slate","border_color":"blue","border_active":"bright_blue","accent_color":"bright_blue","shadow_color":"black","accent_secondary":"emerald","accent_tertiary":"bright_blue","accent_quaternary":"blue","cube":"ice_blue","cube_hover":"bright_blue","resume_job_role":"bright_blue","resume_job_company":"emerald","resume_job_meta":"slate","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"emerald","resume_badge_text":"dark_slate","filter_start_color":"dark_navy","filter_end_color":"ice_blue"}},{"id":"spaces_vista","name":"Spaces Vista","colors":{"bg_color":"#141c24","bg_window":"#1f2b37","text_color":"#f0f4f8","link_color":"#00c3ff","text_dim":"#7890a8","border_color":"#0084b4","border_active":"#00c3ff","accent_color":"#00c3ff","shadow_color":"#080d12","accent_secondary":"#34d399","accent_tertiary":"#00c3ff","accent_quaternary":"#0084b4","cube":"#f0f4f8","cube_hover":"#00c3ff","resume_job_role":"#00c3ff","resume_job_company":"#34d399","resume_job_meta":"#7890a8","resume_skill_bg":"#0084b4","resume_skill_text":"#ffffff","resume_badge_bg":"#34d399","resume_badge_text":"#0f172a","filter_start_color":"#141c24","filter_end_color":"#f0f4f8"},"palette_colors":{"dark_navy":"#141c24","navy":"#1f2b37","ice_blue":"#f0f4f8","slate":"#7890a8","cyan":"#00c3ff","blue":"#0084b4","emerald":"#34d399","black":"#080d12","white":"#ffffff","dark_slate":"#0f172a"},"variables":{"bg_color":"dark_navy","bg_window":"navy","text_color":"ice_blue","link_color":"cyan","text_dim":"slate","border_color":"blue","border_active":"cyan","accent_color":"cyan","shadow_color":"black","accent_secondary":"emerald","accent_tertiary":"cyan","accent_quaternary":"blue","cube":"ice_blue","cube_hover":"cyan","resume_job_role":"cyan","resume_job_company":"emerald","resume_job_meta":"slate","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"emerald","resume_badge_text":"dark_slate","filter_start_color":"dark_navy","filter_end_color":"ice_blue"}},{"id":"spaces_7","name":"Spaces 7","colors":{"bg_color":"#dce8f5","bg_window":"#ffffff","text_color":"#1a2b3c","link_color":"#0066cc","text_dim":"#5a7086","border_color":"#3385d6","border_active":"#00a0e9","accent_color":"#0066cc","shadow_color":"#abcced","accent_secondary":"#00a0e9","accent_tertiary":"#3385d6","accent_quaternary":"#0066cc","cube":"#1a2b3c","cube_hover":"#00a0e9","resume_job_role":"#0066cc","resume_job_company":"#00a0e9","resume_job_meta":"#5a7086","resume_skill_bg":"#0066cc","resume_skill_text":"#ffffff","resume_badge_bg":"#3385d6","resume_badge_text":"#ffffff","filter_start_color":"#1a2b3c","filter_end_color":"#dce8f5"},"palette_colors":{"light_blue":"#dce8f5","white":"#ffffff","navy":"#1a2b3c","steel_blue":"#5a7086","blue":"#0066cc","royal_blue":"#3385d6","bright_blue":"#00a0e9","grey_blue":"#abcced"},"variables":{"bg_color":"light_blue","bg_window":"white","text_color":"navy","link_color":"blue","text_dim":"steel_blue","border_color":"royal_blue","border_active":"bright_blue","accent_color":"blue","shadow_color":"grey_blue","accent_secondary":"bright_blue","accent_tertiary":"royal_blue","accent_quaternary":"blue","cube":"navy","cube_hover":"bright_blue","resume_job_role":"blue","resume_job_company":"bright_blue","resume_job_meta":"steel_blue","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"royal_blue","resume_badge_text":"white","filter_start_color":"navy","filter_end_color":"light_blue"}},{"id":"spaces_8","name":"Spaces 8","colors":{"bg_color":"#eff3f8","bg_window":"#ffffff","text_color":"#1e1e1e","link_color":"#0078d7","text_dim":"#555555","border_color":"#2b579a","border_active":"#00a300","accent_color":"#0078d7","shadow_color":"#d0d7e0","accent_secondary":"#00a300","accent_tertiary":"#9f00a7","accent_quaternary":"#2b579a","cube":"#1e1e1e","cube_hover":"#00a300","resume_job_role":"#0078d7","resume_job_company":"#00a300","resume_job_meta":"#555555","resume_skill_bg":"#0078d7","resume_skill_text":"#ffffff","resume_badge_bg":"#9f00a7","resume_badge_text":"#ffffff","filter_start_color":"#1e1e1e","filter_end_color":"#eff3f8"},"palette_colors":{"light_grey":"#eff3f8","white":"#ffffff","charcoal":"#1e1e1e","dark_grey":"#555555","blue":"#0078d7","navy":"#2b579a","green":"#00a300","purple":"#9f00a7","grey":"#d0d7e0"},"variables":{"bg_color":"light_grey","bg_window":"white","text_color":"charcoal","link_color":"blue","text_dim":"dark_grey","border_color":"navy","border_active":"green","accent_color":"blue","shadow_color":"grey","accent_secondary":"green","accent_tertiary":"purple","accent_quaternary":"navy","cube":"charcoal","cube_hover":"green","resume_job_role":"blue","resume_job_company":"green","resume_job_meta":"dark_grey","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"purple","resume_badge_text":"white","filter_start_color":"charcoal","filter_end_color":"light_grey"}},{"id":"spaces_10","name":"Spaces 10","colors":{"bg_color":"#1f1f1f","bg_window":"#2c2c2c","text_color":"#f3f3f3","link_color":"#26b5ff","text_dim":"#9e9e9e","border_color":"#0078d4","border_active":"#26b5ff","accent_color":"#26b5ff","shadow_color":"#121212","accent_secondary":"#26b5ff","accent_tertiary":"#0078d4","accent_quaternary":"#9e9e9e","cube":"#f3f3f3","cube_hover":"#26b5ff","resume_job_role":"#26b5ff","resume_job_company":"#0078d4","resume_job_meta":"#9e9e9e","resume_skill_bg":"#0078d4","resume_skill_text":"#ffffff","resume_badge_bg":"#26b5ff","resume_badge_text":"#121212","filter_start_color":"#1f1f1f","filter_end_color":"#f3f3f3"},"palette_colors":{"dark_charcoal":"#1f1f1f","charcoal":"#2c2c2c","white":"#f3f3f3","grey":"#9e9e9e","cyan":"#26b5ff","blue":"#0078d4","black":"#121212","pure_white":"#ffffff"},"variables":{"bg_color":"dark_charcoal","bg_window":"charcoal","text_color":"white","link_color":"cyan","text_dim":"grey","border_color":"blue","border_active":"cyan","accent_color":"cyan","shadow_color":"black","accent_secondary":"cyan","accent_tertiary":"blue","accent_quaternary":"grey","cube":"white","cube_hover":"cyan","resume_job_role":"cyan","resume_job_company":"blue","resume_job_meta":"grey","resume_skill_bg":"blue","resume_skill_text":"pure_white","resume_badge_bg":"cyan","resume_badge_text":"black","filter_start_color":"dark_charcoal","filter_end_color":"white"}},{"id":"spaces_11","name":"Spaces 11","colors":{"bg_color":"#18191c","bg_window":"#24272c","text_color":"#f8f9fa","link_color":"#4cc2ff","text_dim":"#8e96a0","border_color":"#383d44","border_active":"#60cdff","accent_color":"#4cc2ff","shadow_color":"#0d0e10","accent_secondary":"#60cdff","accent_tertiary":"#4cc2ff","accent_quaternary":"#383d44","cube":"#f8f9fa","cube_hover":"#60cdff","resume_job_role":"#4cc2ff","resume_job_company":"#60cdff","resume_job_meta":"#8e96a0","resume_skill_bg":"#005fb8","resume_skill_text":"#ffffff","resume_badge_bg":"#4cc2ff","resume_badge_text":"#0d0e10","filter_start_color":"#18191c","filter_end_color":"#f8f9fa"},"palette_colors":{"dark_charcoal":"#18191c","charcoal":"#24272c","white":"#f8f9fa","grey":"#8e96a0","cyan":"#4cc2ff","slate":"#383d44","light_cyan":"#60cdff","black":"#0d0e10","blue":"#005fb8","pure_white":"#ffffff"},"variables":{"bg_color":"dark_charcoal","bg_window":"charcoal","text_color":"white","link_color":"cyan","text_dim":"grey","border_color":"slate","border_active":"light_cyan","accent_color":"cyan","shadow_color":"black","accent_secondary":"light_cyan","accent_tertiary":"
41cyan","accent_quaternary":"slate","cube":"white","cube_hover":"light_cyan","resume_job_role":"cyan","resume_job_company":"light_cyan","resume_job_meta":"grey","resume_skill_bg":"blue","resume_skill_text":"pure_white","resume_badge_bg":"cyan","resume_badge_text":"black","filter_start_color":"dark_charcoal","filter_end_color":"white"}},{"id":"fruit_os","name":"Fruit OS","colors":{"bg_color":"#d6d6d6","bg_window":"#ffffff","text_color":"#000000","link_color":"#0000aa","text_dim":"#555555","border_color":"#000000","border_active":"#3333cc","accent_color":"#0000aa","shadow_color":"#888888","accent_secondary":"#3333cc","accent_tertiary":"#0000aa","accent_quaternary":"#555555","cube":"#000000","cube_hover":"#3333cc","resume_job_role":"#0000aa","resume_job_company":"#3333cc","resume_job_meta":"#555555","resume_skill_bg":"#0000aa","resume_skill_text":"#ffffff","resume_badge_bg":"#3333cc","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#d6d6d6"},"palette_colors":{"light_grey":"#d6d6d6","white":"#ffffff","black":"#000000","dark_grey":"#555555","blue":"#0000aa","royal_blue":"#3333cc","grey":"#888888"},"variables":{"bg_color":"light_grey","bg_window":"white","text_color":"black","link_color":"blue","text_dim":"dark_grey","border_color":"black","border_active":"royal_blue","accent_color":"blue","shadow_color":"grey","accent_secondary":"royal_blue","accent_tertiary":"blue","accent_quaternary":"dark_grey","cube":"black","cube_hover":"royal_blue","resume_job_role":"blue","resume_job_company":"royal_blue","resume_job_meta":"dark_grey","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"royal_blue","resume_badge_text":"white","filter_start_color":"black","filter_end_color":"light_grey"}},{"id":"fruit_osx","name":"Fruit OSX","colors":{"bg_color":"#e8ecef","bg_window":"#ffffff","text_color":"#1d1d1f","link_color":"#007aff","text_dim":"#6e6e73","border_color":"#007aff","border_active":"#34c759","accent_color":"#007aff","shadow_color":"#c0c8d0","accent_secondary":"#34c759","accent_tertiary":"#ff9500","accent_quaternary":"#ff3b30","cube":"#1d1d1f","cube_hover":"#ff3b30","resume_job_role":"#007aff","resume_job_company":"#34c759","resume_job_meta":"#6e6e73","resume_skill_bg":"#007aff","resume_skill_text":"#ffffff","resume_badge_bg":"#34c759","resume_badge_text":"#ffffff","filter_start_color":"#1d1d1f","filter_end_color":"#e8ecef"},"palette_colors":{"light_grey":"#e8ecef","white":"#ffffff","charcoal":"#1d1d1f","slate":"#6e6e73","blue":"#007aff","green":"#34c759","orange":"#ff9500","red":"#ff3b30","grey":"#c0c8d0"},"variables":{"bg_color":"light_grey","bg_window":"white","text_color":"charcoal","link_color":"blue","text_dim":"slate","border_color":"blue","border_active":"green","accent_color":"blue","shadow_color":"grey","accent_secondary":"green","accent_tertiary":"orange","accent_quaternary":"red","cube":"charcoal","cube_hover":"red","resume_job_role":"blue","resume_job_company":"green","resume_job_meta":"slate","resume_skill_bg":"blue","resume_skill_text":"white","resume_badge_bg":"green","resume_badge_text":"white","filter_start_color":"charcoal","filter_end_color":"light_grey"}},{"id":"community","name":"Community","colors":{"bg_color":"#2c001e","bg_window":"#380c2a","text_color":"#f7f7f7","link_color":"#ff6331","text_dim":"#aea79f","border_color":"#e95420","border_active":"#ff6331","accent_color":"#ff6331","shadow_color":"#180010","accent_secondary":"#ff6331","accent_tertiary":"#e95420","accent_quaternary":"#aea79f","cube":"#f7f7f7","cube_hover":"#ff6331","resume_job_role":"#ff6331","resume_job_company":"#e95420","resume_job_meta":"#aea79f","resume_skill_bg":"#e95420","resume_skill_text":"#ffffff","resume_badge_bg":"#77216f","resume_badge_text":"#ffffff","filter_start_color":"#2c001e","filter_end_color":"#f7f7f7"},"palette_colors":{"dark_aubergine":"#2c001e","aubergine":"#380c2a","white":"#f7f7f7","grey":"#aea79f","orange":"#ff6331","ubuntu_orange":"#e95420","black":"#180010","pure_white":"#ffffff","purple":"#77216f"},"variables":{"bg_color":"dark_aubergine","bg_window":"aubergine","text_color":"white","link_color":"orange","text_dim":"grey","border_color":"ubuntu_orange","border_active":"orange","accent_color":"orange","shadow_color":"black","accent_secondary":"orange","accent_tertiary":"ubuntu_orange","accent_quaternary":"grey","cube":"white","cube_hover":"orange","resume_job_role":"orange","resume_job_company":"ubuntu_orange","resume_job_meta":"grey","resume_skill_bg":"ubuntu_orange","resume_skill_text":"pure_white","resume_badge_bg":"purple","resume_badge_text":"pure_white","filter_start_color":"dark_aubergine","filter_end_color":"white"}},{"id":"pico_8","name":"Pico-8","colors":{"bg_color":"#1d2b53","bg_window":"#1d2b53","text_color":"#fff1e8","link_color":"#29adff","text_dim":"#83769c","border_color":"#83769c","border_active":"#29adff","accent_color":"#ffff27","shadow_color":"#000000","accent_secondary":"#00e436","accent_tertiary":"#ff004d","accent_quaternary":"#ffa300","cube":"#29adff","cube_hover":"#ffff27","resume_job_role":"#ffff27","resume_job_company":"#00e436","resume_job_meta":"#83769c","resume_skill_bg":"#7e2553","resume_skill_text":"#fff1e8","resume_badge_bg":"#ff004d","resume_badge_text":"#fff1e8","filter_start_color":"#1d2b53","filter_end_color":"#fff1e8"}
41,"palette_colors":{"black":"#000000","dark_blue":"#1d2b53","dark_purple":"#7e2553","dark_green":"#008751","brown":"#ab5236","dark_grey":"#5f574f","light_grey":"#c2c3c7","white":"#fff1e8","red":"#ff004d","orange":"#ffa300","yellow":"#ffff27","green":"#00e436","blue":"#29adff","indigo":"#83769c","pink":"#ff77a8","peach":"#ffccaa"},"variables":{"bg_color":"dark_blue","bg_window":"dark_blue","text_color":"white","link_color":"blue","text_dim":"indigo","border_color":"indigo","border_active":"blue","accent_color":"yellow","shadow_color":"black","accent_secondary":"green","accent_tertiary":"red","accent_quaternary":"orange","cube":"blue","cube_hover":"yellow","resume_job_role":"yellow","resume_job_company":"green","resume_job_meta":"indigo","resume_skill_bg":"dark_purple","resume_skill_text":"white","resume_badge_bg":"red","resume_badge_text":"white","filter_start_color":"dark_blue","filter_end_color":"white"}},{"id":"playdate","name":"Playdate","colors":{"bg_color":"#ffc72c","bg_window":"#ffc72c","text_color":"#111110","link_color":"#111110","text_dim":"#3a3a36","border_color":"#111110","border_active":"#111110","accent_color":"#111110","shadow_color":"#111110","accent_secondary":"#20201d","accent_tertiary":"#3a3a36","accent_quaternary":"#111110","cube":"#111110","cube_hover":"#20201d","resume_job_role":"#111110","resume_job_company":"#20201d","resume_job_meta":"#3a3a36","resume_skill_bg":"#111110","resume_skill_text":"#ffc72c","resume_badge_bg":"#111110","resume_badge_text":"#ffc72c","filter_start_color":"#111110","filter_end_color":"#ffc72c"},"palette_colors":{"signal_yellow":"#ffc72c","lcd_charcoal":"#20201d","dpad_black":"#111110","dark_grey":"#3a3a36"},"variables":{"bg_color":"signal_yellow","bg_window":"signal_yellow","text_color":"dpad_black","link_color":"dpad_black","text_dim":"dark_grey","border_color":"dpad_black","border_active":"dpad_black","accent_color":"dpad_black","shadow_color":"dpad_black","accent_secondary":"lcd_charcoal","accent_tertiary":"dark_grey","accent_quaternary":"dpad_black","cube":"dpad_black","cube_hover":"lcd_charcoal","resume_job_role":"dpad_black","resume_job_company":"lcd_charcoal","resume_job_meta":"dark_grey","resume_skill_bg":"dpad_black","resume_skill_text":"signal_yellow","resume_badge_bg":"dpad_black","resume_badge_text":"signal_yellow","filter_start_color":"dpad_black","filter_end_color":"signal_yellow"}},{"id":"sweetie_80","name":"Sweetie 80","colors":{"bg_color":"#1a1c2c","bg_window":"#333c57","text_color":"#f4f4f4","link_color":"#41a6f6","text_dim":"#94b0c2","border_color":"#3b5dc9","border_active":"#73eff7","accent_color":"#ffcd75","shadow_color":"#1a1c2c","accent_secondary":"#38b764","accent_tertiary":"#ef7d57","accent_quaternary":"#a7f070","cube":"#41a6f6","cube_hover":"#73eff7","resume_job_role":"#ffcd75","resume_job_company":"#a7f070","resume_job_meta":"#94b0c2","resume_skill_bg":"#5d275d","resume_skill_text":"#f4f4f4","resume_badge_bg":"#b13e53","resume_badge_text":"#f4f4f4","filter_start_color":"#1a1c2c","filter_end_color":"#f4f4f4"},"palette_colors":{"deep_void":"#1a1c2c","plum":"#5d275d","wine":"#b13e53","coral":"#ef7d57","peach":"#ffcd75","lime":"#a7f070","emerald":"#38b764","teal":"#257179","midnight":"#29366f","royal_blue":"#3b5dc9","sky_blue":"#41a6f6","aqua":"#73eff7","ghost_white":"#f4f4f4","ice_grey":"#94b0c2","slate":"#566c86","dark_slate":"#333c57"},"variables":{"bg_color":"deep_void","bg_window":"dark_slate","text_color":"ghost_white","link_color":"sky_blue","text_dim":"ice_grey","border_color":"royal_blue","border_active":"aqua","accent_color":"peach","shadow_color":"deep_void","accent_secondary":"emerald","accent_tertiary":"coral","accent_quaternary":"lime","cube":"sky_blue","cube_hover":"aqua","resume_job_role":"peach","resume_job_company":"lime","resume_job_meta":"ice_grey","resume_skill_bg":"plum","resume_skill_text":"ghost_white","resume_badge_bg":"wine","resume_badge_text":"ghost_white","filter_start_color":"deep_void","filter_end_color":"ghost_white"}},{"id":"oled_micro","name":"OLED Micro","colors":{"bg_color":"#05080c","bg_window":"#05080c","text_color":"#00f0ff","link_color":"#ffffff","text_dim":"#0099aa","border_color":"#00f0ff","border_active":"#ffffff","accent_color":"#f59e0b","shadow_color":"#1f2937","accent_secondary":"#ffffff","accent_tertiary":"#f59e0b","accent_quaternary":"#0099aa","cube":"#00f0ff","cube_hover":"#ffffff","resume_job_role":"#f59e0b","resume_job_company":"#ffffff","resume_job_meta":"#0099aa","resume_skill_bg":"#1f2937","resume_skill_text":"#00f0ff","resume_badge_bg":"#f59e0b","resume_badge_text":"#05080c","filter_start_color":"#05080c","filter_end_color":"#00f0ff"},"palette_colors":{"oled_black":"#05080c","oled_cyan":"#00f0ff","oled_white":"#ffffff","solder_slate":"#1f2937","circuit_gold":"#f59e0b","dim_cyan":"#0099aa"},"variables":{"bg_color":"oled_black","bg_window":"oled_black","text_color":"oled_cyan","link_color":"oled_white","text_dim":"dim_cyan","border_color":"oled_cyan","border_active":"oled_white","accent_color":"circuit_gold","shadow_color":"solder_slate","accent_secondary":"oled_white","accent_tertiary":"
41circuit_gold","accent_quaternary":"dim_cyan","cube":"oled_cyan","cube_hover":"oled_white","resume_job_role":"circuit_gold","resume_job_company":"oled_white","resume_job_meta":"dim_cyan","resume_skill_bg":"solder_slate","resume_skill_text":"oled_cyan","resume_badge_bg":"circuit_gold","resume_badge_text":"oled_black","filter_start_color":"oled_black","filter_end_color":"oled_cyan"}},{"id":"dreamcast","name":"Spiral 128","colors":{"bg_color":"#ececec","bg_window":"#dcdcdc","text_color":"#232328","link_color":"#ff6600","text_dim":"#55555c","border_color":"#232328","border_active":"#ff6600","accent_color":"#ff6600","shadow_color":"#232328","accent_secondary":"#0055a5","accent_tertiary":"#6dc5b8","accent_quaternary":"#232328","cube":"#232328","cube_hover":"#ff6600","resume_job_role":"#ff6600","resume_job_company":"#0055a5","resume_job_meta":"#55555c","resume_skill_bg":"#232328","resume_skill_text":"#ececec","resume_badge_bg":"#ff6600","resume_badge_text":"#ececec","filter_start_color":"#232328","filter_end_color":"#ececec"},"palette_colors":{"console_grey":"#ececec","deep_grey":"#dcdcdc","charcoal":"#232328","swirl_orange":"#ff6600","swirl_blue":"#0055a5","vmu_teal":"#6dc5b8","dim_charcoal":"#55555c"},"variables":{"bg_color":"console_grey","bg_window":"deep_grey","text_color":"charcoal","link_color":"swirl_orange","text_dim":"dim_charcoal","border_color":"charcoal","border_active":"swirl_orange","accent_color":"swirl_orange","shadow_color":"charcoal","accent_secondary":"swirl_blue","accent_tertiary":"vmu_teal","accent_quaternary":"charcoal","cube":"charcoal","cube_hover":"swirl_orange","resume_job_role":"swirl_orange","resume_job_company":"swirl_blue","resume_job_meta":"dim_charcoal","resume_skill_bg":"charcoal","resume_skill_text":"console_grey","resume_badge_bg":"swirl_orange","resume_badge_text":"console_grey","filter_start_color":"charcoal","filter_end_color":"console_grey"}},{"id":"saturn","name":"Saturn","colors":{"bg_color":"#dcdde1","bg_window":"#cbccd1","text_color":"#22252a","link_color":"#192a56","text_dim":"#555f6d","border_color":"#192a56","border_active":"#0f1830","accent_color":"#192a56","shadow_color":"#192a56","accent_secondary":"#192a56","accent_tertiary":"#0f1830","accent_quaternary":"#555f6d","cube":"#192a56","cube_hover":"#0f1830","resume_job_role":"#192a56","resume_job_company":"#0f1830","resume_job_meta":"#555f6d","resume_skill_bg":"#192a56","resume_skill_text":"#dcdde1","resume_badge_bg":"#e1b12c","resume_badge_text":"#192a56","filter_start_color":"#192a56","filter_end_color":"#dcdde1"},"palette_colors":{"mist_grey":"#dcdde1","slate_card":"#cbccd1","midnight_blue":"#192a56","saturn_gold":"#e1b12c","dark_charcoal":"#22252a","slate_dim":"#555f6d","deep_navy":"#0f1830"},"variables":{"bg_color":"mist_grey","bg_window":"slate_card","text_color":"dark_charcoal","link_color":"midnight_blue","text_dim":"slate_dim","border_color":"midnight_blue","border_active":"deep_navy","accent_color":"midnight_blue","shadow_color":"midnight_blue","accent_secondary":"midnight_blue","accent_tertiary":"deep_navy","accent_quaternary":"slate_dim","cube":"midnight_blue","cube_hover":"deep_navy","resume_job_role":"midnight_blue","resume_job_company":"deep_navy","resume_job_meta":"slate_dim","resume_skill_bg":"midnight_blue","resume_skill_text":"mist_grey","resume_badge_bg":"saturn_gold","resume_badge_text":"midnight_blue","filter_start_color":"midnight_blue","filter_end_color":"mist_grey"}},{"id":"atomic_purple","name":"Atomic Purple","colors":{"bg_color":"#4b3869","bg_window":"#6a528f","text_color":"#e8e0f5","link_color":"#ad9cc1","text_dim":"#bdaece","border_color":"#7e68a0","border_active":"#c83e74","accent_color":"#c83e74","shadow_color":"#261b36","accent_secondary":"#ad9cc1","accent_tertiary":"#2d572c","accent_quaternary":"#bdaece","cube":"#e8e0f5","cube_hover":"#c83e74","resume_job_role":"#ad9cc1","resume_job_company":"#c83e74","resume_job_meta":"#bdaece","resume_skill_bg":"#c83e74","resume_skill_text":"#e8e0f5","resume_badge_bg":"#2d572c","resume_badge_text":"#e8e0f5","filter_start_color":"#261b36","filter_end_color":"#e8e0f5"},"palette_colors":{"resin_purple":"#4b3869","resin_light":"#6a528f","resin_border":"#7e68a0","lilac_text":"#e8e0f5","lilac_dim":"#bdaece","pcb_green":"#2d572c","button_magenta":"#c83e74","specular_lilac":"#ad9cc1","void_black":"#261b36"},"variables":{"bg_color":"resin_purple","bg_window":"resin_light","text_color":"lilac_text","link_color":"specular_lilac","text_dim":"lilac_dim","border_color":"resin_border","border_active":"button_magenta","accent_color":"button_magenta","shadow_color":"void_black","accent_secondary":"specular_lilac","accent_tertiary":"pcb_green","accent_quaternary":"lilac_dim","cube":"lilac_text","cube_hover":"button_magenta","resume_job_role":"specular_lilac","resume_job_company":"button_magenta","resume_job_meta":"lilac_dim","resume_skill_bg":"button_magenta","resume_skill_text":"lilac_text","resume_badge_bg":"pcb_green","resume_badge_text":"lilac_text","filter_start_color":"void_black","filter_end_color":"lilac_text"}},{"id":"pocket_advance","name":"Pocket Advance","colors":{"bg_color":"#3f427b","bg_window":"#282a52","text_color":"#e0e4f0","link_color":"#39ff14","text_dim":"#9fa5b5","border_color":"#9fa5b5","border_active":"#39ff14","accent_color":"#39ff14","shadow_color":"#1a1b36","accent_secondary":"#ff5500","accent_tertiary":"#9fa5b5","accent_quaternary":"#39ff14","cube":"#e0e4f0","cube_hover":"#39ff14","resume_job_role":"#39ff14","resume_job_company":"#ff5500","resume_job_meta":"#9fa5b5","resume_skill_bg":"#282a52","resume_skill_text":"#e0e4f0","resume_badge_bg":"#39ff14","resume_badge_text":"#282a52","filter_start_color":"#1a1b36","filter_end_color":"#e0e4f0"},"palette_colors":{"gba_indigo":"#3f427b","gba_dark":"#282a52","white_lettering":"#e0e4f0","slate_grey":"#9fa5b5","power_green":"#39ff14","battery_amber":"#ff5500","shadow_indigo":"#1a1b36"},"variables":{"bg_color":"gba_indigo","bg_window":"gba_dark","text_color":"white_lettering","link_color":"power_green","text_dim":"slate_grey","border_color":"slate_grey","border_active":"power_green","accent_color":"power_green","shadow_color":"shadow_indigo","accent_secondary":"battery_amber","accent_tertiary":"slate_grey","accent_quaternary":"power_green","cube":"white_lettering","cube_hover":"power_green","resume_job_role":"power_green","resume_job_company":"battery_amber","resume_job_meta":"slate_grey","resume_skill_bg":"gba_dark","resume_skill_text":"white_lettering","resume_badge_bg":"power_green","resume_badge_text":"gba_dark","filter_start_color":"shadow_indigo","filter_end_color":"white_lettering"}},{"id":"indiglo_light","name":"Indiglo Light","colors":{"bg_color":"#124742","bg_window":"#092623","text_color":"#66fcd4","link_color":"#2de2b6","text_dim":"#258575","border_color":"#2de2b6","border_active":"#66fcd4","accent_color":"#66fcd4","shadow_color":"#041210","accent_secondary":"#2de2b6","accent_tertiary":"#258575","accent_quaternary":"#66fcd4","cube":"#66fcd4","cube_hover":"#2de2b6","resume_job_role":"#66fcd4","resume_job_company":"#2de2b6","resume_job_meta":"#258575","resume_skill_bg":"#041210","resume_skill_text":"#66fcd4","resume_badge_bg":"#2de2b6","resume_badge_text":"#041210","filter_start_color":"#041210","filter_end_color":"#66fcd4"},"palette_colors":{"el_backlit":"#124742","el_dark":"#092623","lcd_mint":"#66fcd4","lcd_glow":"#2de2b6","lcd_ink":"#041210","dim_mint":"#258575"},"variables":{"bg_color":"el_backlit","bg_window":"el_dark","text_color":"lcd_mint","link_color":"lcd_glow","text_dim":"dim_mint","border_color":"lcd_glow","border_active":"lcd_mint","accent_color":"lcd_mint","shadow_color":"lcd_ink","accent_secondary":"lcd_glow","accent_tertiary":"dim_mint","accent_quaternary":"lcd_mint","cube":"lcd_mint","cube_hover":"lcd_glow","resume_job_role":"lcd_mint","resume_job_company":"lcd_glow","resume_job_meta":"dim_mint","resume_skill_bg":"lcd_ink","resume_skill_text":"lcd_mint","resume_badge_bg":"lcd_glow","resume_badge_text":"lcd_ink","filter_start_color":"lcd_ink","filter_end_color":"lcd_mint"}},{"id":"gamestation_portable","name":"GameStationPortable","colors":{"bg_color":"#0c0d10","bg_window":"#181b22","text_color":"#e0f7fa","link_color":"#29b6f6","text_dim":"#758294","border_color":"#c8d1dc","border_active":"#29b6f6","accent_color":"#29b6f6","shadow_color":"#050607","accent_secondary":"#c8d1dc","accent_tertiary":"#e0f7fa","accent_quaternary":"#758294","cube":"#c8d1dc","cube_hover":"#29b6f6","resume_job_role":"#29b6f6","resume_job_company":"#c8d1dc","resume_job_meta":"#758294","resume_skill_bg":"#181b22","resume_skill_text":"#29b6f6","resume_badge_bg":"#29b6f6","resume_badge_text":"#050607","filter_start_color":"#050607","filter_end_color":"#e0f7fa"},"palette_colors":{"piano_black":"#0c0d10","bezel_dark":"#181b22","xmb_cyan":"#29b6f6","chrome_silver":"#c8d1dc","white_glow":"#e0f7fa","dim_silver":"#758294","deep_black":"#050607"},"variables":{"bg_color":"piano_black","bg_window":"bezel_dark","text_color":"white_glow","link_color":"xmb_cyan","text_dim":"dim_silver","border_color":"chrome_silver","border_active":"xmb_cyan","accent_color":"xmb_cyan","shadow_color":"deep_black","accent_secondary":"chrome_silver","accent_tertiary":"white_glow","accent_quaternary":"dim_silver","cube":"chrome_silver","cube_hover":"xmb_cyan","resume_job_role":"xmb_cyan","resume_job_company":"chrome_silver","resume_job_meta":"dim_silver","resume_skill_bg":"bezel_dark","resume_skill_text":"xmb_cyan","resume_badge_bg":"xmb_cyan","resume_badge_text":"deep_black","filter_start_color":"deep_black","filter_end_color":"white_glow"}},{"id":"gamestation_3","name":"GameStation 3","colors":{"bg_color":"#0e0f14","bg_window":"#191b22","text_color":"#d4dae2","link_color":"#ff1744","text_dim":"#8a95a5","border_color":"#d4dae2","border_active":"#00e676","accent_color":"#ff1744","shadow_color":"#060709","accent_secondary":"#00e676","accent_tertiary":"#d4dae2","accent_quaternary":"#8a95a5","cube":"#d4dae2","cube_hover":"#ff1744","resume_job_role":"#ff1744","resume_job_company":"#00e676","resume_job_meta":"#8a95a5","resume_skill_bg":"#191b22","resume_skill_text":"#d4dae2","resume_badge_bg":"#ff1744","resume_badge_text":"#0e0f14","filter_start_color":"#060709","filter_end_color":"#d4dae2"},"palette_colors":{"gloss_black":"#0e0f14","slot_dark":"#191b22","chrome_trim":"#d4dae2","standby_red":"#ff1744","power_green":"#00e676","titanium_grey":"#8a95a5","void_black":"#060709"},"variables":{"bg_color":"gloss_black","bg_window":"slot_dark","text_color":"chrome_trim","link_color":"standby_red","text_dim":"titanium_grey","border_color":"chrome_trim","border_active":"power_green","accent_color":"standby_red","shadow_color":"void_black","accent_secondary":"power_green","accent_tertiary":"
41chrome_trim","accent_quaternary":"titanium_grey","cube":"chrome_trim","cube_hover":"standby_red","resume_job_role":"standby_red","resume_job_company":"power_green","resume_job_meta":"titanium_grey","resume_skill_bg":"slot_dark","resume_skill_text":"chrome_trim","resume_badge_bg":"standby_red","resume_badge_text":"gloss_black","filter_start_color":"void_black","filter_end_color":"chrome_trim"}},{"id":"nds_aqua","name":"NDS Aqua","colors":{"bg_color":"#008b9e","bg_window":"#005d6b","text_color":"#ffffff","link_color":"#80deea","text_dim":"#80deea","border_color":"#ffffff","border_active":"#80deea","accent_color":"#80deea","shadow_color":"#0f1318","accent_secondary":"#ffffff","accent_tertiary":"#80deea","accent_quaternary":"#266973","cube":"#ffffff","cube_hover":"#80deea","resume_job_role":"#80deea","resume_job_company":"#ffffff","resume_job_meta":"#80deea","resume_skill_bg":"#0f1318","resume_skill_text":"#80deea","resume_badge_bg":"#80deea","resume_badge_text":"#0f1318","filter_start_color":"#0f1318","filter_end_color":"#ffffff"},"palette_colors":{"metallic_aqua":"#008b9e","abyss_cyan":"#005d6b","bezel_black":"#0f1318","pure_white":"#ffffff","glint_cyan":"#80deea","dim_cyan":"#266973"},"variables":{"bg_color":"metallic_aqua","bg_window":"abyss_cyan","text_color":"pure_white","link_color":"glint_cyan","text_dim":"glint_cyan","border_color":"pure_white","border_active":"glint_cyan","accent_color":"glint_cyan","shadow_color":"bezel_black","accent_secondary":"pure_white","accent_tertiary":"glint_cyan","accent_quaternary":"dim_cyan","cube":"pure_white","cube_hover":"glint_cyan","resume_job_role":"glint_cyan","resume_job_company":"pure_white","resume_job_meta":"glint_cyan","resume_skill_bg":"bezel_black","resume_skill_text":"glint_cyan","resume_badge_bg":"glint_cyan","resume_badge_text":"bezel_black","filter_start_color":"bezel_black","filter_end_color":"pure_white"}},{"id":"atarl","name":"AtarL","colors":{"bg_color":"#1a1a1a","bg_window":"#5c3a21","text_color":"#f0e6d2","link_color":"#ff4500","text_dim":"#997a54","border_color":"#b0b0b0","border_active":"#ff4500","accent_color":"#ff4500","shadow_color":"#111111","accent_secondary":"#b0b0b0","accent_tertiary":"#5c3a21","accent_quaternary":"#997a54","cube":"#f0e6d2","cube_hover":"#ff4500","resume_job_role":"#ff4500","resume_job_company":"#b0b0b0","resume_job_meta":"#997a54","resume_skill_bg":"#1a1a1a","resume_skill_text":"#f0e6d2","resume_badge_bg":"#ff4500","resume_badge_text":"#1a1a1a","filter_start_color":"#1a1a1a","filter_end_color":"#f0e6d2"},"palette_colors":{"ribbed_black":"#1a1a1a","ribbed_shadow":"#111111","walnut_veneer":"#5c3a21","joystick_fire":"#ff4500","lever_silver":"#b0b0b0","vintage_ivory":"#f0e6d2","dim_amber":"#997a54"},"variables":{"bg_color":"ribbed_black","bg_window":"walnut_veneer","text_color":"vintage_ivory","link_color":"joystick_fire","text_dim":"dim_amber","border_color":"lever_silver","border_active":"joystick_fire","accent_color":"joystick_fire","shadow_color":"ribbed_shadow","accent_secondary":"lever_silver","accent_tertiary":"walnut_veneer","accent_quaternary":"dim_amber","cube":"vintage_ivory","cube_hover":"joystick_fire","resume_job_role":"joystick_fire","resume_job_company":"lever_silver","resume_job_meta":"dim_amber","resume_skill_bg":"ribbed_black","resume_skill_text":"vintage_ivory","resume_badge_bg":"joystick_fire","resume_badge_text":"ribbed_black","filter_start_color":"ribbed_black","filter_end_color":"vintage_ivory"}},{"id":"mega_shock","name":"Mega Shock","colors":{"bg_color":"#141416","bg_window":"#222329","text_color":"#f5f5f5","link_color":"#d4af37","text_dim":"#8f7524","border_color":"#d4af37","border_active":"#e53935","accent_color":"#e53935","shadow_color":"#141416","accent_secondary":"#1e88e5","accent_tertiary":"#fbc02d","accent_quaternary":"#43a047","cube":"#d4af37","cube_hover":"#e53935","resume_job_role":"#d4af37","resume_job_company":"#1e88e5","resume_job_meta":"#8f7524","resume_skill_bg":"#141416","resume_skill_text":"#d4af37","resume_badge_bg":"#e53935","resume_badge_text":"#f5f5f5","filter_start_color":"#141416","filter_end_color":"#f5f5f5"},"palette_colors":{"arcade_black":"#141416","cabinet_slate":"#222329","neo_gold":"#d4af37","button_red":"#e53935","button_yellow":"#fbc02d","button_green":"#43a047","button_blue":"#1e88e5","text_white":"#f5f5f5","dim_gold":"#8f7524"},"variables":{"bg_color":"arcade_black","bg_window":"cabinet_slate","text_color":"text_white","link_color":"neo_gold","text_dim":"dim_gold","border_color":"neo_gold","border_active":"button_red","accent_color":"button_red","shadow_color":"arcade_black","accent_secondary":"button_blue","accent_tertiary":"button_yellow","accent_quaternary":"button_green","cube":"neo_gold","cube_hover":"button_red","resume_job_role":"neo_gold","resume_job_company":"button_blue","resume_job_meta":"dim_gold","resume_skill_bg":"arcade_black","resume_skill_text":"neo_gold","resume_badge_bg":"button_red","resume_badge_text":"text_white","filter_start_color":"arcade_black","filter_end_color":"text_white"}}
41,{"id":"engine_16","name":"Engine 16","colors":{"bg_color":"#f2f4f7","bg_window":"#e4e7eb","text_color":"#33373d","link_color":"#ff3b30","text_dim":"#8e95a0","border_color":"#33373d","border_active":"#ff3b30","accent_color":"#ff3b30","shadow_color":"#33373d","accent_secondary":"#007aff","accent_tertiary":"#8e95a0","accent_quaternary":"#33373d","cube":"#33373d","cube_hover":"#ff3b30","resume_job_role":"#ff3b30","resume_job_company":"#007aff","resume_job_meta":"#8e95a0","resume_skill_bg":"#33373d","resume_skill_text":"#f2f4f7","resume_badge_bg":"#ff3b30","resume_badge_text":"#f2f4f7","filter_start_color":"#33373d","filter_end_color":"#f2f4f7"},"palette_colors":{"pce_white":"#f2f4f7","pce_card":"#e4e7eb","pad_charcoal":"#33373d","hucard_red":"#ff3b30","nec_blue":"#007aff","switch_grey":"#8e95a0","dark_black":"#1a1a1c"},"variables":{"bg_color":"pce_white","bg_window":"pce_card","text_color":"pad_charcoal","link_color":"hucard_red","text_dim":"switch_grey","border_color":"pad_charcoal","border_active":"hucard_red","accent_color":"hucard_red","shadow_color":"pad_charcoal","accent_secondary":"nec_blue","accent_tertiary":"switch_grey","accent_quaternary":"pad_charcoal","cube":"pad_charcoal","cube_hover":"hucard_red","resume_job_role":"hucard_red","resume_job_company":"nec_blue","resume_job_meta":"switch_grey","resume_skill_bg":"pad_charcoal","resume_skill_text":"pce_white","resume_badge_bg":"hucard_red","resume_badge_text":"pce_white","filter_start_color":"pad_charcoal","filter_end_color":"pce_white"}},{"id":"phosphor_vector","name":"Phosphor Vector","colors":{"bg_color":"#070709","bg_window":"#070709","text_color":"#39ff14","link_color":"#00e5ff","text_dim":"#1a660a","border_color":"#39ff14","border_active":"#ffffff","accent_color":"#ffffff","shadow_color":"#070709","accent_secondary":"#00e5ff","accent_tertiary":"#ff007f","accent_quaternary":"#1a660a","cube":"#39ff14","cube_hover":"#ffffff","resume_job_role":"#ffffff","resume_job_company":"#00e5ff","resume_job_meta":"#1a660a","resume_skill_bg":"#121217","resume_skill_text":"#39ff14","resume_badge_bg":"#ff007f","resume_badge_text":"#ffffff","filter_start_color":"#070709","filter_end_color":"#39ff14"},"palette_colors":{"crt_pitch":"#070709","crt_mesh":"#121217","laser_green":"#39ff14","vector_cyan":"#00e5ff","overlay_pink":"#ff007f","beam_white":"#ffffff","dim_green":"#1a660a"},"variables":{"bg_color":"crt_pitch","bg_window":"crt_pitch","text_color":"laser_green","link_color":"vector_cyan","text_dim":"dim_green","border_color":"laser_green","border_active":"beam_white","accent_color":"beam_white","shadow_color":"crt_pitch","accent_secondary":"vector_cyan","accent_tertiary":"overlay_pink","accent_quaternary":"dim_green","cube":"laser_green","cube_hover":"beam_white","resume_job_role":"beam_white","resume_job_company":"vector_cyan","resume_job_meta":"dim_green","resume_skill_bg":"crt_mesh","resume_skill_text":"laser_green","resume_badge_bg":"overlay_pink","resume_badge_text":"beam_white","filter_start_color":"crt_pitch","filter_end_color":"laser_green"}},{"id":"deck_handheld","name":"Deck Handheld","colors":{"bg_color":"#17191e","bg_window":"#0f1013","text_color":"#f1f3f6","link_color":"#1a9fff","text_dim":"#667085","border_color":"#1a9fff","border_active":"#ff7700","accent_color":"#1a9fff","shadow_color":"#0f1013","accent_secondary":"#ff7700","accent_tertiary":"#1a9fff","accent_quaternary":"#667085","cube":"#f1f3f6","cube_hover":"#1a9fff","resume_job_role":"#1a9fff","resume_job_company":"#ff7700","resume_job_meta":"#667085","resume_skill_bg":"#0f1013","resume_skill_text":"#f1f3f6","resume_badge_bg":"#1a9fff","resume_badge_text":"#0f1013","filter_start_color":"#0f1013","filter_end_color":"#f1f3f6"},"palette_colors":{"matte_slate":"#17191e","grip_black":"#0f1013","steam_blue":"#1a9fff","thumb_amber":"#ff7700","font_white":"#f1f3f6","dim_slate":"#667085"},"variables":{"bg_color":"matte_slate","bg_window":"grip_black","text_color":"font_white","link_color":"steam_blue","text_dim":"dim_slate","border_color":"steam_blue","border_active":"thumb_amber","accent_color":"steam_blue","shadow_color":"grip_black","accent_secondary":"thumb_amber","accent_tertiary":"steam_blue","accent_quaternary":"dim_slate","cube":"font_white","cube_hover":"steam_blue","resume_job_role":"steam_blue","resume_job_company":"thumb_amber","resume_job_meta":"dim_slate","resume_skill_bg":"grip_black","resume_skill_text":"font_white","resume_badge_bg":"steam_blue","resume_badge_text":"grip_black","filter_start_color":"grip_black","filter_end_color":"font_white"}},{"id":"orchard_2","name":"Orchard II","colors":{"bg_color":"#e3d8be","bg_window":"#e3d8be","text_color":"#4a3728","link_color":"#61bb46","text_dim":"#735945","border_color":"#4a3728","border_active":"#61bb46","accent_color":"#e03a3e","shadow_color":"#4a3728","accent_secondary":"#fdb827","accent_tertiary":"#009ddc","accent_quaternary":"#963d97","cube":"#4a3728","cube_hover":"#61bb46","resume_job_role":"#e03a3e","resume_job_company":"#61bb46","resume_job_meta":"#735945","resume_skill_bg":"#4a3728","resume_skill_text":"#e3d8be","resume_badge_bg":"#fdb827","resume_badge_text":"#4a3728","filter_start_color":"#4a3728","filter_end_color":"#e3d8be"},"palette_colors":{"putty_case":"#e3d8be","dark_umber":"#4a3728","crt_green":"#33ff33","apple_green":"#61bb46","apple_yellow":"#fdb827","apple_orange":"#f58220","apple_red":"#e03a3e","apple_purple":"#963d97","apple_blue":"#009ddc","dim_umber":"#735945"},"variables":{"bg_color":"putty_case","bg_window":"putty_case","text_color":"dark_umber","link_color":"apple_green","text_dim":"dim_umber","border_color":"dark_umber","border_active":"apple_green","accent_color":"apple_red","
41shadow_color":"dark_umber","accent_secondary":"apple_yellow","accent_tertiary":"apple_blue","accent_quaternary":"apple_purple","cube":"dark_umber","cube_hover":"apple_green","resume_job_role":"apple_red","resume_job_company":"apple_green","resume_job_meta":"dim_umber","resume_skill_bg":"dark_umber","resume_skill_text":"putty_case","resume_badge_bg":"apple_yellow","resume_badge_text":"dark_umber","filter_start_color":"dark_umber","filter_end_color":"putty_case"}},{"id":"snow_white","name":"Snow White","colors":{"bg_color":"#ded7c4","bg_window":"#ffffff","text_color":"#000000","link_color":"#34312d","text_dim":"#888888","border_color":"#000000","border_active":"#34312d","accent_color":"#000000","shadow_color":"#34312d","accent_secondary":"#34312d","accent_tertiary":"#888888","accent_quaternary":"#000000","cube":"#000000","cube_hover":"#34312d","resume_job_role":"#000000","resume_job_company":"#34312d","resume_job_meta":"#888888","resume_skill_bg":"#000000","resume_skill_text":"#ffffff","resume_badge_bg":"#34312d","resume_badge_text":"#ffffff","filter_start_color":"#000000","filter_end_color":"#ded7c4"},"palette_colors":{"vintage_beige":"#ded7c4","chassis_card":"#cfc8b4","recessed_vent":"#34312d","gui_ink":"#000000","paper_white":"#ffffff","dither_grey":"#888888"},"variables":{"bg_color":"vintage_beige","bg_window":"paper_white","text_color":"gui_ink","link_color":"recessed_vent","text_dim":"dither_grey","border_color":"gui_ink","border_active":"recessed_vent","accent_color":"gui_ink","shadow_color":"recessed_vent","accent_secondary":"recessed_vent","accent_tertiary":"dither_grey","accent_quaternary":"gui_ink","cube":"gui_ink","cube_hover":"recessed_vent","resume_job_role":"gui_ink","resume_job_company":"recessed_vent","resume_job_meta":"dither_grey","resume_skill_bg":"gui_ink","resume_skill_text":"paper_white","resume_badge_bg":"recessed_vent","resume_badge_text":"paper_white","filter_start_color":"gui_ink","filter_end_color":"vintage_beige"}},{"id":"black_cube","name":"Black Cube","colors":{"bg_color":"#121214","bg_window":"#1c1c20","text_color":"#ffffff","link_color":"#f9e01e","text_dim":"#7d7f85","border_color":"#7d7f85","border_active":"#35b34b","accent_color":"#f32736","shadow_color":"#121214","accent_secondary":"#35b34b","accent_tertiary":"#e52d7e","accent_quaternary":"#f9e01e","cube":"#ffffff","cube_hover":"#35b34b","resume_job_role":"#f9e01e","resume_job_company":"#35b34b","resume_job_meta":"#7d7f85","resume_skill_bg":"#e52d7e","resume_skill_text":"#ffffff","resume_badge_bg":"#f32736","resume_badge_text":"#ffffff","filter_start_color":"#121214","filter_end_color":"#ffffff"},"palette_colors":{"magnesium_black":"#121214","cube_dark":"#1c1c20","pure_white":"#ffffff","titanium_grey":"#7d7f85","rand_vermilion":"#f32736","rand_cerise":"#e52d7e","rand_green":"#35b34b","rand_yellow":"#f9e01e"},"variables":{"bg_color":"magnesium_black","bg_window":"cube_dark","text_color":"pure_white","link_color":"rand_yellow","text_dim":"titanium_grey","border_color":"titanium_grey","border_active":"rand_green","accent_color":"rand_vermilion","shadow_color":"magnesium_black","accent_secondary":"rand_green","accent_tertiary":"rand_cerise","accent_quaternary":"rand_yellow","cube":"pure_white","cube_hover":"rand_green","resume_job_role":"rand_yellow","resume_job_company":"rand_green","resume_job_meta":"titanium_grey","resume_skill_bg":"rand_cerise","resume_skill_text":"pure_white","resume_badge_bg":"rand_vermilion","resume_badge_text":"pure_white","filter_start_color":"magnesium_black","filter_end_color":"pure_white"}},{"id":"yellow_tab","name":"YellowTab","colors":{"bg_color":"#dcdfe3","bg_window":"#eef0f3","text_color":"#141416","link_color":"#c40000","text_dim":"#36414e","border_color":"#234b75","border_active":"#ffc400","accent_color":"#234b75","shadow_color":"#234b75","accent_secondary":"#ffc400","accent_tertiary":"#c40000","accent_quaternary":"#36414e","cube":"#234b75","cube_hover":"#c40000","resume_job_role":"#c40000","resume_job_company":"#234b75","resume_job_meta":"#36414e","resume_skill_bg":"#ffc400","resume_skill_text":"#141416","resume_badge_bg":"#c40000","resume_badge_text":"#ffffff","filter_start_color":"#234b75","filter_end_color":"#dcdfe3"},"palette_colors":{"gui_grey":"#dcdfe3","gui_window":"#eef0f3","steel_blue":"#234b75","bold_yellow":"#ffc400","border_black":"#141416","be_red":"#c40000","dark_slate":"#36414e","pure_white":"#ffffff"},"variables":{"bg_color":"gui_grey","bg_window":"gui_window","text_color":"border_black","link_color":"be_red","text_dim":"dark_slate","border_color":"steel_blue","border_active":"bold_yellow","accent_color":"steel_blue","shadow_color":"steel_blue","accent_secondary":"bold_yellow","accent_tertiary":"be_red","accent_quaternary":"dark_slate","cube":"steel_blue","cube_hover":"be_red","resume_job_role":"be_red","resume_job_company":"steel_blue","resume_job_meta":"dark_slate","resume_skill_bg":"bold_yellow","resume_skill_text":"border_black","resume_badge_bg":"be_red","resume_badge_text":"pure_white","filter_start_color":"steel_blue","filter_end_color":"gui_grey"}},{"id":"silicon_indigo","name":"Silicon Indigo","colors":{"bg_color":"#1e3a8a","bg_window":"#14285e","text_color":"#ffffff","link_color":"#00f0ff","text_dim":"#c7d2fe","border_color":"#00f0ff","border_active":"#e91e63","accent_color":"#00f0ff","shadow_color":"#14285e","accent_secondary":"#e91e63","accent_tertiary":"#005952","accent_quaternary":"#5eead4","cube":"#00f0ff","cube_hover":"#e91e63","resume_job_role":"#00f0ff","resume_job_company":"#e91e63","resume_job_meta":"#c7d2fe","resume_skill_bg":"#005952","resume_skill_text":"#ffffff","resume_badge_bg":"#e91e63","resume_badge_text":"#ffffff","filter_start_color":"#14285e","filter_end_color":"#ffffff"},"palette_colors":{"sgi_blue":"#1e3a8a","sgi_dark":"#14285e","indy_teal":"#005952","silicon_cyan":"#00f0ff","wireframe_magenta":"#e91e63","text_white":"#ffffff","window_grey":"#c7d2fe","dim_cyan":"#5eead4"},"variables":{"bg_color":"sgi_blue","bg_window":"sgi_dark","text_color":"text_white","link_color":"silicon_cyan","text_dim":"window_grey","border_color":"silicon_cyan","border_active":"wireframe_magenta","accent_color":"silicon_cyan","shadow_color":"sgi_dark","accent_secondary":"wireframe_magenta","accent_tertiary":"indy_teal","accent_quaternary":"dim_cyan","cube":"silicon_cyan","cube_hover":"wireframe_magenta","resume_job_role":"silicon_cyan","resume_job_company":"wireframe_magenta","resume_job_meta":"window_grey","resume_skill_bg":"indy_teal","resume_skill_text":"text_white","resume_badge_bg":"wireframe_magenta","resume_badge_text":"text_white","filter_start_color":"sgi_dark","filter_end_color":"text_white"}},{"id":"bento_pad","name":"Bento Pad","colors":{"bg_color":"#141416","bg_window":"#1e1e24","text_color":"#e6e6e6","link_color":"#e00000","text_dim":"#737373","border_color":"#e00000","border_active":"#0066cc","accent_color":"#e00000","shadow_color":"#141416","accent_secondary":"#0066cc","accent_tertiary":"#43a047","accent_quaternary":"#737373","cube":"#e6e6e6","cube_hover":"#e00000","resume_job_role":"#e00000","resume_job_company":"#0066cc","resume_job_meta":"#737373","resume_skill_bg":"#0066cc","resume_skill_text":"#e6e6e6","resume_badge_bg":"#e00000","resume_badge_text":"#e6e6e6","filter_start_color":"#141416","filter_end_color":"#e6e6e6"},"palette_colors":{"raven_black":"#141416","raven_panel":"#1e1e24","trackpoint_red":"#e00000","enter_blue":"#0066cc","key_white":"#e6e6e6","led_green":"#43a047","dim_grey":"#737373"},"variables":{"bg_color":"raven_black","bg_window":"raven_panel","text_color":"key_white","link_color":"trackpoint_red","text_dim":"dim_grey","border_color":"trackpoint_red","border_active":"enter_blue","accent_color":"trackpoint_red","
41shadow_color":"raven_black","accent_secondary":"enter_blue","accent_tertiary":"led_green","accent_quaternary":"dim_grey","cube":"key_white","cube_hover":"trackpoint_red","resume_job_role":"trackpoint_red","resume_job_company":"enter_blue","resume_job_meta":"dim_grey","resume_skill_bg":"enter_blue","resume_skill_text":"key_white","resume_badge_bg":"trackpoint_red","resume_badge_text":"key_white","filter_start_color":"raven_black","filter_end_color":"key_white"}},{"id":"speccy_48k","name":"Speccy 48K","colors":{"bg_color":"#000000","bg_window":"#141414","text_color":"#ffffff","link_color":"#00d8d8","text_dim":"#666666","border_color":"#00d8d8","border_active":"#d8d800","accent_color":"#d80000","shadow_color":"#000000","accent_secondary":"#00d800","accent_tertiary":"#d8d800","accent_quaternary":"#00d8d8","cube":"#00d8d8","cube_hover":"#d8d800","resume_job_role":"#d8d800","resume_job_company":"#00d800","resume_job_meta":"#666666","resume_skill_bg":"#d80000","resume_skill_text":"#ffffff","resume_badge_bg":"#00d8d8","resume_badge_text":"#000000","filter_start_color":"#000000","filter_end_color":"#ffffff"},"palette_colors":{"speccy_black":"#000000","speccy_card":"#141414","chiclet_grey":"#d8d8d8","rainbow_red":"#d80000","rainbow_yellow":"#d8d800","rainbow_green":"#00d800","rainbow_cyan":"#00d8d8","bright_white":"#ffffff","dim_grey":"#666666"},"variables":{"bg_color":"speccy_black","bg_window":"speccy_card","text_color":"bright_white","link_color":"rainbow_cyan","text_dim":"dim_grey","border_color":"rainbow_cyan","border_active":"rainbow_yellow","accent_color":"rainbow_red","shadow_color":"speccy_black","accent_secondary":"rainbow_green","accent_tertiary":"rainbow_yellow","accent_quaternary":"rainbow_cyan","cube":"rainbow_cyan","cube_hover":"rainbow_yellow","resume_job_role":"rainbow_yellow","resume_job_company":"rainbow_green","resume_job_meta":"dim_grey","resume_skill_bg":"rainbow_red","resume_skill_text":"bright_white","resume_badge_bg":"rainbow_cyan","resume_badge_text":"speccy_black","filter_start_color":"speccy_black","filter_end_color":"bright_white"}},{"id":"acorn_bbc","name":"Acorn BBC","colors":{"bg_color":"#ded6c4","bg_window":"#ded6c4","text_color":"#2b221a","link_color":"#e62b1e","text_dim":"#6b5847","border_color":"#2b221a","border_active":"#e62b1e","accent_color":"#e62b1e","shadow_color":"#2b221a","accent_secondary":"#00e676","accent_tertiary":"#e62b1e","accent_quaternary":"#6b5847","cube":"#2b221a","cube_hover":"#e62b1e","resume_job_role":"#e62b1e","resume_job_company":"#00e676","resume_job_meta":"#6b5847","resume_skill_bg":"#2b221a","resume_skill_text":"#ded6c4","resume_badge_bg":"#e62b1e","resume_badge_text":"#f7f4ec","filter_start_color":"#2b221a","filter_end_color":"#ded6c4"},"palette_colors":{"biscuit_cream":"#ded6c4","chassis_panel":"#cfc5af","umber_dark":"#2b221a","function_red":"#e62b1e","crt_green":"#00e676","dim_umber":"#6b5847","light_ivory":"#f7f4ec"},"variables":{"bg_color":"biscuit_cream","bg_window":"biscuit_cream","text_color":"umber_dark","link_color":"function_red","text_dim":"dim_umber","border_color":"umber_dark","border_active":"function_red","accent_color":"function_red","shadow_color":"umber_dark","accent_secondary":"crt_green","accent_tertiary":"function_red","accent_quaternary":"dim_umber","cube":"umber_dark","cube_hover":"function_red","resume_job_role":"function_red","resume_job_company":"crt_green","resume_job_meta":"dim_umber","resume_skill_bg":"umber_dark","resume_skill_text":"biscuit_cream","resume_badge_bg":"function_red","resume_badge_text":"light_ivory","filter_start_color":"umber_dark","filter_end_color":"biscuit_cream"}},{"id":"twin_tower","name":"Twin Tower","colors":{"bg_color":"#191b20","bg_window":"#0f1013","text_color":"#e8ebf0","link_color":"#00ff88","text_dim":"#5c6370","border_color":"#00ff88","border_active":"#ff9900","accent_color":"#ff9900","shadow_color":"#0f1013","accent_secondary":"#00ff88","accent_tertiary":"#ff9900","accent_quaternary":"#5c6370","cube":"#e8ebf0","cube_hover":"#00ff88","resume_job_role":"#ff9900","resume_job_company":"#00ff88","resume_job_meta":"#5c6370","resume_skill_bg":"#0f1013","resume_skill_text":"#00ff88","resume_badge_bg":"#ff9900","resume_badge_text":"#0f1013","filter_start_color":"#0f1013","filter_end_color":"#e8ebf0"},"palette_colors":{"graphite_black":"#191b20","shadow_black":"#0f1013","drive_green":"#00ff88","eject_amber":"#ff9900","human_white":"#e8ebf0","dim_graphite":"#5c6370"},"variables":{"bg_color":"graphite_black","bg_window":"shadow_black","text_color":"human_white","link_color":"drive_green","text_dim":"dim_graphite","border_color":"drive_green","border_active":"eject_amber","accent_color":"eject_amber","shadow_color":"shadow_black","accent_secondary":"drive_green","accent_tertiary":"eject_amber","accent_quaternary":"dim_graphite","cube":"human_white","cube_hover":"drive_green","resume_job_role":"eject_amber","resume_job_company":"drive_green","resume_job_meta":"dim_graphite","resume_skill_bg":"shadow_black","resume_skill_text":"drive_green","resume_badge_bg":"eject_amber","resume_badge_text":"shadow_black","filter_start_color":"shadow_black","filter_end_color":"human_white"}},{"id":"datacorder_464","name":"Datacorder 464","colors":{"bg_color":"#26282e","bg_window":"#1c1d22","text_color":"#f4f4f7","link_color":"#27ae60","text_dim":"#6c727d","border_color":"#c0392b","border_active":"#27ae60","accent_color":"#c0392b","shadow_color":"#1c1d22","accent_secondary":"#27ae60","accent_tertiary":"#2980b9","accent_quaternary":"#f39c12","cube":"#f4f4f7","cube_hover":"#27ae60","resume_job_role":"#f39c12","resume_job_company":"#27ae60","resume_job_meta":"#6c727d","resume_skill_bg":"#c0392b","resume_skill_text":"#f4f4f7","resume_badge_bg":"#2980b9","resume_badge_text":"#f4f4f7","filter_start_color":"#1c1d22","filter_end_color":"#f4f4f7"},"palette_colors":{"cpc_charcoal":"#26282e","cpc_panel":"#1c1d22","text_white":"#f4f4f7","rec_red":"#c0392b","play_green":"#27ae60","pause_blue":"#2980b9","stop_yellow":"#f39c12","dim_cpc":"#6c727d"},"variables":{"bg_color":"cpc_charcoal","bg_window":"cpc_panel","text_color":"text_white","link_color":"play_green","text_dim":"dim_cpc","border_color":"rec_red","border_active":"play_green","accent_color":"rec_red","shadow_color":"cpc_panel","accent_secondary":"play_green","accent_tertiary":"pause_blue","accent_quaternary":"stop_yellow","cube":"text_white","cube_hover":"play_green","resume_job_role":"stop_yellow","resume_job_company":"play_green","resume_job_meta":"dim_cpc","resume_skill_bg":"rec_red","resume_skill_text":"text_white","resume_badge_bg":"pause_blue","resume_badge_text":"text_white","filter_start_color":"cpc_panel","filter_end_color":"text_white"}},{"id":"rhythm_808","name":"Rhythm 808","colors":{"bg_color":"#18191d","bg_window":"#23252b","text_color":"#f5f0e1","link_color":"#ff7700","text_dim":"#7a7e88","border_color":"#ff7700","border_active":"#f5c400","accent_color":"#e02828","shadow_color":"#18191d","accent_secondary":"#f5c400","accent_tertiary":"#e02828","accent_quaternary":"#ede9de","cube":"#ff7700","cube_hover":"#f5c400","resume_job_role":"#f5c400","resume_job_company":"#ff7700","resume_job_meta":"#7a7e88","resume_skill_bg":"#e02828","resume_skill_text":"#f5f0e1","resume_badge_bg":"#ff7700","resume_badge_text":"#18191d","filter_start_color":"#18191d","filter_end_color":"#ff7700"},"palette_colors":{"chassis_black":"#18191d","chassis_slate":"#23252b","cream_print":"#f5f0e1","step_red":"#e02828","step_orange":"#ff7700","step_yellow":"#f5c400","step_white":"#ede9de","dim_grey":"#7a7e88"},"variables":{"bg_color":"chassis_black","bg_window":"chassis_slate","text_color":"cream_print","link_color":"step_orange","text_dim":"dim_grey","border_color":"step_orange","border_active":"step_yellow","accent_color":"step_red","shadow_color":"chassis_black","accent_secondary":"step_yellow","accent_tertiary":"step_red","accent_quaternary":"step_white","cube":"step_orange","cube_hover":"step_yellow","resume_job_role":"step_yellow","resume_job_company":"step_orange","resume_job_meta":"dim_grey","resume_skill_bg":"step_red","resume_skill_text":"cream_print","resume_badge_bg":"step_orange","resume_badge_text":"chassis_black","filter_start_color":"chassis_black","filter_end_color":"step_orange"}},{"id":"acid_303","name":"Acid 303","colors":{"bg_color":"#c2c7cc","bg_window":"#c2c7cc","text_color":"#26282d","link_color":"#ff0033","text_dim":"#50555e","border_color":"#26282d","border_active":"#ff0033","accent_color":"#ff0033","shadow_color":"#26282d","accent_secondary":"#a6ff00","accent_tertiary":"#ff0033","accent_quaternary":"#50555e","cube":"#26282d","cube_hover":"#ff0033","resume_job_role":"#ff0033","resume_job_company":"#26282d","resume_job_meta":"#50555e","resume_skill_bg":"#26282d","resume_skill_text":"#c2c7cc","resume_badge_bg":"#ff0033","resume_badge_text":"#c2c7cc","filter_start_color":"#26282d","filter_end_color":"#c2c7cc"},"palette_colors":{"silver_metallic":"#c2c7cc","chassis_card":"#adb5bd","knob_charcoal":"#26282d","ruby_led":"#ff0033","acid_neon":"#a6ff00","deep_cut":"#0e1014","dim_charcoal":"#50555e"},"variables":{"bg_color":"silver_metallic","bg_window":"silver_metallic","text_color":"knob_charcoal","link_color":"ruby_led","text_dim":"dim_charcoal","border_color":"knob_charcoal","border_active":"ruby_led","accent_color":"ruby_led","shadow_color":"knob_charcoal","accent_secondary":"acid_neon","accent_tertiary":"ruby_led","accent_quaternary":"dim_charcoal","cube":"knob_charcoal","cube_hover":"ruby_led","resume_job_role":"ruby_led","resume_job_company":"knob_charcoal","resume_job_meta":"dim_charcoal","resume_skill_bg":"knob_charcoal","resume_skill_text":"silver_metallic","resume_badge_bg":"ruby_led","resume_badge_text":"silver_metallic","filter_start_color":"knob_charcoal","filter_end_color":"silver_metallic"}},{"id":"operator_1","name":"Operator 1","colors":{"bg_color":"#e2e4e2","bg_window":"#f0f2f0","text_color":"#1c1d20","link_color":"#1658b4","text_dim":"#4e5158","border_color":"#1c1d20","border_active":"#d96500","accent_color":"#d96500","shadow_color":"#1c1d20","accent_secondary":"#198c4f","accent_tertiary":"#1658b4","accent_quaternary":"#d96500","cube":"#1c1d20","cube_hover":"#d96500","resume_job_role":"#d96500","resume_job_company":"#1658b4","resume_job_meta":"#4e5158","resume_skill_bg":"#1c1d20","resume_skill_text":"#ffffff","resume_badge_bg":"#1658b4","resume_badge_text":"#ffffff","filter_start_color":"#1c1d20","filter_end_color":"#e2e4e2"},"palette_colors":{"cnc_aluminum":"#e2e4e2","aluminum_window":"#f0f2f0","oled_charcoal":"#1c1d20","key_white":"#ffffff","dial_blue":"#1658b4","dial_green":"#198c4f","dial_orange":"#d96500","dim_charcoal":"#4e5158"},"variables":{"bg_color":"cnc_aluminum","bg_window":"aluminum_window","text_color":"oled_charcoal","link_color":"dial_blue","text_dim":"dim_charcoal","border_color":"oled_charcoal","border_active":"dial_orange","accent_color":"dial_orange","shadow_color":"oled_charcoal","accent_secondary":"dial_green","accent_tertiary":"dial_blue","accent_quaternary":"dial_orange","cube":"oled_charcoal","cube_hover":"dial_orange","resume_job_role":"dial_orange","resume_job_company":"dial_blue","resume_job_meta":"dim_charcoal","resume_skill_bg":"oled_charcoal","resume_skill_text":"key_white","resume_badge_bg":"dial_blue","resume_badge_text":"key_white","filter_start_color":"oled_charcoal","filter_end_color":"cnc_aluminum"}},{"id":"boom_bap_16","name":"Boom Bap 16","colors":{"bg_color":"#d4cfc7","bg_window":"#d4cfc7","text_color":"#212328","link_color":"#d32f2f","text_dim":"#69717d","border_color":"#43484f","border_active":"#d32f2f","accent_color":"#d32f2f","shadow_color":"#43484f","accent_secondary":"#7ca4cc","accent_tertiary":"#43484f","accent_quaternary":"#69717d","cube":"#43484f","cube_hover":"#d32f2f","resume_job_role":"#d32f2f","resume_job_company":"#43484f","resume_job_meta":"#69717d","resume_skill_bg":"#43484f","resume_skill_text":"#d4cfc7","resume_badge_bg":"#7ca4cc","resume_badge_text":"#212328","filter_start_color":"#212328","filter_end_color":"#d4cfc7"},"palette_colors":{"putty_grey":"#d4cfc7","housing_panel":"#c4beba","pad_slate":"#43484f","lcd_blue":"#7ca4cc","record_red":"#d32f2f","ink_charcoal":"#212328","dim_slate":"#69717d"},"variables":{"bg_color":"putty_grey","bg_window":"putty_grey","text_color":"ink_charcoal","link_color":"record_red","text_dim":"dim_slate","border_color":"pad_slate","border_active":"record_red","accent_color":"record_red","shadow_color":"pad_slate","accent_secondary":"lcd_blue","accent_tertiary":"pad_slate","accent_quaternary":"dim_slate","cube":"pad_slate","cube_hover":"record_red","resume_job_role":"record_red","resume_job_company":"pad_slate","resume_job_meta":"dim_slate","resume_skill_bg":"pad_slate","resume_skill_text":"putty_grey","resume_badge_bg":"lcd_blue","resume_badge_text":"ink_charcoal","filter_start_color":"ink_charcoal","filter_end_color":"putty_grey"}}
41,{"id":"blue_cassette","name":"Blue Cassette","colors":{"bg_color":"#1e4d8c","bg_window":"#133563","text_color":"#ffffff","link_color":"#ff6f00","text_dim":"#c8d1d9","border_color":"#c8d1d9","border_active":"#ff6f00","accent_color":"#ff6f00","shadow_color":"#222629","accent_secondary":"#c8d1d9","accent_tertiary":"#ff6f00","accent_quaternary":"#8fa0b3","cube":"#c8d1d9","cube_hover":"#ff6f00","resume_job_role":"#ff6f00","resume_job_company":"#c8d1d9","resume_job_meta":"#8fa0b3","resume_skill_bg":"#c8d1d9","resume_skill_text":"#1e4d8c","resume_badge_bg":"#ff6f00","resume_badge_text":"#ffffff","filter_start_color":"#222629","filter_end_color":"#ffffff"},"palette_colors":{"walkman_blue":"#1e4d8c","deep_blue":"#133563","brushed_silver":"#c8d1d9","hotline_orange":"#ff6f00","leather_black":"#222629","pure_white":"#ffffff","dim_silver":"#8fa0b3"},"variables":{"bg_color":"walkman_blue","bg_window":"deep_blue","text_color":"pure_white","link_color":"hotline_orange","text_dim":"brushed_silver","border_color":"brushed_silver","border_active":"hotline_orange","accent_color":"hotline_orange","shadow_color":"leather_black","accent_secondary":"brushed_silver","accent_tertiary":"hotline_orange","accent_quaternary":"dim_silver","cube":"brushed_silver","cube_hover":"hotline_orange","resume_job_role":"hotline_orange","resume_job_company":"brushed_silver","resume_job_meta":"dim_silver","resume_skill_bg":"brushed_silver","resume_skill_text":"walkman_blue","resume_badge_bg":"hotline_orange","resume_badge_text":"pure_white","filter_start_color":"leather_black","filter_end_color":"pure_white"}},{"id":"functionalist","name":"Functionalist","colors":{"bg_color":"#212121","bg_window":"#363636","text_color":"#ffffff","link_color":"#ff6d00","text_dim":"#7d7d7d","border_color":"#ffffff","border_active":"#ff6d00","accent_color":"#ff6d00","shadow_color":"#212121","accent_secondary":"#556b2f","accent_tertiary":"#ff6d00","accent_quaternary":"#7d7d7d","cube":"#ffffff","cube_hover":"#ff6d00","resume_job_role":"#ff6d00","resume_job_company":"#556b2f","resume_job_meta":"#7d7d7d","resume_skill_bg":"#363636","resume_skill_text":"#ffffff","resume_badge_bg":"#ff6d00","resume_badge_text":"#212121","filter_start_color":"#212121","filter_end_color":"#ffffff"},"palette_colors":{"pebble_dark":"#212121","key_grey":"#363636","rams_orange":"#ff6d00","olive_green":"#556b2f","pure_white":"#ffffff","dim_grey":"#7d7d7d"},"variables":{"bg_color":"pebble_dark","bg_window":"key_grey","text_color":"pure_white","link_color":"rams_orange","text_dim":"dim_grey","border_color":"pure_white","border_active":"rams_orange","accent_color":"rams_orange","shadow_color":"pebble_dark","accent_secondary":"olive_green","accent_tertiary":"rams_orange","accent_quaternary":"dim_grey","cube":"pure_white","cube_hover":"rams_orange","resume_job_role":"rams_orange","resume_job_company":"olive_green","resume_job_meta":"dim_grey","resume_skill_bg":"key_grey","resume_skill_text":"pure_white","resume_badge_bg":"rams_orange","resume_badge_text":"pebble_dark","filter_start_color":"pebble_dark","filter_end_color":"pure_white"}},{"id":"resin_91","name":"Resin 91","colors":{"bg_color":"#18191c","bg_window":"#9eaa90","text_color":"#1b241a","link_color":"#0088ff","text_dim":"#595e69","border_color":"#d4af37","border_active":"#39ff14","accent_color":"#d4af37","shadow_color":"#18191c","accent_secondary":"#0088ff","accent_tertiary":"#39ff14","accent_quaternary":"#595e69","cube":"#d4af37","cube_hover":"#39ff14","resume_job_role":"#d4af37","resume_job_company":"#0088ff","resume_job_meta":"#595e69","resume_skill_bg":"#18191c","resume_skill_text":"#9eaa90","resume_badge_bg":"#d4af37","resume_badge_text":"#18191c","filter_start_color":"#18191c","filter_end_color":"#9eaa90"},"palette_colors":{"resin_black":"#18191c","resin_bezel":"#222429","lcd_grey":"#9eaa90","lcd_segment":"#1b241a","resist_gold":"#d4af37","stripe_blue":"#0088ff","nightlight_green":"#39ff14","dim_resin":"#595e69"},"variables":{"bg_color":"resin_black","bg_window":"lcd_grey","text_color":"lcd_segment","link_color":"stripe_blue","text_dim":"dim_resin","border_color":"resist_gold","border_active":"nightlight_green","accent_color":"resist_gold","shadow_color":"resin_black","accent_secondary":"stripe_blue","accent_tertiary":"nightlight_green","accent_quaternary":"dim_resin","cube":"resist_gold","cube_hover":"nightlight_green","resume_job_role":"resist_gold","resume_job_company":"stripe_blue","resume_job_meta":"dim_resin","resume_skill_bg":"resin_black","resume_skill_text":"lcd_grey","resume_badge_bg":"resist_gold","resume_badge_text":"resin_black","filter_start_color":"resin_black","filter_end_color":"lcd_grey"}},{"id":"night_city","name":"Night City","colors":{"bg_color":"#0d0d11","bg_window":"#15151c","text_color":"#ffffff","link_color":"#fcee0a","text_dim":"#5e5073","border_color":"#fcee0a","border_active":"#00f0ff","accent_color":"#fcee0a","shadow_color":"#ff0055","accent_secondary":"#00f0ff","accent_tertiary":"#ff0055","accent_quaternary":"#5e5073","cube":"#fcee0a","cube_hover":"#00f0ff","resume_job_role":"#fcee0a","resume_job_company":"#00f0ff","resume_job_meta":"#5e5073","resume_skill_bg":"#ff0055","resume_skill_text":"#ffffff","resume_badge_bg":"#fcee0a","resume_badge_text":"#0d0d11","filter_start_color":"#0d0d11","filter_end_color":"#ffffff"},"palette_colors":{"netrunner_black":"#0d0d11","cyber_panel":"#15151c","cyber_yellow":"#fcee0a","neon_cyan":"#00f0ff","hot_magenta":"#ff0055","pure_white":"#ffffff","dim_purple":"#5e5073"},"variables":{"bg_color":"netrunner_black","bg_window":"cyber_panel","text_color":"pure_white","link_color":"cyber_yellow","text_dim":"dim_purple","border_color":"cyber_yellow","border_active":"neon_cyan","accent_color":"cyber_yellow","shadow_color":"hot_magenta","accent_secondary":"neon_cyan","accent_tertiary":"hot_magenta","accent_quaternary":"dim_purple","cube":"cyber_yellow","cube_hover":"neon_cyan","resume_job_role":"cyber_yellow","resume_job_company":"neon_cyan","resume_job_meta":"dim_purple","resume_skill_bg":"hot_magenta","resume_skill_text":"pure_white","resume_badge_bg":"cyber_yellow","resume_badge_text":"netrunner_black","filter_start_color":"netrunner_black","filter_end_color":"pure_white"}},{"id":"they_fear","name":"They Fear","colors":{"bg_color":"#101014","bg_window":"#1c1c24","text_color":"#ffffff","link_color":"#f5a623","text_dim":"#78879e","border_color":"#3b7dd8","border_active":"#f5a623","accent_color":"#f5a623","shadow_color":"#101014","accent_secondary":"#3b7dd8","accent_tertiary":"#b71c1c","accent_quaternary":"#e
4165100","cube":"#f5a623","cube_hover":"#3b7dd8","resume_job_role":"#f5a623","resume_job_company":"#3b7dd8","resume_job_meta":"#78879e","resume_skill_bg":"#3b7dd8","resume_skill_text":"#ffffff","resume_badge_bg":"#b71c1c","resume_badge_text":"#ffffff","filter_start_color":"#101014","filter_end_color":"#f5a623"},"palette_colors":{"slag_black":"#101014","furnace_dark":"#1c1c24","logo_blue":"#3b7dd8","logo_cyan":"#68a9f4","logo_gold":"#f5a623","logo_orange":"#e65100","logo_red":"#b71c1c","armor_white":"#ffffff","dim_steel":"#78879e"},"variables":{"bg_color":"slag_black","bg_window":"furnace_dark","text_color":"armor_white","link_color":"logo_gold","text_dim":"dim_steel","border_color":"logo_blue","border_active":"logo_gold","accent_color":"logo_gold","shadow_color":"slag_black","accent_secondary":"logo_blue","accent_tertiary":"logo_red","accent_quaternary":"logo_orange","cube":"logo_gold","cube_hover":"logo_blue","resume_job_role":"logo_gold","resume_job_company":"logo_blue","resume_job_meta":"dim_steel","resume_skill_bg":"logo_blue","resume_skill_text":"armor_white","resume_badge_bg":"logo_red","resume_badge_text":"armor_white","filter_start_color":"slag_black","filter_end_color":"logo_gold"}},{"id":"hero_of_time","name":"Hero of Time","colors":{"bg_color":"#0e2417","bg_window":"#163824","text_color":"#f5f0db","link_color":"#ffd700","text_dim":"#527a63","border_color":"#ffd700","border_active":"#00e5ff","accent_color":"#ffd700","shadow_color":"#0e2417","accent_secondary":"#00e5ff","accent_tertiary":"#1565c0","accent_quaternary":"#527a63","cube":"#f5f0db","cube_hover":"#ffd700","resume_job_role":"#ffd700","resume_job_company":"#00e5ff","resume_job_meta":"#527a63","resume_skill_bg":"#1565c0","resume_skill_text":"#f5f0db","resume_badge_bg":"#ffd700","resume_badge_text":"#0e2417","filter_start_color":"#0e2417","filter_end_color":"#f5f0db"},"palette_colors":{"woods_green":"#0e2417","kokiri_dark":"#163824","triforce_gold":"#ffd700","master_blue":"#1565c0","sheikah_cyan":"#00e5ff","parchment_cream":"#f5f0db","dim_sage":"#527a63"},"variables":{"bg_color":"woods_green","bg_window":"kokiri_dark","text_color":"parchment_cream","link_color":"triforce_gold","text_dim":"dim_sage","border_color":"triforce_gold","border_active":"sheikah_cyan","accent_color":"triforce_gold","shadow_color":"woods_green","accent_secondary":"sheikah_cyan","accent_tertiary":"master_blue","accent_quaternary":"dim_sage","cube":"parchment_cream","cube_hover":"triforce_gold","resume_job_role":"triforce_gold","resume_job_company":"sheikah_cyan","resume_job_meta":"dim_sage","resume_skill_bg":"master_blue","resume_skill_text":"parchment_cream","resume_badge_bg":"triforce_gold","resume_badge_text":"woods_green","filter_start_color":"woods_green","filter_end_color":"parchment_cream"}},{"id":"kanto_red","name":"Kanto Red","colors":{"bg_color":"#b71c1c","bg_window":"#c62828","text_color":"#f8f9fa","link_color":"#ffeb3b","text_dim":"#e0d8d8","border_color":"#f8f9fa","border_active":"#ffeb3b","accent_color":"#ffeb3b","shadow_color":"#500b0b","accent_secondary":"#1565c0","accent_tertiary":"#5e35b1","accent_quaternary":"#e0d8d8","cube":"#f8f9fa","cube_hover":"#ffeb3b","resume_job_role":"#ffeb3b","resume_job_company":"#1565c0","resume_job_meta":"#e0d8d8","resume_skill_bg":"#1565c0","resume_skill_text":"#f8f9fa","resume_badge_bg":"#ffeb3b","resume_badge_text":"#500b0b","filter_start_color":"#500b0b","filter_end_color":"#f8f9fa"},"palette_colors":{"pokeball_red":"#b71c1c","scarlet_panel":"#c62828","cerulean_blue":"#1565c0","pikachu_yellow":"#ffeb3b","pure_white":"#f8f9fa","freak_purple":"#5e35b1","dim_cream":"#e0d8d8","shadow_dark":"#500b0b"},"variables":{"bg_color":"pokeball_red","bg_window":"scarlet_panel","text_color":"pure_white","link_color":"pikachu_yellow","text_dim":"dim_cream","border_color":"pure_white","border_active":"pikachu_yellow","accent_color":"pikachu_yellow","shadow_color":"shadow_dark","accent_secondary":"cerulean_blue","accent_tertiary":"freak_purple","accent_quaternary":"dim_cream","cube":"pure_white","cube_hover":"pikachu_yellow","resume_job_role":"pikachu_yellow","resume_job_company":"cerulean_blue","resume_job_meta":"dim_cream","resume_skill_bg":"cerulean_blue","resume_skill_text":"pure_white","resume_badge_bg":"pikachu_yellow","resume_badge_text":"shadow_dar
41k","filter_start_color":"shadow_dark","filter_end_color":"pure_white"}},{"id":"hazard_suit","name":"Hazard Suit","colors":{"bg_color":"#1f2127","bg_window":"#14151a","text_color":"#e0e0e0","link_color":"#ff6f00","text_dim":"#607d8b","border_color":"#ff6f00","border_active":"#76ff03","accent_color":"#ff6f00","shadow_color":"#14151a","accent_secondary":"#76ff03","accent_tertiary":"#d32f2f","accent_quaternary":"#607d8b","cube":"#e0e0e0","cube_hover":"#ff6f00","resume_job_role":"#ff6f00","resume_job_company":"#76ff03","resume_job_meta":"#607d8b","resume_skill_bg":"#14151a","resume_skill_text":"#ff6f00","resume_badge_bg":"#ff6f00","resume_badge_text":"#14151a","filter_start_color":"#14151a","filter_end_color":"#e0e0e0"},"palette_colors":{"research_slate":"#1f2127","facility_black":"#14151a","hazard_orange":"#ff6f00","xen_green":"#76ff03","crowbar_red":"#d32f2f","alloy_grey":"#e0e0e0","dim_steel":"#607d8b"},"variables":{"bg_color":"research_slate","bg_window":"facility_black","text_color":"alloy_grey","link_color":"hazard_orange","text_dim":"dim_steel","border_color":"hazard_orange","border_active":"xen_green","accent_color":"hazard_orange","shadow_color":"facility_black","accent_secondary":"xen_green","accent_tertiary":"crowbar_red","accent_quaternary":"dim_steel","cube":"alloy_grey","cube_hover":"hazard_orange","resume_job_role":"hazard_orange","resume_job_company":"xen_green","resume_job_meta":"dim_steel","resume_skill_bg":"facility_black","resume_skill_text":"hazard_orange","resume_badge_bg":"hazard_orange","resume_badge_text":"facility_black","filter_start_color":"facility_black","filter_end_color":"alloy_grey"}},{"id":"vault_101","name":"Vault 101","colors":{"bg_color":"#0c2340","bg_window":"#071526","text_color":"#ffcc00","link_color":"#f5f5f5","text_dim":"#a88700","border_color":"#ffcc00","border_active":"#ffb000","accent_color":"#ffcc00","shadow_color":"#071526","accent_secondary":"#1eff00","accent_tertiary":"#ffb000","accent_quaternary":"#a88700","cube":"#ffcc00","cube_hover":"#f5f5f5","resume_job_role":"#ffcc00","resume_job_company":"#1eff00","resume_job_meta":"#a88700","resume_skill_bg":"#071526","resume_skill_text":"#ffcc00","resume_badge_bg":"#ffcc00","resume_badge_text":"#071526","filter_start_color":"#071526","filter_end_color":"#ffcc00"},"palette_colors":{"vault_navy":"#0c2340","jumpsuit_dark":"#071526","vault_gold":"#ffcc00","pip_amber":"#ffb000","pip_green":"#1eff00","pure_white":"#f5f5f5","dim_gold":"#a88700"},"variables":{"bg_color":"vault_navy","bg_window":"jumpsuit_dark","text_color":"vault_gold","link_color":"pure_white","text_dim":"dim_gold","border_color":"vault_gold","border_active":"pip_amber","accent_color":"vault_gold","shadow_color":"jumpsuit_dark","accent_secondary":"pip_green","accent_tertiary":"pip_amber","accent_quaternary":"dim_gold","cube":"vault_gold","cube_hover":"pure_white","resume_job_role":"vault_gold","resume_job_company":"pip_green","resume_job_meta":"dim_gold","resume_skill_bg":"jumpsuit_dark","resume_skill_text":"vault_gold","resume_badge_bg":"vault_gold","resume_badge_text":"jumpsuit_dark","filter_start_color":"jumpsuit_dark","filter_end_color":"vault_gold"}},{"id":"overworld_85","name":"Overworld 85","colors":{"bg_color":"#5c94fc","bg_window":"#3f78e0","text_color":"#ffffff","link_color":"#fcd116","text_dim":"#ffffff","border_color":"#ffffff","border_active":"#fcd116","accent_color":"#fcd116","shadow_color":"#28509e","accent_secondary":"#e52521","accent_tertiary":"#00a800","accent_quaternary":"#b84418","cube":"#ffffff","cube_hover":"#fcd116","resume_job_role":"#fcd116","resume_job_company":"#00a800","resume_job_meta":"#ffffff","resume_skill_bg":"#e52521","resume_skill_text":"#ffffff","resume_badge_bg":"#fcd116","resume_badge_text":"#b84418","filter_start_color":"#28509e","filter_end_color":"#ffffff"},"palette_colors":{"sky_blue":"#5c94fc","deep_sky":"#3f78e0","mario_red":"#e52521","block_gold":"#fcd116","pipe_green":"#00a800","cloud_white":"#ffffff","brick_brown":"#b84418","shadow_blue":"#28509e"},"variables":{"bg_color":"sky_blue","bg_window":"deep_sky","text_color":"cloud_white","link_color":"block_gold","text_dim":"cloud_white","border_color":"cloud_white","border_active":"block_gold","accent_color":"block_gold","shadow_color":"shadow_blue","accent_secondary":"mario_red","accent_tertiary":"pipe_green","accent_quaternary":"brick_brown","cube":"cloud_white","cube_hover":"block_gold","resume_job_role":"block_gold","resume_job_company":"pipe_green","resume_job_meta":"cloud_white","resume_skill_bg":"mario_red","resume_skill_text":"cloud_white","resume_badge_bg":"block_gold","resume_badge_text":"brick_brown","filter_start_color":"shadow_blue","filter_end_color":"cloud_white"}},{"id":"mineshaft","name":"Mineshaft","colors":{"bg_color":"#141316","bg_window":"#1e1e24","text_color":"#f0f2f5","link_color":"#38e6d2","text_dim":"#9aa0a6","border_color":"#38e6d2","border_active":"#f5a623","accent_color":"#38e6d2","shadow_color":"#0b0a0d","accent_secondary":"#ff3333","accent_tertiary":"#f5a623","accent_quaternary":"#5b8731","cube":"#f0f2f5","cube_hover":"#38e6d2","resume_job_role":"#f5a623","resume_job_company":"#38e6d2","resume_job_meta":"#9aa0a6","resume_skill_bg":"#1e1e24","resume_skill_text":"#38e6d2","resume_badge_bg":"#ff3333","resume_badge_text":"#f0f2f5","filter_start_color":"#0b0a0d","filter_end_color":"#f0f2f5"},"palette_colors":{"deepslate":"#141316","cobblestone_dark":"#1e1e24","quartz_white":"#f0f2f5","diamond_cyan":"#38e6d2","redstone_red":"#ff3333","grass_green":"#5b8731","torch_gold":"#f5a623","stone_dim":"#9aa0a6","void_black":"#0b0a0d"},"variables":{"bg_color":"deepslate","bg_window":"cobblestone_dark","text_color":"quartz_white","link_color":"diamond_cyan","text_dim":"stone_dim","border_color":"diamond_cyan","border_active":"torch_gold","accent_color":"diamond_cyan","shadow_color":"void_black","accent_secondary":"redstone_red","accent_tertiary":"torch_gold","accent_quaternary":"grass_green","cube":"quartz_white","cube_hover":"diamond_cyan","resume_job_role":"torch_gold","resume_job_company":"diamond_cyan","resume_job_meta":"stone_dim","resume_skill_bg":"cobblestone_dark","resume_skill_text":"diamond_cyan","resume_badge_bg":"redstone_red","resume_badge_text":"quartz_white","filter_start_color":"void_black","filter_end_color":"quartz_white"}},{"id":"master","name":"Master","colors":{"bg_color":"#3d4528","bg_window":"#2a301b","text_color":"#eef2e6","link_color":"#e5a823","text_dim":"#707b53","border_color":"#e5a823","border_active":"#00e5ff","accent_color":"#e5a823","shadow_color":"#2a301b","accent_secondary":"#00e5ff","accent_tertiary":"#7b1fa2","accent_quaternary":"#707b53","cube":"#eef2e6","cube_hover":"#e5a823","resume_job_role":"#e5a823","resume_job_company":"#00e5ff","resume_job_meta":"#707b53","resume_skill_bg":"#2a301b","resume_skill_text":"#eef2e6","resume_badge_bg":"#e5a823","resume_badge_text":"#2a301b","filter_start_color":"#2a301b","filter_end_color":"#eef2e6"},"palette_colors":{"mjolnir_olive":"#3d4528","armor_dark":"#2a301b","visor_gold":"#e5a823","cortana_cyan":"#00e5ff","plasma_purple":"#7b1fa2","armor_white":"#eef2e6","dim_olive":"#707b53"},"variables":{"bg_color":"mjolnir_olive","bg_window":"armor_dark","text_color":"armor_white","link_color":"visor_gold","text_dim":"dim_olive","border_color":"visor_gold","border_active":"cortana_cyan","accent_color":"visor_gold","shadow_color":"armor_dark","accent_secondary":"cortana_cyan","accent_tertiary":"plasma_purple","accent_quaternary":"dim_olive","cube":"armor_white","cube_hover":"visor_gold","resume_job_role":"visor_gold","resume_job_company":"cortana_cyan","resume_job_meta":"dim_olive","resume_skill_bg":"armor_dark","resume_skill_text":"armor_white","resume_badge_bg":"visor_gold","resume_badge_text":"armor_dark","filter_start_color":"armor_dark","filter_end_color":"armor_white"}},{"id":"faith","name":"Faith","colors":{"bg_color":"#f8f9fa","bg_window":"#f8f9fa","text_color":"#212529","link_color":"#e60000","text_dim":"#6c757d","border_color":"#212529","border_active":"#e60000","accent_color":"#e60000","shadow_color":"#212529","accent_secondary":"#00b4d8","accent_tertiary":"#ffcc00","accent_quaternary":"#6c757d","cube":"#212529","cube_hover":"#e60000","resume_job_role":"#e60000","resume_job_company":"#00b4d8","resume_job_meta":"#6c757d","resume_skill_bg":"#212529","resume_skill_text":"#f8f9fa","resume_badge_bg":"#e60000","resume_badge_text":"#f8f9fa","filter_start_color":"#212529","filter_end_color":"#f8f9fa"},"palette_colors":{"sterile_white":"#f8f9fa","panel_card":"#eceef1","runner_crimson":"#e60000","skyline_cyan":"#00b4d8","concrete_black":"#212529","hazard_yellow":"#ffcc00","dim_concrete":"#6c757d"},"variables":{"bg_color":"sterile_white","bg_window":"sterile_white","text_color":"concrete_black","link_color":"runner_crimson","text_dim":"dim_concrete","border_color":"concrete_black","border_active":"runner_crimson","accent_color":"runner_crimson","shadow_color":"concrete_black","accent_secondary":"skyline_cyan","accent_tertiary":"hazard_yellow","accent_quaternary":"dim_concrete","cube":"concrete_black","cube_hover":"runner_crimson","resume_job_role":"runner_crimson","resume_job_company":"skyline_cyan","resume_job_meta":"dim_concrete","resume_skill_bg":"concrete_black","resume_skill_text":"sterile_white","resume_badge_bg":"runner_crimson","resume_badge_text":"sterile_white","filter_start_color":"concrete_black","filter_end_color":"sterile_white"}},{"id":"ash_of_ember","name":"Ash of Ember","colors":{"bg_color":"#121214","bg_window":"#1e1e24","text_color":"#f5f5f5","link_color":"#d84315","text_dim":"#78909c","border_color":"#d84315","border_active":"#ffb300","accent_color":"#d84315","shadow_color":"#121214","accent_secondary":"#ffb300","accent_tertiary":"#546e7a","accent_quaternary":"#78909c","cube":"#f5f5f5","cube_hover":"#d84315","resume_job_role":"#d84315","resume_job_company":"#ffb300","resume_job_meta":"#78909c","resume_skill_bg":"#1e1e24","resume_skill_text":"#f5f5f5","resume_badge_bg":"#d84315","resume_badge_text":"#121214","filter_start_color":"#121214","filter_end_color":"#f5f5f5"},"palette_colors":{"abyssal_black":"#121214","ash_dark":"#1e1e24","ember_orange":"#d84315","estus_gold":"#ffb300","sword_grey":"#546e7a","pure_white":"#f5f5f5","dim_ash":"#78909c"},"variables":{"bg_color":"abyssal_black","bg_window":"ash_dark","text_color":"pure_white","link_color":"ember_orange","text_dim":"dim_ash","border_color":"ember_orange","border_active":"estus_gold","accent_color":"ember_orange","shadow_color":"abyssal_black","accent_secondary":"estus_gold","accent_tertiary":"sword_grey","accent_quaternary":"dim_ash","cube":"pure_white","cube_hover":"ember_orange","resume_job_role":"ember_orange","resume_job_company":"estus_gold","resume_job_meta":"dim_ash","resume_skill_bg":"ash_dark","resume_skill_text":"pure_white","resume_badge_bg":"ember_orange","resume_badge_text":"abyssal_black","filter_start_color":"abyssal_black","filter_end_color":"pure_white"}},{"id":"disturbing_the_peace","name":"Disturbing The Peace","colors":{"bg_color":"#0a0a0c","bg_window":"#16161c","text_color":"#ffffff","link_color":"#e60012","text_dim":"#6e6e78","border_color":"#e60012","border_active":"#ffe600","accent_color":"#e60012","shadow_color":"#0a0a0c","accent_secondary":"#ffe600","accent_tertiary":"#ffffff","accent_quaternary":"#6e6e78","cube":"#ffffff","cube_hover":"#e60012","resume_job_role":"#e60012","resume_job_company":"#ffe600","resume_job_meta":"#6e6e78","resume_skill_bg":"#e60012","resume_skill_text":"#ffffff","resume_badge_bg":"#ffe600","resume_badge_text":"#0a0a0c","filter_start_color":"#0a0a0c","filter_end_color":"#ffffff"},"palette_colors":{"underground_black":"#0a0a0c","rebel_panel":"#16161c","rebel_red":"#e60012","star_yellow":"#ffe600","comic_white":"#ffffff","shadow_grey":"#3a3a40","dim_slate":"#6e6e78"},"variables":{"bg_color":"underground_black","bg_window":"rebel_panel","text_color":"comic_white","link_color":"rebel_red","text_dim":"dim_slate","border_color":"rebel_red","border_active":"star_yellow","accent_color":"rebel_red","
41shadow_color":"underground_black","accent_secondary":"star_yellow","accent_tertiary":"comic_white","accent_quaternary":"dim_slate","cube":"comic_white","cube_hover":"rebel_red","resume_job_role":"rebel_red","resume_job_company":"star_yellow","resume_job_meta":"dim_slate","resume_skill_bg":"rebel_red","resume_skill_text":"comic_white","resume_badge_bg":"star_yellow","resume_badge_text":"underground_black","filter_start_color":"underground_black","filter_end_color":"comic_white"}},{"id":"iwasbornintheusa","name":"IWASBORNINTHEUSA","colors":{"bg_color":"#0c0714","bg_window":"#180f26","text_color":"#ffffff","link_color":"#00ffff","text_dim":"#5e3a8c","border_color":"#ff1493","border_active":"#00ffff","accent_color":"#ff1493","shadow_color":"#0c0714","accent_secondary":"#00ffff","accent_tertiary":"#ffe600","accent_quaternary":"#5e3a8c","cube":"#ffffff","cube_hover":"#ff1493","resume_job_role":"#ffe600","resume_job_company":"#00ffff","resume_job_meta":"#5e3a8c","resume_skill_bg":"#ff1493","resume_skill_text":"#ffffff","resume_badge_bg":"#00ffff","resume_badge_text":"#0c0714","filter_start_color":"#0c0714","filter_end_color":"#ffffff"},"palette_colors":{"midnight_horizon":"#0c0714","dusk_panel":"#180f26","neon_pink":"#ff1493","laser_cyan":"#00ffff","sunset_violet":"#7928ca","neon_yellow":"#ffe600","pure_white":"#ffffff","dim_purple":"#5e3a8c"},"variables":{"bg_color":"midnight_horizon","bg_window":"dusk_panel","text_color":"pure_white","link_color":"laser_cyan","text_dim":"dim_purple","border_color":"neon_pink","border_active":"laser_cyan","accent_color":"neon_pink","shadow_color":"midnight_horizon","accent_secondary":"laser_cyan","accent_tertiary":"neon_yellow","accent_quaternary":"dim_purple","cube":"pure_white","cube_hover":"neon_pink","resume_job_role":"neon_yellow","resume_job_company":"laser_cyan","resume_job_meta":"dim_purple","resume_skill_bg":"neon_pink","resume_skill_text":"pure_white","resume_badge_bg":"laser_cyan","resume_badge_text":"midnight_horizon","filter_start_color":"midnight_horizon","filter_end_color":"pure_white"}},{"id":"solarized_dark","name":"Solarized Dark","colors":{"bg_color":"#002b36","bg_window":"#073642","text_color":"#839496","link_color":"#268bd2","text_dim":"#586e75","border_color":"#586e75","border_active":"#2aa198","accent_color":"#b58900","shadow_color":"#002b36","accent_secondary":"#2aa198","accent_tertiary":"#859900","accent_quaternary":"#cb4b16","cube":"#839496","cube_hover":"#2aa198","resume_job_role":"#b58900","resume_job_company":"#268bd2","resume_job_meta":"#586e75","resume_skill_bg":"#073642","resume_skill_text":"#839496","resume_badge_bg":"#2aa198","resume_badge_text":"#002b36","filter_start_color":"#002b36","filter_end_color":"#839496"},"palette_colors":{"base03":"#002b36","base02":"#073642","base01":"#586e75","base00":"#657b83","base0":"#839496","base1":"#93a1a1","base2":"#eee8d5","base3":"#fdf6e3","yellow":"#b58900","orange":"#cb4b16","red":"#dc322f","magenta":"#d33682","violet":"#6c71c4","blue":"#268bd2","cyan":"#2aa198","green":"#859900"},"variables":{"bg_color":"base03","bg_window":"base02","text_color":"base0","link_color":"blue","text_dim":"base01","border_color":"base01","border_active":"cyan","accent_color":"yellow","shadow_color":"base03","accent_secondary":"cyan","accent_tertiary":"green","accent_quaternary":"orange","cube":"base0","cube_hover":"cyan","resume_job_role":"yellow","resume_job_company":"blue","resume_job_meta":"base01","resume_skill_bg":"base02","resume_skill_text":"base0","resume_badge_bg":"cyan","resume_badge_text":"base03","filter_start_color":"base03","filter_end_color":"base0"}},{"id":"solarized_light","name":"Solarized Light","colors":{"bg_color":"#fdf6e3","bg_window":"#eee8d5","text_color":"#657b83","link_color":"#268bd2","text_dim":"#93a1a1","border_color":"#93a1a1","border_active":"#268bd2","accent_color":"#cb4b16","shadow_color":"#93a1a1","accent_secondary":"#2aa198","accent_tertiary":"#859900","accent_quaternary":"#b58900","cube":"#657b83","cube_hover":"#268bd2","resume_job_role":"#cb4b16","resume_job_company":"#268bd2","resume_job_meta":"#93a1a1","resume_skill_bg":"#eee8d5","resume_skill_text":"#657b83","resume_badge_bg":"#268bd2","resume_badge_text":"#fdf6e3","filter_start_color":"#657b83","filter_end_color":"#fdf6e3"},"palette_colors":{"base3":"#fdf6e3","base2":"#eee8d5","base1":"#93a1a1","base0":"#839496","base00":"#657b83","base01":"#586e75","base02":"#073642","base03":"#002b36","yellow":"#b58900","orange":"#cb4b16","red":"#dc322f","magenta":"#d33682","violet":"#6c71c4","blue":"#268bd2","cyan":"#2aa198","green":"#859900"},"variables":{"bg_color":"base3","bg_window":"base2","text_color":"base00","link_color":"blue","text_dim":"base1","border_color":"base1","border_active":"blue","accent_color":"orange","shadow_color":"base1","accent_secondary":"cyan","accent_tertiary":"green","accent_quaternary":"yellow","cube":"base00","cube_hover":"blue","resume_job_role":"orange","resume_job_company":"blue","resume_job_meta":"base1","resume_skill_bg":"base2","resume_skill_text":"base00","resume_badge_bg":"blue","resume_badge_text":"base3","filter_start_color":"base00","filter_end_color":"base3"}},{"id":"nord_frost","name":"Arctic Frost","colors":{"bg_color":"#2e3440","bg_window":"#3b4252","text_color":"#eceff4","link_color":"#88c0d0","text_dim":"#a3b1c6","border_color":"#81a1c1","border_active":"#88c0d0","accent_color":"#88c0d0","shadow_color":"#2e3440","accent_secondary":"#a3be8c","accent_tertiary":"#ebcb8b","accent_quaternary":"#bf616a","cube":"#eceff4","cube_hover":"#88c0d0","resume_job_role":"#88c0d0","resume_job_company":"#a3be8c","resume_job_meta":"#a3b1c6","resume_skill_bg":"#434c5e","resume_skill_text":"#eceff4","resume_badge_bg":"#88c0d0","resume_badge_text":"#2e3440","filter_start_color":"#2e3440","filter_end_color":"#eceff4"},"palette_colors":{"polar_night0":"#2e3440","polar_night1":"#3b4252","polar_night2":"#434c5e","polar_night3":"#4c566a","snow_storm0":"#d8dee9","snow_storm1":"#e5e9f0","snow_storm2":"#eceff4","frost0":"#8fbcbb","frost1":"#88c0d0","frost2":"#81a1c1","frost3":"#5e81ac","aurora_red":"#bf616a","aurora_orange":"#d08770","aurora_yellow":"#ebcb8b","aurora_green":"#a3be8c","aurora_purple":"#b48ead","frost_dim":"#a3b1c6"},"variables":{"bg_color":"polar_night0","bg_window":"polar_night1","text_color":"snow_storm2","link_color":"frost1","text_dim":"frost_dim","border_color":"frost2","border_active":"frost1","accent_color":"frost1","shadow_color":"polar_night0","accent_secondary":"aurora_green","accent_tertiary":"aurora_yellow","accent_quaternary":"aurora_red","cube":"snow_storm2","cube_hover":"frost1","resume_job_role":"frost1","resume_job_company":"aurora_green","resume_job_meta":"frost_dim","resume_skill_bg":"polar_night2","resume_skill_text":"snow_storm2","resume_badge_bg":"frost1","resume_badge_text":"polar_night0","filter_start_color":"polar_night0","filter_end_color":"snow_storm2"}},{"id":"catppuccin_mocha","name":"Catppuccin Mocha","colors":{"bg_color":"#1e1e2e","bg_window":"#181825","text_color":"#cdd6f4","link_color":"#89b4fa","text_dim":"#a6adc8","border_color":"#cba6f7","border_active":"#89b4fa","accent_color":"#cba6f7","shadow_color":"#11111b","accent_secondary":"#a6e3a1","accent_tertiary":"#fab387","accent_quaternary":"#f9e2af","cube":"#cdd6f4","cube_hover":"#89b4fa","resume_job_role":"#cba6f7","resume_job_company":"#89b4fa","resume_job_meta":"#a6adc8","resume_skill_bg":"#313244","resume_skill_text":"#cdd6f4","resume_badge_bg":"#cba6f7","resume_badge_text":"#11111b","filter_start_color":"#11111b","filter_end_color":"#cdd6f4"}
41,"palette_colors":{"mocha_base":"#1e1e2e","mocha_mantle":"#181825","mocha_crust":"#11111b","mocha_surface":"#313244","mocha_text":"#cdd6f4","mocha_subtext":"#a6adc8","mocha_mauve":"#cba6f7","mocha_pink":"#f5c2e7","mocha_red":"#f38ba8","mocha_peach":"#fab387","mocha_yellow":"#f9e2af","mocha_green":"#a6e3a1","mocha_teal":"#94e2d5","mocha_sapphire":"#74c7ec","mocha_blue":"#89b4fa","mocha_lavender":"#b4befe"},"variables":{"bg_color":"mocha_base","bg_window":"mocha_mantle","text_color":"mocha_text","link_color":"mocha_blue","text_dim":"mocha_subtext","border_color":"mocha_mauve","border_active":"mocha_blue","accent_color":"mocha_mauve","shadow_color":"mocha_crust","accent_secondary":"mocha_green","accent_tertiary":"mocha_peach","accent_quaternary":"mocha_yellow","cube":"mocha_text","cube_hover":"mocha_blue","resume_job_role":"mocha_mauve","resume_job_company":"mocha_blue","resume_job_meta":"mocha_subtext","resume_skill_bg":"mocha_surface","resume_skill_text":"mocha_text","resume_badge_bg":"mocha_mauve","resume_badge_text":"mocha_crust","filter_start_color":"mocha_crust","filter_end_color":"mocha_text"}},{"id":"vampire_count","name":"Vampire Count","colors":{"bg_color":"#282a36","bg_window":"#44475a","text_color":"#f8f8f2","link_color":"#8be9fd","text_dim":"#6272a4","border_color":"#bd93f9","border_active":"#ff79c6","accent_color":"#ff79c6","shadow_color":"#282a36","accent_secondary":"#50fa7b","accent_tertiary":"#ffb86c","accent_quaternary":"#f1fa8c","cube":"#f8f8f2","cube_hover":"#8be9fd","resume_job_role":"#bd93f9","resume_job_company":"#50fa7b","resume_job_meta":"#6272a4","resume_skill_bg":"#44475a","resume_skill_text":"#f8f8f2","resume_badge_bg":"#ff79c6","resume_badge_text":"#282a36","filter_start_color":"#282a36","filter_end_color":"#f8f8f2"},"palette_colors":{"drac_bg":"#282a36","drac_current":"#44475a","drac_fg":"#f8f8f2","drac_comment":"#6272a4","drac_cyan":"#8be9fd","drac_green":"#50fa7b","drac_orange":"#ffb86c","drac_pink":"#ff79c6","drac_purple":"#bd93f9","drac_red":"#ff5555","drac_yellow":"#f1fa8c"},"variables":{"bg_color":"drac_bg","bg_window":"drac_current","text_color":"drac_fg","link_color":"drac_cyan","text_dim":"drac_comment","border_color":"drac_purple","border_active":"drac_pink","accent_color":"drac_pink","shadow_color":"drac_bg","accent_secondary":"drac_green","accent_tertiary":"drac_orange","accent_quaternary":"drac_yellow","cube":"drac_fg","cube_hover":"drac_cyan","resume_job_role":"drac_purple","resume_job_company":"drac_green","resume_job_meta":"drac_comment","resume_skill_bg":"drac_current","resume_skill_text":"drac_fg","resume_badge_bg":"drac_pink","resume_badge_text":"drac_bg","filter_start_color":"drac_bg","filter_end_color":"drac_fg"}},{"id":"retro_groove","name":"Retro Groove","colors":{"bg_color":"#282828","bg_window":"#3c3836","text_color":"#ebdbb2","link_color":"#83a598","text_dim":"#a89984","border_color":"#fabd2f","border_active":"#8ec07c","accent_color":"#fe8019","shadow_color":"#282828","accent_secondary":"#b8bb26","accent_tertiary":"#fabd2f","accent_quaternary":"#d3869b","cube":"#ebdbb2","cube_hover":"#8ec07c","resume_job_role":"#fabd2f","resume_job_company":"#83a598","resume_job_meta":"#a89984","resume_skill_bg":"#3c3836","resume_skill_text":"#ebdbb2","resume_badge_bg":"#fe8019","resume_badge_text":"#282828","filter_start_color":"#282828","filter_end_color":"#ebdbb2"},"palette_colors":{"dark0":"#282828","dark1":"#3c3836","dark2":"#504945","light1":"#ebdbb2","light4":"#a89984","red":"#fb4934","green":"#b8bb26","yellow":"#fabd2f","blue":"#83a598","purple":"#d3869b","aqua":"#8ec07c","orange":"#fe8019"},"variables":{"bg_color":"dark0","bg_window":"dark1","text_color":"light1","link_color":"blue","text_dim":"light4","border_color":"yellow","border_active":"aqua","accent_color":"orange","shadow_color":"dark0","accent_secondary":"green","accent_tertiary":"yellow","accent_quaternary":"purple","cube":"light1","cube_hover":"aqua","resume_job_role":"yellow","resume_job_company":"blue","resume_job_meta":"light4","resume_skill_bg":"dark1","resume_skill_text":"light1","resume_badge_bg":"orange","resume_badge_text":"dark0","filter_start_color":"dark0","filter_end_color":"light1"}},{"id":"tokyo_midnight","name":"Tokyo Midnight","colors":{"bg_color":"#1a1b26","bg_window":"#24283b","text_color":"#c0caf5","link_color":"#7dcfff","text_dim":"#565f89","border_color":"#7aa2f7","border_active":"#7dcfff","accent_color":"#bb9af7","shadow_color":"#1a1b26","accent_secondary":"#73daca","accent_tertiary":"#ff9e64","accent_quaternary":"#e0af68","cube":"#c0caf5","cube_hover":"#7dcfff","resume_job_role":"#bb9af7","resume_job_company":"#7aa2f7","resume_job_meta":"#565f89","resume_skill_bg":"#24283b","resume_skill_text":"#c0caf5","resume_badge_bg":"#bb9af7","resume_badge_text":"#1a1b26","filter_start_color":"#1a1b26","filter_end_color":"#c0caf5"},"palette_colors":{"tokyo_bg":"#1a1b26","tokyo_storm":"#24283b","tokyo_fg":"#c0caf5","tokyo_dim":"#565f89","tokyo_blue":"#7aa2f7","tokyo_cyan":"#7dcfff","tokyo_green":"#73daca","tokyo_magenta":"#bb9af7","tokyo_orange":"#ff9e64","tokyo_red":"#f7768e","tokyo_yellow":"#e0af68"},"variables":{"bg_color":"tokyo_bg","bg_window":"tokyo_storm","text_color":"tokyo_fg","link_color":"tokyo_cyan","text_dim":"tokyo_dim","border_color":"tokyo_blue","border_active":"tokyo_cyan","accent_color":"tokyo_magenta","shadow_color":"tokyo_bg","accent_secondary":"tokyo_green","accent_tertiary":"tokyo_orange","accent_quaternary":"tokyo_yellow","cube":"tokyo_fg","cube_hover":"tokyo_cyan","resume_job_role":"tokyo_magenta","resume_job_company":"tokyo_blue","resume_job_meta":"tokyo_dim","resume_skill_bg":"tokyo_storm","resume_skill_text":"tokyo_fg","resume_badge_bg":"tokyo_magenta","resume_badge_text":"tokyo_bg","filter_start_color":"tokyo_bg","filter_end_color":"tokyo_fg"}}
41,{"id":"dawnbringer_16","name":"DawnBringer 16","colors":{"bg_color":"#140c1c","bg_window":"#30346d","text_color":"#deeed6","link_color":"#6dc2ca","text_dim":"#8595a1","border_color":"#597dce","border_active":"#6dc2ca","accent_color":"#dad45e","shadow_color":"#140c1c","accent_secondary":"#6daa2c","accent_tertiary":"#d04648","accent_quaternary":"#d27d2c","cube":"#deeed6","cube_hover":"#6dc2ca","resume_job_role":"#dad45e","resume_job_company":"#6daa2c","resume_job_meta":"#8595a1","resume_skill_bg":"#30346d","resume_skill_text":"#deeed6","resume_badge_bg":"#d04648","resume_badge_text":"#deeed6","filter_start_color":"#140c1c","filter_end_color":"#deeed6"},"palette_colors":{"void_black":"#140c1c","plum_dark":"#442434","midnight_indigo":"#30346d","dark_grey":"#4e4a4e","rust_brown":"#854c30","forest_green":"#346524","coral_red":"#d04648","muted_gold":"#757161","periwinkle":"#597dce","amber_orange":"#d27d2c","slate_light":"#8595a1","lime_green":"#6daa2c","desert_sand":"#d2aa99","glacier_cyan":"#6dc2ca","pale_yellow":"#dad45e","off_white":"#deeed6"},"variables":{"bg_color":"void_black","bg_window":"midnight_indigo","text_color":"off_white","link_color":"glacier_cyan","text_dim":"slate_light","border_color":"periwinkle","border_active":"glacier_cyan","accent_color":"pale_yellow","shadow_color":"void_black","accent_secondary":"lime_green","accent_tertiary":"coral_red","accent_quaternary":"amber_orange","cube":"off_white","cube_hover":"glacier_cyan","resume_job_role":"pale_yellow","resume_job_company":"lime_green","resume_job_meta":"slate_light","resume_skill_bg":"midnight_indigo","resume_skill_text":"off_white","resume_badge_bg":"coral_red","resume_badge_text":"off_white","filter_start_color":"void_black","filter_end_color":"off_white"}},{"id":"endesga_32","name":"Endesga 32","colors":{"bg_color":"#0d080d","bg_window":"#1f1624","text_color":"#eef4f4","link_color":"#73a7c4","text_dim":"#756c7d","border_color":"#7f4e82","border_active":"#73a7c4","accent_color":"#edd666","shadow_color":"#0d080d","accent_secondary":"#4fb377","accent_tertiary":"#f05b5b","accent_quaternary":"#756c7d","cube":"#eef4f4","cube_hover":"#73a7c4","resume_job_role":"#edd666","resume_job_company":"#4fb377","resume_job_meta":"#756c7d","resume_skill_bg":"#7f4e82","resume_skill_text":"#eef4f4","resume_badge_bg":"#f05b5b","resume_badge_text":"#eef4f4","filter_start_color":"#0d080d","filter_end_color":"#eef4f4"},"palette_colors":{"edg_void":"#0d080d","edg_shadow":"#1f1624","edg_text":"#eef4f4","edg_dim":"#756c7d","edg_coral":"#f05b5b","edg_blue":"#73a7c4","edg_foliage":"#4fb377","edg_sun":"#edd666","edg_purple":"#7f4e82","edg_marine":"#2b4f6e"},"variables":{"bg_color":"edg_void","bg_window":"edg_shadow","text_color":"edg_text","link_color":"edg_blue","text_dim":"edg_dim","border_color":"edg_purple","border_active":"edg_blue","accent_color":"edg_sun","shadow_color":"edg_void","accent_secondary":"edg_foliage","accent_tertiary":"edg_coral","accent_quaternary":"edg_dim","cube":"edg_text","cube_hover":"edg_blue","resume_job_role":"edg_sun","resume_job_company":"edg_foliage","resume_job_meta":"edg_dim","resume_skill_bg":"edg_purple","resume_skill_text":"edg_text","resume_badge_bg":"edg_coral","resume_badge_text":"edg_text","filter_start_color":"edg_void","filter_end_color":"edg_text"}}];
42    window.SITE_JAMS = [{"id":"1dayjam_3","name":"1-DAY JAM #3","tagline":"The 24-hour Game Jam #3 Winner","link":"https://itch.io/jam/1-day-jam-3","start_date":"2026-09-04","end_date":"2026-09-07","submission_date":"2026-09-05","description":"1-DAY JAM #3 challenged game developers to complete a full game in under 24 hours around the theme 'FIRE'. Soulantern won 1st Place overall!","host":"","games":[{"subdomain":"soulantern","title":"Soulantern","ranking":"1st Place Winner!","rate_url":"https://itch.io/jam/1-day-jam-3/rate/4976157"}]},{"id":"procjam_2021","name":"PROCJAM 2021","tagline":"Procedural Generation Jam 2021","link":"https://itch.io/jam/procjam2021","start_date":"2021-12-02","end_date":"2021-12-12","submission_date":"2021-12-11","description":"A annual celebration of making things that make things! PROCJAM encourages procedural art, generative algorithms, and endless world building.","host":"","games":[{"subdomain":"mineshift","title":"Mineshift","ranking":"Jam Entry","rate_url":""}]},{"id":"soupjam_2026","name":"SOUPJAM 2026","tagline":"Collaborative fever-dream room exploration jam","link":"https://itch.io/jam/soupjam2026","start_date":"2026-03-01","end_date":"2026-07-01","submission_date":"2026-6-30","de
42scription":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","host":"","games":[{"subdomain":"soup","title":"Solo Oasis : Unlimited Places","ranking":"Jam Collaboration","rate_url":"https://itch.io/jam/soupjam2026/rate/4451070"}]},{"id":"trijam_346","name":"TRIJAM 346","tagline":"The 3-hour Game Jam #346","link":"https://itch.io/jam/trijam-346","start_date":"2025-11-14","end_date":"2025-11-17","submission_date":"2025-11-15","description":"A fast-paced 3-hour game jam where developers have a strict 3-hour development window to design and build a complete game around a secret theme.","host":"","games":[{"subdomain":"box-warp","title":"Box Warp","ranking":"Jam Submission","rate_url":""}]},{"id":"trijam_363","name":"TRIJAM 363","tagline":"The 3-hour Game Jam #363 Winner","link":"https://itch.io/jam/trijam-363","start_date":"2026-03-13","end_date":"2026-03-16","submission_date":"2026-03-16","description":"TRIJAM 363 challenged creators to complete a full game in under 3 hours of total production time. 'The Problem With Trolleys' won 1st Place overall!","host":"","games":[{"subdomain":"trolleys","title":"The Problem With Trolleys","ranking":"Winner!","rate_url":""}]}];
43  </script>
43
44  
45    
45<script src="./js/palette_engine.js"></script>
45
46  
47  
47<script>
48    if (window.PaletteEngine) {
49      PaletteEngine.initHead(window.SITE_PALETTES);
50    }
51  </script>
51
52  <link rel="stylesheet" href="./style.css">
53<link rel="stylesheet" href="./grayscale.min.css">
54</head>
55<body>
56  <div class="terminal-container" id="top">
57    <header class="terminal-header">
58      <div class="terminal-header-top">
59        <div class="header-left-container">
60          
61            <div id="header-cube-app" title="Spinning 3D Isometric Cube"></div>
62          
63        </div>
64        
65        <a href="./" class="terminal-logo-link" title="[ HOME ]" aria-label="[ HOME ]">
66          <div class="terminal-logo" role="img" aria-label="SOL.VIN Logo"></div>
67        </a>
68        <div class="header-right-controls">
69          <button id="hamburger-btn" class="hamburger-btn" type="button" aria-label="Toggle Menu" aria-expanded="false">
70            [ <span class="hamburger-icon">☰</span> MENU ]
71          </button>
72          <div id="header-menu-content" class="header-menu-content">
73            <div class="menu-window-header">[ MENU ]</div>
74            <button id="palette-swap-btn" class="palette-swap-btn" type="button" aria-label="Swap Color Palette" data-tooltip="Left-click: Next | Right-click: Prev | Left Hold: Palette Selection Menu | Right Hold: Reset Default">
75              [ PALETTE: <span id="palette-color-preview" class="palette-color-preview">●</span><span id="palette-name-label">Warm Paper</span> ]
76            </button>
77            
78              <div class="header-download-links">
79                
80                  
81                  
82                    <a href="./rss.xml" class="export-btn" title="[RSS FEED]" data-tooltip="[RSS FEED]">
83                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
84                    </a>
85                  
86                  
87                
88              </div>
89            
90          </div>
91        </div>
92      </div>
93      <div class="terminal-subtitle">
94        <span class="terminal-prompt">cat games</span>
95        <span class="header-build-info">
96          <span>SOL.VIN JOURNAL v1.51-prod</span>
97          <span title="[ BUILD TIME: 2026-10-06 22:27:24 UTC ]" data-tooltip="[ BUILD TIME: 2026-10-06 22:27:24 UTC ]" class="header-build-hash">[ MIBPO ]</span>
98        </span>
99      </div>
100    </header>
101    
102    <nav class="nav-bar-container">
103      <div class="nav-links">
104        
105          
106          
107          
108            <a href="./chains" class="nav-link" data-tooltip="[ CHAINS ]" aria-label="[ CHAINS ]">
109              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z"/></svg>
110              <span class="nav-link-label">[ CHAINS ]</span>
111            </a>
112          
113        
114          
115          
116          
117            <a href="./projects" class="nav-link" data-tooltip="[ PROJECTS ]" aria-label="[ PROJECTS ]">
118              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z"/></svg>
119              <span class="nav-link-label">[ PROJECTS ]</span>
120            </a>
121          
122        
123          
124          
125          
126            <span class="nav-link nav-link-disabled" data-tooltip="[ GAMES ]" aria-label="[ GAMES ]">
127              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
128              <span class="nav-link-label">[ GAMES ]</span>
129            </span>
130          
131        
132          
133          
134          
135            <a href="./art" class="nav-link" data-tooltip="[ ART ]" aria-label="[ ART ]">
136              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/></svg>
137              <span class="nav-link-label">[ ART ]</span>
138            </a>
139          
140        
141          
142          
143          
144            <a href="./achievements" class="nav-link" data-tooltip="[ ACHIEVEMENTS ]" aria-label="[ ACHIEVEMENTS ]">
145              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg>
146              <span class="nav-link-label">[ ACHIEVEMENTS ]</span>
147            </a>
148          
149        
150          
151          
152          
153            <a href="./favorites" class="nav-link" data-tooltip="[ FAVORITES ]" aria-label="[ FAVORITES ]">
154              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
154<path fill="currentColor" d="M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z"/></svg>
155              <span class="nav-link-label">[ FAVORITES ]</span>
156            </a>
157          
158        
159          
160          
161          
162            <a href="./whoami" class="nav-link" data-tooltip="[ WHOAMI ]" aria-label="[ WHOAMI ]">
163              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z"/></svg>
164              <span class="nav-link-label">[ WHOAMI ]</span>
165            </a>
166          
167        
168          
169          
170          
171            <a href="./status" class="nav-link" data-tooltip="[ STATUS ]" aria-label="[ STATUS ]">
172              <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"/></svg>
173              <span class="nav-link-label">[ STATUS ]</span>
174            </a>
175          
176        
177      </div>
178      
179      
180        <div class="breadcrumbs-bar">
181          <a href="./" class="nav-link">[ HOME ]</a> <span style="color: var(--text-dim);">&gt;</span> <span class="nav-link nav-link-disabled">[ GAMES ]</span>
182        </div>
183      
184    </nav>
185    
186    
187    
188    <main>
189      <!-- src/templates/games.ecr -->
190
191<div class="projects-container">
192  <div class="terminal-window games-intro-window">
193    <div class="window-header">
194      <h1 class="window-title"><span class="window-header-icon"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg></span>GAMES // Godot &amp; Indie // Interactive Showcase</h1>
195      <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
195<path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
196    </div>
197    <div class="window-body">
198      <p class="games-intro-text">
199        A collection of standalone 3D and 2D games, game jam projects, procedural worlds, and interactive web experiences created over the years. Jump in and play directly in your browser or download for desktop.
200      </p>
201    </div>
202  </div>
203
204  
205    <div class="projects-grid games-grid">
206      
207        
208        <div class="terminal-window project-card game-card-flex">
209          <div>
210            <div class="window-header">
211              <h2 class="window-title game-title-trunc">
212                [ Soulantern ]
213              </h2>
214              <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
214<path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
215            </div>
216
217            <div class="window-body">
218              
219              
220                <div class="photo-carousel-container game-carousel-container" data-disable-embeds="true" data-palette-filter="true" data-gui-layout="default">
221  <div class="gallery-main-frame">
222    <img class="carousel-main-img" src="/images/soulantern/1.png" alt="Soulantern Artwork" loading="lazy" data-palette-filter="true">
223    <button type="button" class="export-btn carousel-prev-btn carousel-overlay-control carousel-prev-btn-sm" title="Previous Media (Left Arrow)">
224      [ ◄ ]
225    </button>
226    <button type="button" class="export-btn carousel-play-btn carousel-overlay-control carousel-play-btn-sm" title="Toggle Automatic Slideshow (Spacebar)">
227      [ ⏵ PLAY ]
228    </button>
229    <button type="button" class="export-btn carousel-next-btn carousel-overlay-control carousel-next-btn-sm" title="Next Media (Right Arrow)">
230      [ ► ]
231    </button>
232    <div class="export-btn carousel-counter carousel-overlay-control carousel-counter-sm">
233      [ 1 / 2 ]
234    </div>
235    <button type="button" class="export-btn carousel-thumbs-btn carousel-overlay-control carousel-thumbs-btn-sm" title="Open Media Gallery Grid">
236      [ GALLERY ]
237    </button>
238  </div>
239
240  <div class="gallery-thumbs">
241    <img src="/images/soulantern/1.png" data-full-src="/images/soulantern/1.png" data-media-type="image" data-youtube-id="" alt="Media 1" class="carousel-thumb active-thumb" loading="lazy" data-palette-filter="true">
242    <img src="/images/soulantern/2.png" data-full-src="/images/soulantern/2.png" data-media-type="image" data-youtube-id="" alt="Media 2" class="carousel-thumb" loading="lazy" data-palette-filter="true">
243  </div>
244</div>
245              
246
247              
248                
249                
250                
251                <div class="game-jam-tags-row">
252                  <span class="skill-tag skill-tag-jam jam-tooltip-trigger jam-modal-trigger" data-jam="1-DAY JAM #3" data-tooltip="1-DAY JAM #3 challenged game developers to complete a full game in under 24 hours around the theme &#39;FIRE&#39;. Soulantern won 1st Place overall!">
253                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
253<path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg>
254                    1-DAY JAM #3 [1st Place (Winner)]
255                  </span>
256                  
257                    <span class="skill-tag skill-tag-sm skill-tag-dim">
258                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z"/></svg>
259                      2026-09-07
260                    </span>
261                  
262                </div>
263              
264
265              <p class="game-card-desc">
266                [1DAYJAM #3 WINNER] High-speed first-person precision platformer propelled by lantern recoil momentum and aerial dashes.
267              </p>
268
269              <div class="game-download-section-box" style="margin-bottom: 0.85rem; padding: 0.65rem 0.75rem; border: 1px dashed var(--border-color); background: var(--bg-window); border-radius: 2px; max-width: 100%; box-sizing: border-box; overflow: hidden;">
270  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.35rem;">
271    <div style="font-size: 0.8rem; font-weight: bold; color: var(--accent-color); text-transform: uppercase; letter-spacing: 0.5px;">Download &amp; Play</div>
272    <a href="https://soulantern.sol.vin" class="view-detail-btn" style="font-size: 0.8rem; font-weight: bold; color: var(--accent-secondary); text-decoration: none; white-space: nowrap;" title="View Soulantern Page">[ VIEW PAGE → ]</a>
273  </div>
274
275  <div style="margin-bottom: 0.5rem;">
276    <div style="font-size: 0.75rem; color: var(--text-dim); margin-bottom: 0.25rem;">Browser Play:</div>
277    <button type="button" class="export-btn game-player-trigger" data-game-url="https://soulantern.sol.vin/shell.html" data-game-title="Soulantern" data-game-orientation="landscape" style="font-size: 0.75rem; padding: 0.35rem 0.6rem; display: flex; width: 100%; box-sizing: border-box; align-items: center; gap: 0.35rem; font-weight: bold; cursor: pointer;" title="Play Soulantern in Browser">
278      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
279      <span>[ PLAY IN BROWSER ]</span>
280    </button>
281  </div>
282  <div style="margin-bottom: 0.5rem;">
283    <div style="font-size: 0.75rem; color: var(--text-dim); margin-bottom: 0.25rem;">Executables:</div>
284    <div style="display: flex; flex-direction: column; gap: 0.4rem; width: 100%;">
285<div class="export-btn download-btn-medium" style="display: flex; align-items: center; justify-content: space-between; gap: 0.35rem 0.5rem; padding: 0.4rem 0.65rem; width: 100%; box-sizing: border-box;">
286  <a href="https://soulantern.sol.vin/downloads/web.zip" download="web.zip" title="Download Web (ZIP) (web.zip) - 46.9 MB" class="download-l
286ink-main" style="display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit; min-width: 0;">
287    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z"/></svg>
288    <span style="font-weight: bold; word-break: break-word;">Web (ZIP)</span>
289  </a>
290  <div class="download-meta-group" style="display: inline-flex; align-items: center; gap: 0.35rem; margin-left: auto; flex-shrink: 0;">
291    <span class="skill-tag download-size-badge" style="font-size: 0.75rem; margin: 0; flex-shrink: 0;">46.9 MB</span>
292    <span class="skill-tag md5-chip" title="MD5 Hash: e1a298dce2eb0e02113b387a6cfa40a9 (Click to copy)" onclick="navigator.clipboard.writeText('e1a298dce2eb0e02113b387a6cfa40a9'); alert('MD5 Checksum copied to clipboard:\ne1a298dce2eb0e02113b387a6cfa40a9');" style="font-size: 0.75rem; margin: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0;">
293      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"/></svg>
294      <span>e1a298d</span>
295    </span>
296  </div>
297</div>
298    </div>
299  </div>
300  <div style="margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px dashed var(--border-color);">
301<div class="whoami-widget-container">
302  <a href="https://sol-vin.itch.io/soulantern" target="_blank" class="export-btn export-btn-sm article-widget-link widget-itch" data-widget-layout="badge" data-desktop-layout="badge" data-widget-image="/images/soulantern/1.png" data-widget-image-side="left" data-itch-user="sol-vin" data-itch-game="soulantern" data-itch-price="Free"><span class="article-link-header"><span class="article-link-brand-icon" style="-webkit-mask-image: url('/icons/itch-io.svg'); mask-image: url('/icons/itch-io.svg');"></span><span class="article-link-text">[ ITCH.IO ]</span></span></a>
303  <a href="https://github.com/sol-vin/1dayjam3" target="_blank" class="export-btn exp
303ort-btn-sm article-widget-link widget-github" data-widget-layout="badge" data-desktop-layout="badge" data-widget-image="/images/soulantern/1.png" data-widget-image-side="left" data-github-repo="sol-vin/1dayjam3"><span class="article-link-header"><span class="article-link-brand-icon" style="-webkit-mask-image: url('/icons/github.svg'); mask-image: url('/icons/github.svg');"></span><span class="article-link-text">[ GITHUB ]</span></span></a>
304</div>
305  </div>
306</div>
307
308
309              <div class="game-section-divider">
310                <div class="game-section-label">[ ENGINE & RELEASE ]</div>
311                <div class="game-tags-row">
312                  <span class="skill-tag skill-tag-sm">
313                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
314                    Engine: Godot 4.3
315                  </span>
316                  
317                    <span class="skill-tag skill-tag-sm skill-tag-accent">
318                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>
319                      Release: latest
320                    </span>
321                  
322                </div>
323              </div>
324
325              
326                <div class="game-section-divider-dotted">
327                  <div class="game-section-label">[ SKILLS & TECH ]</div>
328                  <div class="skill-tags game-skills-row">
329  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
330  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
330<path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
331  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="3d_modeling" data-tooltip="3D Modeling: Creating 3D polygonal models, retro low-poly assets, and environmental art for games."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z"/></svg>3D Modeling</span>
332  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="shaders" data-tooltip="Shaders: GPU shader programming for custom visual effects, post-processing, and material lighting."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>Shaders</span>
333  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="aseprite" data-tooltip="Aseprite: Animated sprite editor and pixel art tool for game development and 2D assets."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/></svg>Aseprite</span>
334</div>
335                </div>
336              
337            </div>
338          </div>
339        </div>
340      
341        
342        <div class="terminal-window project-card game-card-flex">
343          <div>
344            <div class="window-header">
345              <h2 class="window-title game-title-trunc">
346                [ Solo Oasis : Unlimited Places ]
347              </h2>
348              <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
348<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
349            </div>
350
351            <div class="window-body">
352              
353              
354                <div class="photo-carousel-container game-carousel-container" data-disable-embeds="true" data-palette-filter="true" data-gui-layout="default">
355  <div class="gallery-main-frame">
356    <img class="carousel-main-img" src="/images/soup/1.png" alt="Solo Oasis : Unlimited Places Artwork" loading="lazy" data-palette-filter="true">
357    <button type="button" class="export-btn carousel-prev-btn carousel-overlay-control carousel-prev-btn-sm" title="Previous Media (Left Arrow)">
358      [ ◄ ]
359    </button>
360    <button type="button" class="export-btn carousel-play-btn carousel-overlay-control carousel-play-btn-sm" title="Toggle Automatic Slideshow (Spacebar)">
361      [ ⏵ PLAY ]
362    </button>
363    <button type="button" class="export-btn carousel-next-btn carousel-overlay-control carousel-next-btn-sm" title="Next Media (Right Arrow)">
364      [ ► ]
365    </button>
366    <div class="export-btn carousel-counter carousel-overlay-control carousel-counter-sm">
367      [ 1 / 9 ]
368    </div>
369    <button type="button" class="export-btn carousel-thumbs-btn carousel-overlay-control carousel-thumbs-btn-sm" title="Open Media Gallery Grid">
370      [ GALLERY ]
371    </button>
372  </div>
373
374  <div class="gallery-thumbs">
375    <img src="/images/soup/1.png" data-full-src="/images/soup/1.png" data-media-type="image" data-youtube-id="" alt="Media 1" class="carousel-thumb active-thumb" loading="lazy" data-palette-filter="true">
376    <img src="/images/soup/2.png" data-full-src="/images/soup/2.png" data-media-type="image" data-youtube-id="" alt="Media 2" class="carousel-thumb" loading="lazy" data-palette-filter="true">
377    <img src="/images/soup/3.png" data-full-src="/images/soup/3.png" data-media-type="image" data-youtube-id="" alt="Media 3" class="carousel-thumb" loading="lazy" data-palette-filter="true">
378    <img src="/images/soup/4.png" data-full-src="/images/soup/4.png" data-media-type="image" data-youtube-id="" alt="Media 4" class="carousel-thumb" loading="lazy" data-palette-filter="true">
379    <img src="/images/soup/5.png" data-full-src="/images/soup/5.png" data-media-type="image" data-youtube-id="" alt="Media 5" class="carousel-thumb" loading="lazy" data-palette-filter="true">
380    <img src="/images/soup/6.png" data-full-src="/images/soup/6.png" data-media-type="image" data-youtube-id="" alt="Media 6" class="carousel-thumb" loading="lazy" data-palette-filter="true">
381    <img src="/images/soup/7.png" data-full-src="/images/soup/7.png" data-media-type="image" data-youtube-id="" alt="Media 7" class="carousel-thumb" loading="lazy" data-palette-filter="true">
382    <img src="/images/soup/8.png" data-full-src="/images/soup/8.png" data-media-type="image" data-youtube-id="" alt="Media 8" class="carousel-thumb" loading="lazy" data-palette-filter="true">
383    <img src="/images/soup/9.png" data-full-src="/images/soup/9.png" data-media-type="image" data-youtube-id="" alt="Media 9" class="carousel-thumb" loading="lazy" data-palette-filter="true">
384  </div>
385</div>
386              
387
388              
389                
390                
391                
392                <div class="game-jam-tags-row">
393                  <span class="skill-tag skill-tag-jam jam-tooltip-trigger jam-modal-trigger" data-jam="SOUPJAM 2026" data-tooltip="A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.">
394                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg>
395                    SOUPJAM 2026
396                  </span>
397                  
398                    <span class="skill-tag skill-tag-sm skill-tag-dim">
399                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z"/></svg>
400                      2026-07-01
401                    </span>
402                  
403                </div>
404              
405
406              <p class="game-card-desc">
407                A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.
408              </p>
409
410              <div class="game-download-section-box" style="margin-bottom: 0.85rem; padding: 0.65rem 0.75rem; border: 1px dashed var(--border-color); background: var(--bg-window); border-radius: 2px; max-width: 100%; box-sizing: border-box; overflow: hidden;">
411  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.35rem;">
412    <div style="font-size: 0.8rem; font-weight: bold; color: var(--accent-color); text-transform: uppercase; letter-spacing: 0.5px;">Download &amp; Play</div>
413    <a href="https://soup.sol.vin" class="view-detail-btn" style="font-size: 0.8rem; font-weight: bold; color: var(--accent-secondary); text-decoration: none; white-space: nowrap;" title="View Solo Oasis : Unlimited Places Page">[ VIEW PAGE → ]</a>
414  </div>
415
416  <div style="margin-bottom: 0.5rem;">
417    <div style="font-size: 0.75rem; color: var(--text-dim); margin-bottom: 0.25rem;">Browser Play:</div>
418    <button type="button" class="export-btn game-player-trigger" data-game-url="https://soup.sol.vin/shell.html" data-game-title="Solo Oasis : Unlimited Places" data-game-orientation="landscape" style="font-size: 0.75rem; padding: 0.35rem 0.6rem; display: flex; width: 100%; box-sizing: border-box; align-items: center; gap: 0.35rem; font-weight: bold; cursor: pointer;" title="Play Solo Oasis : Unlimited Places in Browser">
419      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
420      <span>[ PLAY IN BROWSER ]</span>
421    </button>
422  </div>
423  <div style="margin-bottom: 0.5rem;">
424    <div style="font-size: 0.75rem; color: var(--text-dim); margin-bottom: 0.25rem;">Executables:</div>
425    <div style="display: flex; flex-direction: column; gap: 0.4rem; width: 100%;">
426<div class="export-btn download-btn-medium" style="display: flex; align-items: center; justify-content: space-between; gap: 0.35rem 0.5rem; padding: 0.4rem 0.65rem; width: 100%; box-sizing: border-box;">
427  <a href="https://soup.sol.vin/downloads/web.zip" download="web.zip" title="Download Web (ZIP) (web.zip) - 270.1 MB" class="download-link-main" style="display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit; min-width: 0;">
428    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z"/></svg>
429    <span style="font-weight: bold; word-break: break-word;">Web (ZIP)</span>
430  </a>
431  <div class="download-meta-group" style="display: inline-flex; align-items: center; gap: 0.35rem; margin-left: auto; flex-shrink: 0;">
432    <span class="skill-tag download-size-badge" style="font-size: 0.75rem; margin: 0; flex-shrink: 0;">270.1 MB</span>
433    <span class="skill-tag md5-chip" title="MD5 Hash: f1c81b983b5ffa88557096174c85972e (Click to copy)" onclick="navigator.clipboard.writeText('f1c81b983b5ffa88557096174c85972e'); alert('MD5 Checksum copied to clipboard:\nf1c81b983b5ffa88557096174c85972e');" style="font-size: 0.75rem; margin: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0;">
434      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"/></svg>
435      <span>f1c81b9</span>
436    </span>
437  </div>
438</div>
439<div class="export-btn download-btn-medium" style="display: flex; align-items: center; justify-content: space-between; gap: 0.35rem 0.5rem; padding: 0.4rem 0.65rem; width: 100%; box-sizing: border-box;">
440  <a href="https://soup.sol.vin/downloads/windows.exe" download="windows.exe" title="Download Windows (windows.exe) - 372.9 MB" class="download-link-main" style="display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit; min-width: 0;">
441    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 93.7l183.6-25.3 0 177.4-183.6 0 0-152.1zM0 418.3l183.6 25.3 0-175.2-183.6 0 0 149.9zm203.8 28l244.2 33.7 0-211.6-244.2 0 0 177.9zm0-380.6l0 180.1 244.2 0 0-213.8-244.2 33.7z"/></svg>
442    <span style="font-weight: bold; word-break: break-word;">Windows</span>
443  </a>
444  <div class="download-meta-group" style="display: inline-flex; align-items: center; gap: 0.35rem; margin-left: auto; flex-shrink: 0;">
445    <span class="skill-tag download-size-badge" style="font-size: 0.75rem; margin: 0; flex-shrink: 0;">372.9 MB</span>
446    <span class="skill-tag md5-chip" title="MD5 Hash: 1f624282af298a26722d457bb3a3e901 (Click to copy)" onclick="navigator.clipboard.writeText('1f624282af298a26722d457bb3a3e901'); alert('MD5 Checksum copied to clipboard:\n1f624282af298a26722d457bb3a3e901');" style="font-size: 0.75rem; margin: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0;">
447      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"/></svg>
448      <span>1f62428</span>
449    </span>
450  </div>
451</div>
452<div class="export-btn download-btn-medium" style="display: flex; align-items: center; justify-content: space-between; gap: 0.35rem 0.5rem; padding: 0.4rem 0.65rem; width: 100%; box-sizing: border-box;">
453  <a href="https://soup.sol.vin/downloads/linux.x86_64" download="linux.x86_64" title="Download Linux (linux.x86_64) - 334.3 MB" class="download-link-main" style="display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit; min-width: 0;">
454    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
454<path fill="currentColor" d="M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"/></svg>
455    <span style="font-weight: bold; word-break: break-word;">Linux</span>
456  </a>
457  <div class="download-meta-group" style="display: inline-flex; align-items: center; gap: 0.35rem; margin-left: auto; flex-shrink: 0;">
458    <span class="skill-tag download-size-badge" style="font-size: 0.75rem; margin: 0; flex-shrink: 0;">334.3 MB</span>
459    <span class="skill-tag md5-chip" title="MD5 Hash: 7f7e2b66de69efbd608f856e440f323f (Click to copy)" onclick="navigator.clipboard.writeText('7f7e2b66de69efbd608f856e440f323f'); alert('MD5 Checksum copied to clipboard:\n7f7e2b66de69efbd608f856e440f323f');" style="font-size: 0.75rem; margin: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0;">
460      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
460<path fill="currentColor" d="M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"/></svg>
461      <span>7f7e2b6</span>
462    </span>
463  </div>
464</div>
465<div class="export-btn download-btn-medium" style="display: flex; align-items: center; justify-content: space-between; gap: 0.35rem 0.5rem; padding: 0.4rem 0.65rem; width: 100%; box-sizing: border-box;">
466  <a href="https://soup.sol.vin/downloads/android.apk" download="android.apk" title="Download Android (android.apk) - 568.2 MB" class="download-link-main" style="display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit; min-width: 0;">
467    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M420.5 253.9a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-265.1 0a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm273.7-96.5l47.9-83c.8-1.1 1.3-2.4 1.5-3.8s.2-2.7-.1-4.1-.9-2.6-1.7-3.7-1.8-2-3-2.7-2.5-1.1-3.9-1.3-2.7 0-4 .4-2.5 1.1-3.6 1.9-1.9 2-2.5 3.2l-48.5 84.1c-38.8-17.4-80.8-26.4-123.3-26.4s-84.5 9-123.3 26.4L116.2 64.4c-.6-1.2-1.5-2.3-2.5-3.2s-2.3-1.5-3.6-1.9-2.7-.5-4-.4-2.7 .6-3.9 1.3-2.2 1.6-3 2.7-1.4 2.4-1.7 3.7-.3 2.7-.1 4.1 .8 2.6 1.5 3.8l47.9 83C64.5 202.2 8.2 285.5 0 384l576 0c-8.2-98.5-64.5-181.8-146.9-226.6z"/></svg>
468    <span style="font-weight: bold; word-break: break-word;">Android</span>
469  </a>
470  <div class="download-meta-group" style="display: inline-flex; align-items: center; gap: 0.35rem; margin-left: auto; flex-shrink: 0;">
471    <span class="skill-tag download-size-badge" style="font-size: 0.75rem; margin: 0; flex-shrink: 0;">568.2 MB</span>
472    <span class="skill-tag md5-chip" title="MD5 Hash: a6c129b2bb325a82ed6845360f9e3daa (Click to copy)" onclick="navigator.clipboard.writeText('a6c129b2bb325a82ed6845360f9e3daa'); alert('MD5 Checksum copied to clipboard:\na6c129b2bb325a82ed6845360f9e3daa');" style="font-size: 0.75rem; margin: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.25rem; flex-shrink: 0;">
473      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"/></svg>
474      <span>a6c129b</span>
475    </span>
476  </div>
477</div>
478    </div>
479  </div>
480  <div style="margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px dashed var(--border-color);">
481<div class="whoami-widget-container">
482  <a href="https://store.steampowered.com/app/4903000/Solo_Oasis__Unlimited_Places/" target="_blank" class="export-btn export-btn-sm article-widget-link widget-steam" data-widget-layout="badge" data-desktop-layout="badge" data-widget-image="/images/soup/1.png" data-widget-image-side="left" data-steam-appid="4903000"><span class="article-link-header"><span class="article-link-brand-icon" style="-webkit-mask-image: url('/icons/steam-symbol.svg'); mask-image: url('/icons/steam-symbol.svg');"></span><span class="article-link-text">[ STEAM ]</span></span></a>
483  <a href="https://sol-vin.itch.io/soup" target="_blank" class="export-btn export-btn-sm article-widget-link widget-itch" data-widget-layout="badge" data-desktop-layout="badge" data-widget-image="/images/soup/1.png" data-widget-image-side="left" data-itch-user="sol-vin" data-itch-game="soup" data-itch-price="Free" data-itch-rating="5.0"><span class="article-link-header"><span class="article-link-brand-icon" style="-webkit-mask-image: url('/icons/itch-io.svg'); mask-image: url('/icons/itch-io.svg');"></span><span class="article-link-text">[ ITCH.IO ]</span></span></a>
484</div>
485  </div>
486</div>
487
488
489              <div class="game-section-divider">
490                <div class="game-section-label">[ ENGINE & RELEASE ]</div>
491                <div class="game-tags-row">
492                  <span class="skill-tag skill-tag-sm">
493                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
494                    Engine: Godot 4.3
495                  </span>
496                  
497                    <span class="skill-tag skill-tag-sm skill-tag-accent">
498                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>
499                      Release: nightly
500                    </span>
501                  
502                </div>
503              </div>
504
505              
506                <div class="game-section-divider-dotted">
507                  <div class="game-section-label">[ SKILLS & TECH ]</div>
508                  <div class="skill-tags game-skills-row">
509  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l
5090 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
510  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
511  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="blender" data-tooltip="Blender: Open-source 3D creation suite for low-poly modeling, UV unwrapping, rigging, and animation."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z"/></svg>Blender</span>
512  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="aseprite" data-tooltip="Aseprite: Animated sprite editor and pixel art tool for game development and 2D assets."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/></svg>Aseprite</span>
513  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="sunvox" data-tooltip="SunVox: Small, fast, and powerful modular synthesizer and pattern-based tracker for music composition."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z"/></svg>SunVox</span>
514  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="shaders" data-tooltip="Shaders: GPU shader programming for custom visual effects, post-processing, and material lighting."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
514<path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>Shaders</span>
515  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="3d_modeling" data-tooltip="3D Modeling: Creating 3D polygonal models, retro low-poly assets, and environmental art for games."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z"/></svg>3D Modeling</span>
516  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="audacity" data-tooltip="Audacity: Open-source multi-track audio editor and recorder for sound editing, filtering, and effect processing."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M288 0c15.5 0 28.8 11.1 31.5 26.4l47.4 265.5 33.5-201.1c2.5-15 15.1-26.1 30.3-26.7s28.6 9.5 32.3 24.2L505 256 528 256c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0c-14.7 0-27.5-10-31-24.2L438.3 253 399.6 485.3c-2.6 15.4-15.8 26.6-31.4 26.7s-29-11-31.7-26.4L288 214 239.5 485.6c-2.7 15.3-16.1 26.5-31.7 26.4s-28.8-11.4-31.4-26.7L137.7 253 127 295.8C123.5 310 110.7 320 96 320l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32L71 256 113 88.2c3.7-14.7 17.2-24.8 32.3-24.2s27.8 11.8 30.3 26.7l33.5 201.1 47.4-265.5C259.2 11.1 272.5 0 288 0z"/></svg>Audacity</span>
517</div>
518                </div>
519              
520            </div>
521          </div>
522        </div>
523      
524        
525        <div class="terminal-window project-card game-card-flex">
526          <div>
527            <div class="window-header">
528              <h2 class="window-title game-title-trunc">
529                [ The Problem With Trolleys ]
530              </h2>
531              <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
531<path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
532            </div>
533
534            <div class="window-body">
535              
536              
537                <div class="photo-carousel-container game-carousel-container" data-disable-embeds="true" data-palette-filter="true" data-gui-layout="default">
538  <div class="gallery-main-frame">
539    <img class="carousel-main-img" src="/images/the_problem_with_trolleys/1.png" alt="The Problem With Trolleys Artwork" loading="lazy" data-palette-filter="true">
540  </div>
541
542  <div class="gallery-thumbs">
543    <img src="/images/the_problem_with_trolleys/1.png" data-full-src="/images/the_problem_with_trolleys/1.png" data-media-type="image" data-youtube-id="" alt="Media 1" class="carousel-thumb active-thumb" loading="lazy" data-palette-filter="true">
544  </div>
545</div>
546              
547
548              
549                
550                
551                
552                <div class="game-jam-tags-row">
553                  <span class="skill-tag skill-tag-jam jam-tooltip-trigger jam-modal-trigger" data-jam="TRIJAM 363" data-tooltip="TRIJAM 363 challenged creators to complete a full game in under 3 hours of total production time. &#39;The Problem With Trolleys&#39; won 1st Place overall!">
554                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg>
555                    TRIJAM 363 [1st Place (Winner)]
556                  </span>
557                  
558                    <span class="skill-tag skill-tag-sm skill-tag-dim">
559                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z"/></svg>
560                      2026-03-16
561                    </span>
562                  
563                </div>
564              
565
566              <p class="game-card-desc">
567                [TRIJAM 363 WINNER] A short 3hr game jam puzzle game about managing trolley switches without crashing trains.
568              </p>
569
570              <div class="game-download-section-box" style="margin-bottom: 0.85rem; padding: 0.65rem 0.75rem; border: 1px dashed var(--border-color); background: var(--bg-window); border-radius: 2px; max-width: 100%; box-sizing: border-box; overflow: hidden;">
571  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.35rem;">
572    <div style="font-size: 0.8rem; font-weight: bold; color: var(--accent-color); text-transform: uppercase; letter-spacing: 0.5px;">Play Game</div>
573    <a href="https://trolleys.sol.vin" class="view-detail-btn" style="font-size: 0.8rem; font-weight: bold; color: var(--accent-secondary); text-decoration: none; white-space: nowrap;" title="View The Problem With Trolleys Page">[ VIEW PAGE → ]</a>
574  </div>
575
576  <div style="display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.5rem;">
577    <a href="https://sol-vin.itch.io/the-problem-with-trolleys" target="_blank" class="export-btn" style="font-size: 0.75rem; padding: 0.35rem 0.6rem; display: flex; width: 100%; box-sizing: border-box; align-items: center; gap: 0.35rem; font-weight: bold; text-decoration: none;" title="Play The Problem With Trolleys on Itch.io">
578      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z"/></svg>
579      <span>[ PLAY ON ITCH ↗ ]</span>
580    </a>
581  </div>
582</div>
583
584
585              <div class="game-section-divider">
586                <div class="game-section-label">[ ENGINE & RELEASE ]</div>
587                <div class="game-tags-row">
588                  <span class="skill-tag skill-tag-sm">
589                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
589<path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
590                    Engine: Godot 4
591                  </span>
592                  
593                </div>
594              </div>
595
596              
597                <div class="game-section-divider-dotted">
598                  <div class="game-section-label">[ SKILLS & TECH ]</div>
599                  <div class="skill-tags game-skills-row">
600  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
601  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
602  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="audacity" data-tooltip="Audacity: Open-source multi-track audio editor and recorder for sound editing, filtering, and effect processing."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M288 0c15.5 0 28.8 11.1 31.5 26.4l47.4 265.5 33.5-201.1c2.5-15 15.1-26.1 30.3-26.7s28.6 9.5 32.3 24.2L505 256 528 256c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0c-14.7 0-27.5-10-31-24.2L438.3 253 399.6 485.3c-2.6 15.4-15.8 26.6-31.4 26.7s-29-11-31.7-26.4L288 214 239.5 485.6c-2.7 15.3-16.1 26.5-31.7 26.4s-28.8-11.4-31.4-26.7L137.7 253 127 295.8C123.5 310 110.7 320 96 320l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32L71 256 113 88.2c3.7-14.7 17.2-24.8 32.3-24.2s27.8 11.8 30.3 26.7l33.5 201.1 47.4-265.5C259.2 11.1 272.5 0 288 0z"/></svg>Audacity</span>
603  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="shaders" data-tooltip="Shaders: GPU shader programming for custom visual effects, post-processing, and material lighting."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
603<path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>Shaders</span>
604</div>
605                </div>
606              
607            </div>
608          </div>
609        </div>
610      
611        
612        <div class="terminal-window project-card game-card-flex">
613          <div>
614            <div class="window-header">
615              <h2 class="window-title game-title-trunc">
616                [ BOX WARP ]
617              </h2>
618              <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
618<path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
619            </div>
620
621            <div class="window-body">
622              
623              
624                <div class="photo-carousel-container game-carousel-container" data-disable-embeds="true" data-palette-filter="true" data-gui-layout="default">
625  <div class="gallery-main-frame">
626    <img class="carousel-main-img" src="/images/box_warp/1.png" alt="BOX WARP Artwork" loading="lazy" data-palette-filter="true">
627  </div>
628
629  <div class="gallery-thumbs">
630    <img src="/images/box_warp/1.png" data-full-src="/images/box_warp/1.png" data-media-type="image" data-youtube-id="" alt="Media 1" class="carousel-thumb active-thumb" loading="lazy" data-palette-filter="true">
631  </div>
632</div>
633              
634
635              
636                
637                
638                
639                <div class="game-jam-tags-row">
640                  <span class="skill-tag skill-tag-jam jam-tooltip-trigger jam-modal-trigger" data-jam="TRIJAM 346" data-tooltip="A fast-paced 3-hour game jam where developers have a strict 3-hour development window to design and build a complete game around a secret theme.">
641                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg>
642                    TRIJAM 346
643                  </span>
644                  
645                    <span class="skill-tag skill-tag-sm skill-tag-dim">
646                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z"/></svg>
647                      2025-11-17
648                    </span>
649                  
650                </div>
651              
652
653              <p class="game-card-desc">
654                [TRIJAM 346] A box warping puzzle game made in 3 hours for TRIJAM 346.
655              </p>
656
657              <div class="game-download-section-box" style="margin-bottom: 0.85rem; padding: 0.65rem 0.75rem; border: 1px dashed var(--border-color); background: var(--bg-window); border-radius: 2px; max-width: 100%; box-sizing: border-box; overflow: hidden;">
658  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.35rem;">
659    <div style="font-size: 0.8rem; font-weight: bold; color: var(--accent-color); text-transform: uppercase; letter-spacing: 0.5px;">Play Game</div>
660    <a href="https://box-warp.sol.vin" class="view-detail-btn" style="font-size: 0.8rem; font-weight: bold; color: var(--accent-secondary); text-decoration: none; white-space: nowrap;" title="View BOX WARP Page">[ VIEW PAGE → ]</a>
661  </div>
662
663  <div style="display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.5rem;">
664    <a href="https://sol-vin.itch.io/box-warp" target="_blank" class="export-btn" style="font-size: 0.75rem; padding: 0.35rem 0.6rem; display: flex; width: 100%; box-sizing: border-box; align-items: center; gap: 0.35rem; font-weight: bold; text-decoration: none;" title="Play BOX WARP on Itch.io">
665      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
665<path fill="currentColor" d="M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z"/></svg>
666      <span>[ PLAY ON ITCH ↗ ]</span>
667    </a>
668  </div>
669</div>
670
671
672              <div class="game-section-divider">
673                <div class="game-section-label">[ ENGINE & RELEASE ]</div>
674                <div class="game-tags-row">
675                  <span class="skill-tag skill-tag-sm">
676                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
677                    Engine: Godot 4
678                  </span>
679                  
680                </div>
681              </div>
682
683              
684                <div class="game-section-divider-dotted">
685                  <div class="game-section-label">[ SKILLS & TECH ]</div>
686                  <div class="skill-tags game-skills-row">
687  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
688  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
688<path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
689  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="trenchbroom" data-tooltip="TrenchBroom: Cross-platform level editor for Quake-style engine maps and 3D level design."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z"/></svg>
689TrenchBroom</span>
690  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="gdshader" data-tooltip="GDShader: Godot Engine&#39;s custom shading language for 2D and 3D visual effects, materials, and post-processing."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>GDShader</span>
691  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="shaders" data-tooltip="Shaders: GPU shader programming for custom visual effects, post-processing, and material lighting."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>Shaders</span>
692</div>
693                </div>
694              
695            </div>
696          </div>
697        </div>
698      
699        
700        <div class="terminal-window project-card game-card-flex">
701          <div>
702            <div class="window-header">
703              <h2 class="window-title game-title-trunc">
704                [ Liminalita ]
705              </h2>
706              <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
706<path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
707            </div>
708
709            <div class="window-body">
710              
711              
712                <div class="photo-carousel-container game-carousel-container" data-disable-embeds="true" data-palette-filter="true" data-gui-layout="default">
713  <div class="gallery-main-frame">
714    <img class="carousel-main-img" src="/images/liminalita/1.png" alt="Liminalita Artwork" loading="lazy" data-palette-filter="true">
715    <button type="button" class="export-btn carousel-prev-btn carousel-overlay-control carousel-prev-btn-sm" title="Previous Media (Left Arrow)">
716      [ ◄ ]
717    </button>
718    <button type="button" class="export-btn carousel-play-btn carousel-overlay-control carousel-play-btn-sm" title="Toggle Automatic Slideshow (Spacebar)">
719      [ ⏵ PLAY ]
720    </button>
721    <button type="button" class="export-btn carousel-next-btn carousel-overlay-control carousel-next-btn-sm" title="Next Media (Right Arrow)">
722      [ ► ]
723    </button>
724    <div class="export-btn carousel-counter carousel-overlay-control carousel-counter-sm">
725      [ 1 / 37 ]
726    </div>
727    <button type="button" class="export-btn carousel-thumbs-btn carousel-overlay-control carousel-thumbs-btn-sm" title="Open Media Gallery Grid">
728      [ GALLERY ]
729    </button>
730  </div>
731
732  <div class="gallery-thumbs">
733    <img src="/images/liminalita/1.png" data-full-src="/images/liminalita/1.png" data-media-type="image" data-youtube-id="" alt="Media 1" class="carousel-thumb active-thumb" loading="lazy" data-palette-filter="true">
734    <img src="/images/liminalita/2.png" data-full-src="/images/liminalita/2.png" data-media-type="image" data-youtube-id="" alt="Media 2" class="carousel-thumb" loading="lazy" data-palette-filter="true">
735    <img src="/images/liminalita/3.png" data-full-src="/images/liminalita/3.png" data-media-type="image" data-youtube-id="" alt="Media 3" class="carousel-thumb" loading="lazy" data-palette-filter="true">
736    <img src="/images/liminalita/4.png" data-full-src="/images/liminalita/4.png" data-media-type="image" data-youtube-id="" alt="Media 4" class="carousel-thumb" loading="lazy" data-palette-filter="true">
737    <img src="/images/liminalita/5.png" data-full-src="/images/liminalita/5.png" data-media-type="image" data-youtube-id="" alt="Media 5" class="carousel-thumb" loading="lazy" data-palette-filter="true">
738    <img src="/images/liminalita/6.png" data-full-src="/images/liminalita/6.png" data-media-type="image" data-youtube-id="" alt="Media 6" class="carousel-thumb" loading="lazy" data-palette-filter="true">
739    <img src="/images/liminalita/7.png" data-full-src="/images/liminalita/7.png" data-media-type="image" data-youtube-id="" alt="Media 7" class="carousel-thumb" loading="lazy" data-palette-filter="true">
740    <img src="/images/liminalita/8.png" data-full-src="/images/liminalita/8.png" data-media-type="image" data-youtube-id="" alt="Media 8" class="carousel-thumb" loading="lazy" data-palette-filter="true">
741    <img src="/images/liminalita/9.png" data-full-src="/images/liminalita/9.png" data-media-type="image" data-youtube-id="" alt="Media 9" class="carousel-thumb" loading="lazy" data-palette-filter="true">
742    <img src="/images/liminalita/10.png" data-full-src="/images/liminalita/10.png" data-media-type="image" data-youtube-id="" alt="Media 10" class="carousel-thumb" loading="lazy" data-palette-filter="true">
743    <img src="/images/liminalita/11.png" data-full-src="/images/liminalita/11.png" data-media-type="image" data-youtube-id="" alt="Media 11" class="carousel-thumb" loading="lazy" data-palette-filter="true">
744    <img src="/images/liminalita/12.png" data-full-src="/images/liminalita/12.png" data-media-type="image" data-youtube-id="" alt="Media 12" class="carousel-thumb" loading="lazy" data-palette-filter="true">
745    <img src="/images/liminalita/13.png" data-full-src="/images/liminalita/13.png" data-media-type="image" data-youtube-id="" alt="Media 13" class="carousel-thumb" loading="lazy" data-palette-filter="true">
746    <img src="https://img.youtube.com/vi/5NB-XjMA6Pg/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=5NB-XjMA6Pg" data-media-type="youtube" data-youtube-id="5NB-XjMA6Pg" alt="Media 14" class="carousel-thumb" loading="lazy" data-palette-filter="true">
747    <img src="https://img.youtube.com/vi/ApsTpa-IXMQ/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=ApsTpa-IXMQ" data-media-type="youtube" data-youtube-id="ApsTpa-IXMQ" alt="Media 15" class="carousel-thumb" loading="lazy" data-palette-filter="true">
748    <img src="https://img.youtube.com/vi/g681TH3ctlg/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=g681TH3ctlg" data-media-type="youtube" data-youtube-id="g681TH3ctlg" alt="Media 16" class="carousel-thumb" loading="lazy" data-palette-filter="true">
749    <img src="https://img.youtube.com/vi/GOlyNeGQYb4/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=GOlyNeGQYb4" data-media-type="youtube" data-youtube-id="GOlyNeGQYb4" alt="Media 17" class="carousel-thumb" loading="lazy" data-palette-filter="true">
750    <img src="https://img.youtube.com/vi/jmQugQFjZmY/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=jmQugQFjZmY" data-media-type="youtube" data-youtube-id="jmQugQFjZmY" alt="Media 18" class="carousel-thumb" loading="lazy" data-palette-filter="true">
751    <img src="https://img.youtube.com/vi/88Z4ufvvxrA/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=88Z4ufvvxrA" data-media-type="youtube" data-youtube-id="88Z4ufvvxrA" alt="Media 19" class="carousel-thumb" loading="lazy" data-palette-filter="true">
752    <img src="https://img.youtube.com/vi/X8PoxI2wDek/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=X8PoxI2wDek" data-media-type="youtube" data-youtube-id="X8PoxI2wDek" alt="Media 20" class="carousel-thumb" loading="lazy" data-palette-filter="true">
753    <img src="https://img.youtube.com/vi/FeBjtVH9qaM/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=FeBjtVH9qaM" data-media-type="youtube" data-youtube-id="FeBjtVH9qaM" alt="Media 21" class="carousel-thumb" loading="lazy" data-palette-filter="true">
754    <img src="https://img.youtube.com/vi/oKF8msqsqZ4/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=oKF8msqsqZ4" data-media-type="youtube" data-youtube-id="oKF8msqsqZ4" alt="Media 22" class="carousel-thumb" loading="lazy" data-palette-filter="true">
755    <img src="https://img.youtube.com/vi/cvVKYR0mlRI/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=cvVKYR0mlRI" data-media-type="youtube" data-youtube-id="cvVKYR0mlRI" alt="Media 23" class="carousel-thumb" loading="lazy" data-palette-filter="true">
756    <img src="https://img.youtube.com/vi/sCooSSp-1TE/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=sCooSSp-1TE" data-media-type="youtube" data-youtube-id="sCooSSp-1TE" alt="Media 24" class="carousel-thumb" loading="lazy" data-palette-filter="true">
757    <img src="https://img.youtube.com/vi/d-t7kVGExGM/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=d-t7kVGExGM" data-media-type="youtube" data-youtube-id="d-t7kVGExGM" alt="Media 25" class="carousel-thumb" loading="lazy" data-palette-filter="true">
758    <img src="https://img.youtube.com/vi/OcXGsYlBh0c/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=OcXGsYlBh0c" data-media-type="youtube" data-youtube-id="OcXGsYlBh0c" alt="Media 26" class="carousel-thumb" loading="lazy" data-palette-filter="true">
759    <img src="https://img.youtube.com/vi/fhRynnN_rRk/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=fhRynnN_rRk" data-media-type="youtube" data-youtube-id="fhRynnN_rRk" alt="Media 27" class="carousel-thumb" loading="lazy" data-palette-filter="true">
760    <img src="https://img.youtube.com/vi/25sK9jO4R50/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=25sK9jO4R50" data-media-type="youtube" data-youtube-id="25sK9jO4R50" alt="Media 28" class="carousel-thumb" loading="lazy" data-palette-filter="true">
761    <img src="https://img.youtube.com/vi/onpfwqXzSnU/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=onpfwqXzSnU" data-media-type="youtube" data-youtube-id="onpfwqXzSnU" alt="Media 29" class="carousel-thumb" loading="lazy" data-palette-filter="true">
762    <img src="https://img.youtube.com/vi/kDRGDKqaBUo/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=kDRGDKqaBUo" data-media-type="youtube" data-youtube-id="kDRGDKqaBUo" alt="Media 30" class="carousel-thumb" loading="lazy" data-palette-filter="true">
763    <img src="https://img.youtube.com/vi/qUMzk8f-ld4/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=qUMzk8f-ld4" data-media-type="youtube" data-youtube-id="qUMzk8f-ld4" alt="Media 31" class="carousel-thumb" loading="lazy" data-palette-filter="true">
764    <img src="https://img.youtube.com/vi/MMhUz0uwT90/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=MMhUz0uwT90" data-media-type="youtube" data-youtube-id="MMhUz0uwT90" alt="Media 32" class="carousel-thumb" loading="lazy" data-palette-filter="true">
765    <img src="https://img.youtube.com/vi/pveZG3cT5is/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=pveZG3cT5is" data-media-type="youtube" data-youtube-id="pveZG3cT5is" alt="Media 33" class="carousel-thumb" loading="lazy" data-palette-filter="true">
766    <img src="https://img.youtube.com/vi/TVlATEQh32A/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=TVlATEQh32A" data-media-type="youtube" data-youtube-id="TVlATEQh32A" alt="Media 34" class="carousel-thumb" loading="lazy" data-palette-filter="true">
767    <img src="https://img.youtube.com/vi/fZw-i0nP204/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=fZw-i0nP204" data-media-type="youtube" data-youtube-id="fZw-i0nP204" alt="Media 35" class="carousel-thumb" loading="lazy" data-palette-filter="true">
768    <img src="https://img.youtube.com/vi/TB_CctjpQic/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=TB_CctjpQic" data-media-type="youtube" data-youtube-id="TB_CctjpQic" alt="Media 36" class="carousel-thumb" loading="lazy" data-palette-filter="true">
769    <img src="https://img.youtube.com/vi/-S9kwfAzhvE/hqdefault.jpg" data-full-src="https://www.youtube.com/watch?v=-S9kwfAzhvE" data-media-type="youtube" data-youtube-id="-S9kwfAzhvE" alt="Media 37" class="carousel-thumb" loading="lazy" data-palette-filter="true">
770  </div>
771</div>
772              
773
774              
775
776              <p class="game-card-desc">
777                (IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.
778              </p>
779
780              <div class="game-download-section-box" style="margin-bottom: 0.85rem; padding: 0.65rem 0.75rem; border: 1px dashed var(--border-color); background: var(--bg-window); border-radius: 2px; max-width: 100%; box-sizing: border-box; overflow: hidden;">
781  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.35rem;">
782    <div style="font-size: 0.8rem; font-weight: bold; color: var(--accent-color); text-transform: uppercase; letter-spacing: 0.5px;">Play Game</div>
783    <a href="https://liminalita.sol.vin" class="view-detail-btn" style="font-size: 0.8rem; font-weight: bold; color: var(--accent-secondary); text-decoration: none; white-space: nowrap;" title="View Liminalita Page">[ VIEW PAGE → ]</a>
784  </div>
785
786  <div style="display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.5rem;">
787    <a href="https://sol-vin.itch.io/liminalita" target="_blank" class="export-btn" style="font-size: 0.75rem; padding: 0.35rem 0.6rem; display: flex; width: 100%; box-sizing: border-box; align-items: center; gap: 0.35rem; font-weight: bold; text-decoration: none;" title="Play Liminalita on Itch.io">
788      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
788<path fill="currentColor" d="M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z"/></svg>
789      <span>[ PLAY ON ITCH ↗ ]</span>
790    </a>
791  </div>
792</div>
793
794
795              <div class="game-section-divider">
796                <div class="game-section-label">[ ENGINE & RELEASE ]</div>
797                <div class="game-tags-row">
798                  <span class="skill-tag skill-tag-sm">
799                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
800                    Engine: Godot 4
801                  </span>
802                  
803                </div>
804              </div>
805
806              
807                <div class="game-section-divider-dotted">
808                  <div class="game-section-label">[ SKILLS & TECH ]</div>
809                  <div class="skill-tags game-skills-row">
810  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
811  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="godot_4" data-tooltip="Godot 4: Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
811<path fill="currentColor" d="M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"/></svg>Godot 4</span>
812  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="gdshader" data-tooltip="GDShader: Godot Engine&#39;s custom shading language for 2D and 3D visual effects, materials, and post-processing."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>GDShader</span>
813  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="shaders" data-tooltip="Shaders: GPU shader programming for custom visual effects, post-processing, and material lighting."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z"/></svg>Shaders</span>
814  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="trenchbroom" data-tooltip="TrenchBroom: Cross-platform level editor for Quake-style engine maps and 3D level design."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z"/></svg>
814TrenchBroom</span>
815  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="sunvox" data-tooltip="SunVox: Small, fast, and powerful modular synthesizer and pattern-based tracker for music composition."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z"/></svg>SunVox</span>
816  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="gltf" data-tooltip="glTF: Khronos Group specification for efficient transmission and loading of 3D scenes and models."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z"/></svg>glTF</span>
817  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="low_poly_3d_modeling" data-tooltip="Low Poly 3D Modelling: Creating retro-styled, low-polygon 3D models and environmental assets optimized for game engines."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z"/></svg>Low Poly 3D Modelling</span>
818  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="generative_art" data-tooltip="Generative Art: Algorithmic generation of visual artwork, procedural textures, vector SVG patterns, and game graphics."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/></svg>Generative Art</span>
819</div>
820                </div>
821              
822            </div>
823          </div>
824        </div>
825      
826        
827        <div class="terminal-window project-card game-card-flex">
828          <div>
829            <div class="window-header">
830              <h2 class="window-title game-title-trunc">
831                [ Mineshift ]
832              </h2>
833              <div class="window-controls"><span class="window-btn window-btn-min minimize-btn" title="Minimize" data-tooltip="Minimize" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
833<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span><span class="window-btn window-btn-close close-btn" title="Close" data-tooltip="Close" ><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span></div>
834            </div>
835
836            <div class="window-body">
837              
838              
839                <div class="photo-carousel-container game-carousel-container" data-disable-embeds="true" data-palette-filter="true" data-gui-layout="default">
840  <div class="gallery-main-frame">
841    <img class="carousel-main-img" src="/images/mineshift/1.png" alt="Mineshift Artwork" loading="lazy" data-palette-filter="true">
842    <button type="button" class="export-btn carousel-prev-btn carousel-overlay-control carousel-prev-btn-sm" title="Previous Media (Left Arrow)">
843      [ ◄ ]
844    </button>
845    <button type="button" class="export-btn carousel-play-btn carousel-overlay-control carousel-play-btn-sm" title="Toggle Automatic Slideshow (Spacebar)">
846      [ ⏵ PLAY ]
847    </button>
848    <button type="button" class="export-btn carousel-next-btn carousel-overlay-control carousel-next-btn-sm" title="Next Media (Right Arrow)">
849      [ ► ]
850    </button>
851    <div class="export-btn carousel-counter carousel-overlay-control carousel-counter-sm">
852      [ 1 / 5 ]
853    </div>
854    <button type="button" class="export-btn carousel-thumbs-btn carousel-overlay-control carousel-thumbs-btn-sm" title="Open Media Gallery Grid">
855      [ GALLERY ]
856    </button>
857  </div>
858
859  <div class="gallery-thumbs">
860    <img src="/images/mineshift/1.png" data-full-src="/images/mineshift/1.png" data-media-type="image" data-youtube-id="" alt="Media 1" class="carousel-thumb active-thumb" loading="lazy" data-palette-filter="true">
861    <img src="/images/mineshift/2.png" data-full-src="/images/mineshift/2.png" data-media-type="image" data-youtube-id="" alt="Media 2" class="carousel-thumb" loading="lazy" data-palette-filter="true">
862    <img src="/images/mineshift/3.png" data-full-src="/images/mineshift/3.png" data-media-type="image" data-youtube-id="" alt="Media 3" class="carousel-thumb" loading="lazy" data-palette-filter="true">
863    <img src="/images/mineshift/4.png" data-full-src="/images/mineshift/4.png" data-media-type="image" data-youtube-id="" alt="Media 4" class="carousel-thumb" loading="lazy" data-palette-filter="true">
864    <img src="/images/mineshift/5.png" data-full-src="/images/mineshift/5.png" data-media-type="image" data-youtube-id="" alt="Media 5" class="carousel-thumb" loading="lazy" data-palette-filter="true">
865  </div>
866</div>
867              
868
869              
870                
871                
872                
873                <div class="game-jam-tags-row">
874                  <span class="skill-tag skill-tag-jam jam-tooltip-trigger jam-modal-trigger" data-jam="PROCJAM 2021" data-tooltip="A annual celebration of making things that make things! PROCJAM encourages procedural art, generative algorithms, and endless world building.">
875                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg>
876                    PROCJAM 2021
877                  </span>
878                  
879                    <span class="skill-tag skill-tag-sm skill-tag-dim">
880                      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z"/></svg>
881                      2021-12-12
882                    </span>
883                  
884                </div>
885              
886
887              <p class="game-card-desc">
888                [PROCJAM 2021] Scroll through an infinite generative chasm. Interactive procedural art made with Crystal and Raylib.
889              </p>
890
891              <div class="game-download-section-box" style="margin-bottom: 0.85rem; padding: 0.65rem 0.75rem; border: 1px dashed var(--border-color); background: var(--bg-window); border-radius: 2px; max-width: 100%; box-sizing: border-box; overflow: hidden;">
892  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; flex-wrap: wrap; gap: 0.35rem;">
893    <div style="font-size: 0.8rem; font-weight: bold; color: var(--accent-color); text-transform: uppercase; letter-spacing: 0.5px;">Play Game</div>
894    <a href="https://mineshift.sol.vin" class="view-detail-btn" style="font-size: 0.8rem; font-weight: bold; color: var(--accent-secondary); text-decoration: none; white-space: nowrap;" title="View Mineshift Page">[ VIEW PAGE → ]</a>
895  </div>
896
897  <div style="display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.5rem;">
898    <a href="https://sol-vin.itch.io/mineshift" target="_blank" class="export-btn" style="font-size: 0.75rem; padding: 0.35rem 0.6rem; display: flex; width: 100%; box-sizing: border-box; align-items: center; gap: 0.35rem; font-weight: bold; text-decoration: none;" title="Play Mineshift on Itch.io">
899      <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z"/></svg>
900      <span>[ PLAY ON ITCH ↗ ]</span>
901    </a>
902  </div>
903  <div style="margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px dashed var(--border-color);">
904<div class="whoami-widget-container">
905  <a href="https://github.com/sol-vin/mineshift" target="_blank" class="export-btn export-btn-sm article-widget-link widget-github" data-widget-layout="badge" data-desktop-layout="badge" data-widget-image="/images/mineshift/1.png" data-widget-image-side="left" data-github-repo="sol-vin/mineshift"><span class="article-link-header"><span class="article-link-brand-icon" style="-webkit-mask-image: url('/icons/github.svg'); mask-image: url('/icons/github.svg');"></span><span class="article-link-text">[ GITHUB ]</span></span></a>
906</div>
907  </div>
908</div>
909
910
911              <div class="game-section-divider">
912                <div class="game-section-label">[ ENGINE & RELEASE ]</div>
913                <div class="game-tags-row">
914                  <span class="skill-tag skill-tag-sm">
915                    <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>
916                    Engine: Crystal &amp; Raylib
917                  </span>
918                  
919                </div>
920              </div>
921
922              
923                <div class="game-section-divider-dotted">
924                  <div class="game-section-label">[ SKILLS & TECH ]</div>
925                  <div class="skill-tags game-skills-row">
926  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="crystal" data-tooltip="Crystal: A fast, compiled, statically typed language with Ruby-inspired syntax."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="currentColor" d="M126.887 81.203L80.895 126.86c-.184.184-.461.274-.645.184l-62.828-16.742c-.277-.094-.461-.278-.461-.461L.035 47.437c-.09-.273 0-.457.184-.64L46.215 1.14c.183-.184.46-.274.644-.184l62.825 16.742c.277.094.46.278.46.461l16.836 62.403c.184.273.09.457-.093.64zM65.254 31.516L3.53 47.895c-.094 0-.183.183-.094.277l45.168 44.832c.09.094.278.094.278-.09L65.437 31.61c.094 0-.09-.183-.183-.093zm0 0" fill-rule="evenodd"/></svg>Crystal</span>
927  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="raylib" data-tooltip="Raylib: A simple and easy-to-use C library to enjoy videogames programming."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg>Raylib</span>
928  <span class="skill-tag skill-tooltip-trigger skill-modal-trigger skill-tag-sm" data-skill="generative_art" data-tooltip="Generative Art: Algorithmic generation of visual artwork, procedural textures, vector SVG patterns, and game graphics."><svg class="skill-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
928<path fill="currentColor" d="M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/></svg>Generative Art</span>
929</div>
930                </div>
931              
932            </div>
933          </div>
934        </div>
935      
936    </div>
937  
938</div>
939
940    </main>
941    
942    <footer class="terminal-footer">
943      
944        <div class="footer-nav-container">
945          <div class="footer-nav-links">
946            
947              
948                
949                
950                
951                  <a href="./chains" class="nav-link">[ CHAINS ]</a>
952                
953              
954                
955                
956                
957                  <a href="./projects" class="nav-link">[ PROJECTS ]</a>
958                
959              
960                
961                
962                
963                  <span class="nav-link nav-link-disabled">[ GAMES ]</span>
964                
965              
966                
967                
968                
969                  <a href="./art" class="nav-link">[ ART ]</a>
970                
971              
972                
973                
974                
975                  <a href="./achievements" class="nav-link">[ ACHIEVEMENTS ]</a>
976                
977              
978                
979                
980                
981                  <a href="./favorites" class="nav-link">[ FAVORITES ]</a>
982                
983              
984                
985                
986                
987                  <a href="./whoami" class="nav-link">[ WHOAMI ]</a>
988                
989              
990                
991                
992                
993                  <a href="./status" class="nav-link">[ STATUS ]</a>
994                
995              
996            
997            <a href="#top" id="scroll-to-top-btn" class="nav-link scroll-to-top-btn" title="Back to top" aria-label="Back to top">[ ▲ ]</a>
998          </div>
999        </div>
1000      
1001      
1002      <div class="footer-logo-wrapper">
1003        <a href="./" class="terminal-logo-link" title="[ HOME ]" aria-label="[ HOME ]">
1004          <div class="terminal-logo" role="img" aria-label="SOL.VIN Logo"></div>
1005        </a>
1006      </div>
1007      <p>+---------------------------------------------------+</p>
1008      
1009        <p>&copy; 2026 Ian Rash - Built with Crystal &amp; Served with Nginx</p>
1010      
1011      <p>+---------------------------------------------------+</p>
1012    </footer>
1013  </div>
1014
1015  <div id="gui-image-modal" class="no-palette-filter no-monochrome" data-palette-filter="false" data-monochrome="false" role="dialog" aria-modal="true" aria-labelledby="image-viewer-title-text">
1016    <div class="terminal-window image-viewer-window" data-palette-filter="false" data-monochrome="false">
1017      <div class="window-header">
1018        <h1 class="window-title" id="image-viewer-title-text"><span class="window-header-icon" title="Image Viewer"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z"/></svg></span>VIEWER // Lightbox // Image Inspector: <span id="image-viewer-filename">image.png</span></h1>
1019        <div class="window-controls">
1020          <span id="image-viewer-min-btn" class="window-btn window-btn-min" title="Toggle Fit / Zoom"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1020<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span>
1021          <span id="image-viewer-max-btn" class="window-btn" title="Toggle Zoom"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span>
1022          <span id="image-viewer-close-btn" class="window-btn window-btn-close" title="Close Viewer"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1022<path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span>
1023        </div>
1024      </div>
1025      <div class="window-body image-viewer-body" data-palette-filter="false" data-monochrome="false">
1026        <img id="image-viewer-img" src="" alt="Image Viewer Preview" filter="0" data-filter="0" data-palette-filter="false" data-monochrome="false" class="no-palette-filter no-monochrome" />
1027      </div>
1028      <div class="image-viewer-caption">
1029        <span id="image-viewer-path">SOURCE: N/A</span>
1030        <span>[ CLICK IMAGE TO TOGGLE ZOOM | ESC TO CLOSE ]</span>
1031      </div>
1032    </div>
1033  </div>
1034
1035  <div id="palette-picker-modal-overlay" class="skill-modal-overlay" role="dialog" aria-modal="true" aria-labelledby="palette-picker-modal-title">
1036    <div class="terminal-window skill-modal-window palette-picker-window">
1037      <div class="window-header window-header-flex">
1038        <h1 id="palette-picker-modal-title" class="window-title palette-modal-title">
1039          <span class="window-header-icon" title="Theme Palette Selector"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/></svg></span>THEME // Palette Selector // Color Catalog
1040        </h1>
1041        <div class="window-controls">
1042          <button type="button" id="palette-picker-modal-close" class="window-btn window-btn-close" title="Close Catalog"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></button>
1043        </div>
1044      </div>
1045      <div class="window-body palette-modal-body">
1046        <div class="palette-modal-top-bar">
1047          <p class="palette-modal-text">Select a theme palette from the catalog below to instantly customize site appearance:</p>
1048          <button id="palette-picker-random-btn" type="button" class="export-btn export-btn-bold-sm" title="Pick Random Palette"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1048<path fill="currentColor" d="M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z"/></svg> [ RANDOM // Palette ]</button>
1049        </div>
1050        <div id="palette-picker-grid"></div>
1051      </div>
1052    </div>
1053  </div>
1054
1055  <div id="skill-modal-overlay" class="skill-modal-overlay" role="dialog" aria-modal="true" aria-labelledby="skill-modal-title">
1056    <div class="terminal-window skill-modal-window">
1057      <div class="window-header">
1058        <h1 id="skill-modal-title" class="window-title"><span id="skill-modal-icon" class="window-header-icon skill-modal-icon"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z"/></svg></span><span id="skill-modal-title-text">SKILL // Specification // Technical Details</span></h1>
1059        <div class="window-controls">
1060          <span id="skill-modal-close-btn" class="window-btn skill-modal-close window-btn-close" title="Close Window"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span>
1061        </div>
1062      </div>
1063      <div class="window-body">
1064        <div class="skill-modal-meta">
1065          <div><strong>Category:</strong> <span id="skill-modal-category"></span></div>
1066          <div id="skill-modal-exp-wrap"><strong>Experience:</strong> <span id="skill-modal-exp"></span></div>
1067          <div id="skill-modal-started-wrap"><strong>Started:</strong> <span id="skill-modal-started"></span></div>
1068          <div id="skill-modal-links-wrap">
1069            <strong>Links:</strong>
1070            <span id="skill-modal-links"></span>
1071          </div>
1072        </div>
1073        <div class="skill-modal-short-desc" id="skill-modal-short-desc"></div>
1074        <div class="skill-modal-long-desc" id="skill-modal-long-desc"></div>
1075        
1076        <div id="skill-modal-projects-section" class="skill-modal-section">
1077          <h2 class="modal-section-h2">[ MATCHING PROJECTS (<span id="skill-modal-projects-count">0</span>) ]</h2>
1078          <div id="skill-modal-projects-list" class="skill-modal-projects-grid"></div>
1079        </div>
1080
1081        <div id="skill-modal-games-section" class="skill-modal-section">
1082          <h2 class="modal-section-h2">[ MATCHING GAMES (<span id="skill-modal-games-count">0</span>) ]</h2>
1083          <div id="skill-modal-games-list" class="skill-modal-projects-grid"></div>
1084        </div>
1085
1086        <div id="skill-modal-achievements-section" class="skill-modal-section">
1087          <h2 class="modal-section-h2">[ MATCHING ACCOLADES & ACHIEVEMENTS (<span id="skill-modal-achievements-count">0</span>) ]</h2>
1088          <div id="skill-modal-achievements-list" class="skill-modal-projects-grid"></div>
1089        </div>
1090
1091        <div id="skill-modal-posts-section" class="skill-modal-section">
1092          <h2 class="modal-section-h2">[ MATCHING JOURNAL POSTS (<span id="skill-modal-posts-count">0</span>) ]</h2>
1093          <div id="skill-modal-posts-list" class="skill-modal-projects-grid"></div>
1094        </div>
1095      </div>
1096    </div>
1097  </div>
1098
1099  
1099<script id="skills-catalog-data" type="application/json">
1100{"3d_modeling":{"name":"3D Modeling","slug":"3d_modeling","category":"Design & Art","years":"4 years","date_started":"2020-01-01","description":"Creating 3D polygonal models, retro low-poly assets, and environmental art for games.","long_description_html":"<p>3D modeling involves creating digital three-dimensional surfaces and assets. Specializing in stylized low-poly environmental assets, retro game art, and optimized game meshes.</p>\n","icon":"cube.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/3D_modeling"}],"projects":[{"title":"Low Poly Items and Room Environment","url":"./projects/assets/models/low_poly_room_environment.html","description":"A low-poly collection of 3D models and room environment assets covered under CC-BY 4.0.","section":"assets"}],"games":[{"title":"Soulantern","url":"https://soulantern.sol.vin","description":"[1DAYJAM #3 WINNER] High-speed first-person precision platformer propelled by lantern recoil momentum and aerial dashes.","subdomain":"soulantern","engine":"Godot 4.3"},{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"}],"achievements":[{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"},{"title":"1-DAY JAM #3","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"1-DAY JAM #3 challenged game developers to complete a full game in under 24 hours around the theme 'FIRE'. Soulantern won 1st Place overall!","link":"https://itch.io/jam/1-day-jam-3"}],"posts":[{"title":"Project Origins, Gallery Concepts & Spatial Illusions","url":"./liminalita_devlog/0.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":0,"date":"2025-05-19"},{"title":"Expanding Exhibits, Threaded Loading & World Architecture","url":"./liminalita_devlog/1.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":1,"date":"2025-06-06"},{"title":"Library of Babel Modeling, Atrium Teleports & Lobby Expansion","url":"./liminalita_devlog/2.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":2,"date":"2025-06-11"},{"title":"Room Progress Snapshot","url":"./soup_devlog/0.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":0,"date":"2026-04-30"}]},"aseprite":{"name":"Aseprite","slug":"aseprite","category":"Design & Art","years":"5 years","date_started":"2019-01-01","description":"Animated sprite editor and pixel art tool for game development and 2D assets.","long_description_html":"<p>Aseprite is an industry-standard pixel art tool designed for creating sprite sheets, pixel animations, tilemaps, and 2D game artwork.</p>\n","icon":"palette.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"/></svg>","links":[{"key":"website","url":"https://www.aseprite.org"}],"projects":[{"title":"crowbar","url":"./projects/libraries/crowbar.html","description":"An all-purpose fuzzer built in Crystal to generate bad data cases from sample input.","section":"libraries"},{"title":"pixel_lang_crystal","url":"./projects/programs/pixel_lang_crystal.html","description":"An esoteric programming language entirely in pixels, implemented in Crystal.","section":"programs"}],"games":[{"title":"Soulantern","url":"https://soulantern.sol.vin","description":"[1DAYJAM #3 WINNER] High-speed first-person precision platformer propelled by lantern recoil momentum and aerial dashes.","subdomain":"soulantern","engine":"Godot 4.3"},{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"}],"achievements":[{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"},{"title":"1-DAY JAM #3","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"1-DAY JAM #3 challenged game developers to complete a full game in under 24 hours around the theme 'FIRE'. Soulantern won 1st Place overall!","link":"https://itch.io/jam/1-day-jam-3"}],"posts":[]},"audacity":{"name":"Audacity","slug":"audacity","category":"Audio & Music","years":"6 years","date_started":"2018-01-01","description":"Open-source multi-track audio editor and recorder for sound editing, filtering, and effect processing.","long_description_html":"<p>Audacity is an open-source audio editing tool used for recording, trimming, noise reduction, audio format conversion, and mastering game sound effects and voiceovers.</p>\n","icon":"waveform.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M288 0c15.5 0 28.8 11.1 31.5 26.4l47.4 265.5 33.5-201.1c2.5-15 15.1-26.1 30.3-26.7s28.6 9.5 32.3 24.2L505 256 528 256c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0c-14.7 0-27.5-10-31-24.2L438.3 253 399.6 485.3c-2.6 15.4-15.8 26.6-31.4 26.7s-29-11-31.7-26.4L288 214 239.5 485.6c-2.7 15.3-16.1 26.5-31.7 26.4s-28.8-11.4-31.4-26.7L137.7 253 127 295.8C123.5 310 110.7 320 96 320l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32L71 256 113 88.2c3.7-14.7 17.2-24.8 32.3-24.2s27.8 11.8 30.3 26.7l33.5 201.1 47.4-265.5C259.2 11.1 272.5 0 288 0z\"/></svg>","links":[{"key":"website","url":"https://www.audacityteam.org"}],"projects":[{"title":"SunVox Animalese Generator","url":"./projects/assets/sounds/anamalese_generator.html","description":"Animalese voice generator module for the SunVox modular synthesizer engine.","section":"assets"}],"games":[{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"},{"title":"The Problem With Trolleys","url":"https://trolleys.sol.vin","description":"[TRIJAM 363 WINNER] A short 3hr game jam puzzle game about managing trolley switches without crashing trains.","subdomain":"trolleys","engine":"Godot 4"}],"achievements":[{"title":"TRIJAM 363","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"TRIJAM 363 
1100challenged creators to complete a full game in under 3 hours of total production time. 'The Problem With Trolleys' won 1st Place overall!","link":"https://itch.io/jam/trijam-363"},{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"}],"posts":[]},"audio_engine_dev":{"name":"Audio Engine Development","slug":"audio_engine_dev","category":"Audio & Music","years":"4 years","date_started":"2020-01-01","description":"Building real-time audio playback engines, waveform synthesis, and audio driver integrations.","long_description_html":"<p>Audio engine development focuses on low-latency audio buffer streaming, sound synthesis algorithms, and embedding modular audio libraries like SunVox into custom applications.</p>\n","icon":"sliders.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Audio_signal_processing"}],"projects":[{"title":"SunVox Animalese Generator","url":"./projects/assets/sounds/anamalese_generator.html","description":"Animalese voice generator module for the SunVox modular synthesizer engine.","section":"assets"},{"title":"solvox","url":"./projects/programs/solvox.html","description":"An esoteric, Wireland-inspired modular synth and tracker built off the SunVox developer library.","section":"programs"},{"title":"libsunvox","url":"./projects/libraries/libsunvox.html","description":"C-bindings for the SunVox audio library modular synthesizer engine, written in Crystal.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"audio_engineering":{"name":"Audio Engineering","slug":"audio_engineering","category":"Audio & Music","years":"6 years","date_started":"2018-01-01","description":"Sound design, audio mixing, signal processing, and sound effect engineering for games and s
1100oftware.","long_description_html":"<p>Audio engineering encompasses recording, synthesizing, editing, and processing digital audio. Used for designing game sound effects, procedural voice generation, dynamic audio mixing, and mastering soundtracks.</p>\n","icon":"headphones.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Audio_engineering"}],"projects":[{"title":"Fluorite","url":"./projects/libraries/fluorite.html","description":"Modern FFMPEG bindings, fluent Crystal DSL, streaming process wrapper, smart presets, and interactive Opal TUI.","section":"libraries"},{"title":"SunVox Animalese Generator","url":"./projects/assets/sounds/anamalese_generator.html","description":"Animalese voice generator module for the SunVox modular synthesizer engine.","section":"assets"},{"title":"libsunvox","url":"./projects/libraries/libsunvox.html","description":"C-bindings for the SunVox audio library modular synthesizer engine, written in Crystal.","section":"libraries"}],"games":[],"achievements":[{"title":"Artistic Crystal (Crystal 1.0 Conference 2021)","category":"Talks","date":"2021","issuer":"Crystal 1.0 Conference","description":"Conference talk exploring how to leverage Crystal's macro system, raw execution speed, and C bindings for creative coding, generative art, and graphical applications.","link":"https://www.youtube.com/watch?v=8jJtgMwZzf0"}],"posts":[]},"autohotkey":{"name":"AutoHotkey","slug":"autohotkey","category":"Tools & Infrastructure","years":"6 years","date_started":"2018-01-01","description":"Windows scripting language for hotkeys, UI automation, and rapid desktop tool prototyping.","long_description_html":"<p>AutoHotkey is a custom scripting language for Windows providing automation of desktop GUIs, input sequences, and hotkeys. Used for constructing automated game testing sequences and rapid desktop automation tools. I mainly use this tool for the automation of QA testing for games as it is easier to automate combonation button presses, as well as create macros that can test for common problems.</p>\n","icon":"keyboard.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"/></svg>","links":[{"key":"website","url":"https://www.autohotkey.com"}],"projects":[],"games":[],"achievements":[],"posts":[]},"blender":{"name":"Blender","slug":"blender","category":"Design & Art","years":"4 years","date_started":"2020-01-01","description":"Open-source 3D creation suite for low-poly modeling, UV unwrapping, rigging, and animation.","long_description_html":"<p>Blender is a powerful 3D modeling and animation platform. Used for crafting low-poly game models, environment props, UV mapping, and glTF export pipelines.</p>\n","icon":"cube.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"/></svg>","links":[{"key":"website","url":"https://www.blender.org"}],"projects":[],"games":[{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"}],"achievements":[{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"}],"posts":[]},"c":{"name":"C","slug":"c","category":"Languages","years":"12 years","date_started":"2012-01-01","description":"Low-level system programming language for high-performance applications, memory management, and low-level system software.","long_description_html":"<p>C is a fundamental system programming language offering direct hardware access and precise control over memory. My work with C spans native library extensions, developing low-level network protocol analyzers, firmware reverse engineering, and analyzing system vulnerabilities.</p>\n","icon":"code.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448
1100c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"/></svg>","links":[{"key":"website","url":"https://en.wikipedia.org/wiki/C_(programming_language)"}],"projects":[{"title":"Rubellite","url":"./projects/libraries/rubellite.html","description":"Next-generation bidirectional Crystal <-> Ruby interop, Spinel AOT compiler, CSP concurrency channels, and radare2 diagnostics.","section":"libraries"},{"title":"raylib-cr","url":"./projects/libraries/raylib_cr.html","description":"Crystal language bindings for the raylib game development library.","section":"libraries"},{"title":"libsunvox","url":"./projects/libraries/libsunvox.html","description":"C-bindings for the SunVox audio library modular synthesizer engine, written in Crystal.","section":"libraries"},{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11878 - Xiongmai Size Integer Overflow","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a remote size integer overflow vulnerability leading to buffer overflow and remote execution risks in Xiongmai IP camera devices.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11878"}],"posts":[{"title":"Network Protocol Analysis","url":"./vstarcam_journey/1.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":1,"date":"2019-09-03"},{"title":"Password Hashes & Exploitation","url":"./vstarcam_journey/2.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":2,"date":"2019-09-03"},{"title":"Memory Leaks and De-serialization","url":"./vstarcam_journey/5.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":5,"date":"2019-09-03"},{"title":"Reversing authentication","url":"./vstarcam_journey/6.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":6,"date":"2019-09-03"},{"title":"Installation & Testing","url":"./vstarcam_journey/8.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":8,"date":"2019-09-03"},{"title":"Software Overview and Audit","url":"./xiongmai_journey/2.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":2,"date":"2019-09-04"},{"title":"Hashing","url":"./xiongmai_journey/3.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":3,"date":"2019-09-04"},{"title":"Brute Force","url":"./xiongmai_journey/7.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":7,"date":"2019-09-04"}]},"cd":{"name":"CD","slug":"cd","category":"DevOps & Infrastructure","years":"8 years","date_started":"2016-01-01","description":"Continuous Delivery and Continuous Deployment pipelines for automated application releases.","long_description_html":"<p>Continuous Delivery automates artifact building, release packaging, and automated deployment pipelines across cloud platforms, Steam, Itch.io, and GitHub Releases.</p>\n","icon":"code-branch.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Continuous_delivery"}],"projects":[{"title":"Carbon","url":"./projects/programs/carbon.html","description":"Automated commit-based version control, human-friendly YAML changelogs, README badge engine, and Git release automation for Crystal shards.","section":"programs"}],"games":[],"achievements":[],"posts":[]},"chiptune_audio":{"name":"Chiptune Audio","slug":"chiptune_audio","category":"Audio & Music","years":"5 years","date_started":"2019-01-01","description":"Synthesized retro 8-bit / 16-bit music and sound effect design for games and standalone audio tools.","long_description_html":"<p>Chiptune audio design leverages limited-channel synthesized sound generators (square waves, noise, FM synthesis) to craft nostalgic retro audio tracks and sound effects.</p>\n","icon":"music.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Chiptune"}],"projects":[{"title":"solvox","url":"./projects/programs/solvox.html","description":"An esoteric, Wireland-inspired modular synth and tracker built off the SunVox developer library.","section":"programs"}],"games":[],"achievements":[],"posts":[]}
1100,"ci":{"name":"CI","slug":"ci","category":"DevOps & Infrastructure","years":"8 years","date_started":"2016-01-01","description":"Continuous Integration practices for automated build, test, and code quality verification.","long_description_html":"<p>Continuous Integration automates code building and automated testing on every code push, catching defects early and keeping repository main branches release-ready.</p>\n","icon":"code-branch.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Continuous_integration"}],"projects":[{"title":"Carbon","url":"./projects/programs/carbon.html","description":"Automated commit-based version control, human-friendly YAML changelogs, README badge engine, and Git release automation for Crystal shards.","section":"programs"}],"games":[],"achievements":[],"posts":[]},"cpp":{"name":"C++","slug":"cpp","category":"Languages","years":"12 years","date_started":"2012-01-01","description":"High-performance object-oriented and generic system programming language.","long_description_html":"<p>C++ provides low-level control combined with high-level abstractions. My experience includes high-performance software development, game engine architecture, native library bindings, and reverse engineering.</p>\n","icon":"code.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"/></svg>","links":[{"key":"website","url":"https://isocpp.org"}],"projects":[{"title":"Lapis","url":"./projects/libraries/lapis.html","description":"Modern, idiomatic Godot Engine 4.8+ bindings for Crystal via GDExtension C-API.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"crocotile_3d":{"name":"Crocotile 3D","slug":"crocotile_3d","category":"Design & Art","years":"3 years","date_started":"2021-01-01","description":"3D tile-based modeling tool for creating retro low-poly environments and assets.","long_description_html":"<p>Crocotile 3D is a specialized tool that creates 3D models using 2D tilemaps, perfect for low-poly retro aesthetic game environments and level geometry.</p>\n","icon":"cube.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"/></svg>","links":[{"key":"website","url":"https://crocotile3d.com"}],"projects":[{"title":"Low Poly Items and Room Environment","url":"./projects/assets/models/low_poly_room_environment.html","description":"A low-poly collection of 3D models and room environment assets covered under CC-BY 4.0.","section":"assets"}],"games":[],"achievements":[],"posts":[]},"crystal":{"name":"Crystal","slug":"crystal","category":"Languages","years":"8 years","date_started":"2016-01-01","description":"A fast, compiled, statically typed language with Ruby-inspired syntax.","long_description_html":"<p>Crystal is a compiled, statically type-checked language featuring syntax inspired by Ruby. It provides C-like performance with zero-cost abstractions, macro metaprogramming, and built-in concurrency primitives. I have used Crystal extensively to build high-performance command-line utilities, web application generators, and custom game framework bindings.</p>\n","icon":"crystal.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\"><path fill=\"currentColor\" d=\"M126.887 81.203L80.895 126.86c-.184.184-.461.274-.645.184l-62.828-16.742c-.277-.094-.461-.278-.461-.461L.035 47.437c-.09-.273 0-.457.184-.64L46.215 1.14c.183-.184.46-.274.644-.184l62.825 16.742c.277.094.46.278.46.461l16.836 62.403c.184.273.09.457-.093.64zM65.254 31.516L3.53 47.895c-.094 0-.183.183-.094.277l45.168 44.832c.09.094.278.094.278-.09L65.437 31.61c.094 0-.09-.183-.183-.093zm0 0\" fill-rule=\"evenodd\"/></svg>","links":[{"key":"website","url":"https://crystal-lang.org"},{"key":"github","url":"crystal-lang/crystal"}],"projects":[{"title":"Citrine","url":"./projects/programs/citrine.html","description":"PlayStation 2 virtual machine, game engine, and CLI development toolchain written in Crystal.","section":"programs"},{"title":"Fluorite","url":"./projects/libraries/fluorite.html","description":"Modern FFMPEG bindings, fluent Crystal DSL, streaming process wrapper, smart presets, and interactive Opal TUI.","section":"libraries"},{"title":"Carbon","url":"./projects/programs/carbon.html","description":"Automated commit-based version control, human-friendly YAML changelogs, README badge engine, and Git release automation for Crystal shards.","section":"programs"},{"title":"Jasper","url":"./projects/libraries/jasper.html","description":"Modular structured guide, book, and documentation compiler for Crystal docs.","section":"libraries"},{"title":"Diorite","url":"./projects/libraries/diorite.html","description":"High-priority 2D and 3D debug drawing plugin and zero-allocation frame DSL for Godot Engine 4.8+ via L
1100apis.","section":"libraries"},{"title":"cradare2","url":"./projects/libraries/cradare2.html","description":"High-performance radare2 pipe and binary analysis toolkit for Crystal with interactive debugging, source line mapping, and crash diagnosis.","section":"libraries"},{"title":"Opal","url":"./projects/libraries/opal.html","description":"Next-generation terminal user interface (TUI) framework and Elm Architecture engine for Crystal.","section":"libraries"},{"title":"Rubellite","url":"./projects/libraries/rubellite.html","description":"Next-generation bidirectional Crystal <-> Ruby interop, Spinel AOT compiler, CSP concurrency channels, and radare2 diagnostics.","section":"libraries"},{"title":"CRShader","url":"./projects/libraries/crshader.html","description":"Ultrafast shader trans-compiler and live runtime development toolchain for Godot Engine 4.8+ via Crystal and Lapis.","section":"libraries"},{"title":"Lapis","url":"./projects/libraries/lapis.html","description":"Modern, idiomatic Godot Engine 4.8+ bindings for Crystal via GDExtension C-API.","section":"libraries"},{"title":"crixel","url":"./projects/libraries/crixel.html","description":"A Flixel-inspired 2D game engine framework written in Crystal.","section":"libraries"},{"title":"raylib-cr","url":"./projects/libraries/raylib_cr.html","description":"Crystal language bindings for the raylib game development library.","section":"libraries"},{"title":"solvox","url":"./projects/programs/solvox.html","description":"An esoteric, Wireland-inspired modular synth and tracker built off the SunVox developer library.","section":"programs"},{"title":"libsunvox","url":"./projects/libraries/libsunvox.html","description":"C-bindings for the SunVox audio library modular synthesizer engine, written in Crystal.","section":"libraries"},{"title":"wireland","url":"./projects/programs/wireland.html","description":"An esoteric circuit simulator written in Crystal.","section":"programs"},{"title":"crowbar","url":"./projects/libraries/crowbar.html","description":"An all-purpose fuzzer built in Crystal to generate bad data cases from sample input.","section":"libraries"},{"title":"celestine","url":"./projects/libraries/celestine.html","description":"An SVG library and DSL written in Crystal for creating generative art, animations, and graphics.","section":"libraries"},{"title":"pixel_lang_crystal","url":"./projects/programs/pixel_lang_crystal.html","description":"An esoteric programming language entirely in pixels, implemented in Crystal.","section":"programs"},{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"xiongmai-investigational-journey","url":"./projects/programs/xiongmai_investigational_journey.html","description":"Investigation script toolkit, hashes database, and fuzzers for Xiongmai cameras.","section":"programs"}],"games":[{"title":"Mineshift","url":"https://mineshift.sol.vin","description":"[PROCJAM 2021] Scroll through an infinite generative chasm. Interactive procedural art made with Crystal and Raylib.","subdomain":"mineshift","engine":"Crystal & Raylib"}],"achievements":[{"title":"PROCJAM 2021","category":"Game Jams","date":"2021","issuer":"Itch.io Jam","description":"A annual celebration of making things that make things! PROCJAM encourages procedural art, generative algorithms, and endless world building.","link":"https://itch.io/jam/procjam2021"},{"title":"Artistic Crystal (Crystal 1.0 Conference 2021)","category":"Talks","date":"2021","issuer":"Crystal 1.0 Conference","description":"Conference talk exploring how to leverage Crystal's macro system, raw execution speed, and C bindings for creative coding, generative art, and graphical applications.","link":"https://www.youtube.com/watch?v=8jJtgMwZzf0"},{"title":"Generative Art, SVG, and Celestine (Raw Crystal 2020)","category":"Talks","date":"2020","issuer":"Raw Crystal 2020","description":"Presentation detailing vector mathematics, procedural graphics generation in SVG format, and architectural decisions behind the Celestine library in Crystal.","link":"https://www.youtube.com/watch?v=X150LMZy7uY"},{"title":"Crystal Code Camp 2017","category":"Certificates","date":"2017","issuer":"Crystal Core Team","description":"Certificate of achievement for participation, open-source development, and collaborative code contributions during Crystal Code Camp 2017.","link":"https://crystal-lang.org/"}],"posts":[{"title":"Intro","url":"./pixellang/0.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":0,"date":"2019-09-05"},{"title":"More Instructions","url":"./pixellang/1.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":1,"date":"2019-09-06"},{"title":"Showcase","url":"./pixellang/2.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":2,"date":"2019-09-07"},{"title":"Password Hashes & Exploitation","url":"./vstarcam_journey/2.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":2,"date":"2019-09-03"},{"title":"Writing a Client","url":"./vstarcam_journey/4.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":4,"date":"2019-09-03"}]},"css":{"name":"CSS","slug":"css","category":"Languages","years":"14 years","date_started":"2010-01-01","description":"Cascading Style Sheets for visual presentation, layouts, and responsive design.","long_description_html":"<p>Modern CSS3 including Flexbox, CSS Grid, custom properties, animation, and responsive media queries to craft clean retro/terminal aesthetic UI design.</p>\n","icon":"css3.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M480 32l-64 368-223.3 80-192.7-80 19.6-94.8 82 0-8 40.6 116.4 44.4 134.1-44.4 18.8-97.1-333.4 0 16-82 333.7 0 10.5-52.7-333.4 0 16.3-82 407.4 0z\"/></svg>","links":[{"key":"website","url":"https://developer.mozilla.org/en-US/docs/Web/CSS"}],"projects":[],"games":[],"achievements":[],"posts":[]},"dns":{"name":"DNS","slug":"dns","category":"Networking & Security","years":"8 years","date_started":"2016-01-01","description":"Domain Name System protocol for hostname resolution, zone management, and network infrastru
1100cture security.","long_description_html":"<p>Domain Name System (DNS) is a core Internet protocol. Work includes configuring DNSSEC, managing zone records, implementing custom DNS sinkholes/tunneling research, and auditing DNS resolution behavior in embedded hardware.</p>\n","icon":"globe.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Domain_Name_System"}],"projects":[],"games":[],"achievements":[],"posts":[]},"docker":{"name":"Docker","slug":"docker","category":"Tools & Infrastructure","years":"6 years","date_started":"2018-01-01","description":"Application containerization, Dockerfile optimization, and isolated development environments.","long_description_html":"<p>Docker containerization enables portable runtime environments across development and production servers. I construct lightweight multi-stage Dockerfiles, Docker Compose orchestrations, and containerized build toolchains for consistent software execution.</p>\n","icon":"docker.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"/></svg>","links":[{"key":"website","url":"https://www.docker.com"}],"projects":[],"games":[],"achievements":[],"posts":[]},"esoteric_programming":{"name":"Esoteric Programming","slug":"esoteric_programming","category":"Languages","years":"3 years","date_started":"2021-01-01","description":"Designing non-traditional programming languages to test boundaries of language design and visual computing.","long_description_html":"<p>Esoteric programming languages (esolangs) explore unconventional paradigms. Created PixelLang—a language where executable code is encoded directly as 2D RGB pixel images.</p>\n","icon":"brain.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Esoteric_programming_language"}],"projects":[{"title":"wireland","url":"./projects/programs/wireland.html","description":"An esoteric circuit simulator written in Crystal.","section":"programs"},{"title":"pixel_lang_crystal","url":"./projects/programs/pixel_lang_crystal.html","description":"An esoteric programming language entirely in pixels, implemented in Crystal.","section":"programs"}],"games":[],"achievements":[],"posts":[{"title":"Intro","url":"./pixellang/0.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":0,"date":"2019-09-05"},{"title":"More Instructions","url":"./pixellang/1.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":1,"date":"2019-09-06"},{"title":"Showcase","url":"./pixellang/2.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":2,"date":"2019-09-07"}]},"exploit_poc":{"name":"Exploit PoC Development","slug":"exploit_poc","category":"Systems & Security","years":"8 years","date_started":"2016-01-01","description":"Authoring reproducible proof-of-concept exploits to validate security vulnerabilities and verify vendor remediation.","long_description_html":"<p>Developing reliable proof-of-concept exploits to demonstrate security vulnerabilities under controlled conditions. Responsible for researching zero-day security flaws, authoring ethical exploit PoCs for responsible disclosure to vendors and MITRE (resulting in published CVE disclosures).</p>\n","icon":"bug.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-1
11005.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"/></svg>","links":[{"key":"cve","url":"https://cve.mitre.org"}],"projects":[{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"xiongmai-investigational-journey","url":"./projects/programs/xiongmai_investigational_journey.html","description":"Investigation script toolkit, hashes database, and fuzzers for Xiongmai cameras.","section":"programs"},{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11878 - Xiongmai Size Integer Overflow","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a remote size integer overflow vulnerability leading to buffer overflow and remote execution risks in Xiongmai IP camera devices.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11878"},{"title":"CVE-2019-11014 - VStarCam Client Hijacking","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a Man-In-The-Middle (MITM) client hijacking vulnerability in VStarCam IP camera firmware, tied to botnet infrastructure research.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11014"}],"posts":[{"title":"Password Hashes & Exploitation","url":"./vstarcam_journey/2.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":2,"date":"2019-09-03"},{"title":"Reversing authentication","url":"./vstarcam_journey/6.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":6,"date":"2019-09-03"},{"title":"Installation & Testing","url":"./vstarcam_journey/8.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":8,"date":"2019-09-03"},{"title":"Post Mortem & Fixes","url":"./vstarcam_journey/9.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":9,"date":"2019-09-03"},{"title":"Fuzzing With Radamsa","url":"./xiongmai_journey/6.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":6,"date":"2019-09-04"},{"title":"Denial of Service","url":"./xiongmai_journey/8.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":8,"date":"2019-09-04"}]},"exploitation":{"name":"Exploitation","slug":"exploitation","category":"Security","years":"6 years","date_started":"2018-01-01","description":"Developing proof-of-concept exploits to validate security vulnerabilities in binaries, network daemons, and web apps.","long_description_html":"<p>Vulnerability exploitation involves writing reliable PoC exploit code (buffer overflows, RCEs, authentication bypasses) to demonstrate security risks and verify patch effectiveness.</p>\n","icon":"user-secret.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"/></svg>","links":[{"key":"exploit_db","url":"https://www.exploit-db.com"}],"projects":[{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11878 - Xiongmai Size Integer Overflow","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a remote size integer overflow vulnerability leading to buffer overflow and remote execution risks in Xiongmai IP camera devices.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11878"},{"title":"CVE-2019-11014 - VStarCam Client Hijacking","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a Man-In-The-Middle (MITM) client hijacking vulnerability in VStarCam IP camera firmware, tied to botnet infrastru
1100cture research.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11014"}],"posts":[{"title":"Reversing authentication","url":"./vstarcam_journey/6.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":6,"date":"2019-09-03"},{"title":"Installation & Testing","url":"./vstarcam_journey/8.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":8,"date":"2019-09-03"},{"title":"Software Overview and Audit","url":"./xiongmai_journey/2.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":2,"date":"2019-09-04"},{"title":"Brute Force","url":"./xiongmai_journey/7.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":7,"date":"2019-09-04"}]},"ffmpeg":{"name":"FFmpeg","slug":"ffmpeg","category":"Tools & Frameworks","years":"6 years","date_started":"2018-01-01","description":"Cross-platform audio/video transcoding, media stream processing, filter graphs, and container multiplexing.","long_description_html":"<p>Comprehensive media processing using FFmpeg and libav libraries. Building automated video transcode pipelines, audio track extraction, filter graph transformations, Discord upload size budgeting, and palette-optimized GIF generation.</p>\n","icon":"film.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"/></svg>","links":[{"key":"website","url":"https://ffmpeg.org"}],"projects":[{"title":"Fluorite","url":"./projects/libraries/fluorite.html","description":"Modern FFMPEG bindings, fluent Crystal DSL, streaming process wrapper, smart presets, and interactive Opal TUI.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"fuzzing":{"name":"Fuzzing","slug":"fuzzing","category":"Security","years":"5 years","date_started":"2019-01-01","description":"Automated software testing technique providing invalid or unexpected inputs to reveal crashes and memory flaws.","long_description_html":"<p>Fuzz testing automates the generation of malformed data inputs sent to network daemons, file parsers, and APIs to uncover memory corruption bugs and unexpected edge cases.</p>\n","icon":"bug.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Fuzzing"}],"projects":[{"title":"crowbar","url":"./projects/libraries/crowbar.html","description":"An all-purpose fuzzer built in Crystal to generate bad data cases from sample input.","section":"libraries"},{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"xiongmai-investigational-journey","url":"./projects/programs/xiongmai_investigational_journey.html","description":"Investigation script toolkit, hashes database, and fuzzers for Xiongmai cameras.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11878 - Xiongmai Size Integer Overflow","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a remote size integer overflow vulnerability leading to buffer overflow and remote execution risks in Xiongmai IP camera devices.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11878"},{"title":"CVE-2019-11014 - VStarCam Client Hijacking","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a Man-In-The-Middle (MITM) client hijacking vulnerability in VStarCam IP camera firmware, tied to botnet infrastru
1100cture research.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11014"}],"posts":[{"title":"Basic Fuzzing","url":"./xiongmai_journey/4.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":4,"date":"2019-09-04"},{"title":"Advanced Fuzzing","url":"./xiongmai_journey/5.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":5,"date":"2019-09-04"},{"title":"Fuzzing With Radamsa","url":"./xiongmai_journey/6.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":6,"date":"2019-09-04"},{"title":"Denial of Service","url":"./xiongmai_journey/8.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":8,"date":"2019-09-04"}]},"game_engine_dev":{"name":"Game Engine Development","slug":"game_engine_dev","category":"Game Development","years":"4 years","date_started":"2020-01-01","description":"Building lightweight game engines, rendering loops, input handling, and entity systems from scratch.","long_description_html":"<p>Game engine development involves architecting core game loops, scene graphs, tilemap renderers, and input abstractions in native languages like Crystal and C++.</p>\n","icon":"gamepad.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Game_engine"}],"projects":[{"title":"Citrine","url":"./projects/programs/citrine.html","description":"PlayStation 2 virtual machine, game engine, and CLI development toolchain written in Crystal.","section":"programs"},{"title":"Diorite","url":"./projects/libraries/diorite.html","description":"High-priority 2D and 3D debug drawing plugin and zero-allocation frame DSL for Godot Engine 4.8+ via Lapis.","section":"libraries"},{"title":"CRShader","url":"./projects/libraries/crshader.html","description":"Ultrafast shader trans-compiler and live runtime development toolchain for Godot Engine 4.8+ via Crystal and Lapis.","section":"libraries"},{"title":"crixel","url":"./projects/libraries/crixel.html","description":"A Flixel-inspired 2D game engine framework written in Crystal.","section":"libraries"}],"games":[],"achievements":[],"posts":[{"title":"Expanding Exhibits, Threaded Loading & World Architecture","url":"./liminalita_devlog/1.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":1,"date":"2025-06-06"},{"title":"Room Progress Snapshot","url":"./soup_devlog/0.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":0,"date":"2026-04-30"},{"title":"Android & Mobile Web Support","url":"./soup_devlog/1.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":1,"date":"2026-05-20"},{"title":"ALL DONE","url":"./soup_devlog/2.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":2,"date":"2026-07-03"}]},"gdshader":{"name":"GDShader","slug":"gdshader","category":"Graphics & Game Dev","years":"4 years","date_started":"2020-01-01","description":"Godot Engine's custom shading language for 2D and 3D visual effects, materials, and post-processing.","long_description_html":"<p>GDShader is Godot Engine&#39;s shading language based on GLSL. Used for writing custom spatial shaders, canvas item shaders, retro outline shaders, pixelation post-processing, and dynamic material effects.</p>\n","icon":"sparkles.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z\"/></svg>","links":[{"key":"website","url":"https://docs.godotengine.org/en/stable/tutorials/shaders/index.html"}],"projects":[{"title":"CRShader","url":"./projects/libraries/crshader.html","description":"Ultrafast shader trans-compiler and live runtime development toolchain for Godot Engine 4.8+ via Crystal and Lapis.","section":"libraries"},{"title":"Low-Poly Precision Outline Shader for Godot 4","url":"./projects/assets/shaders/low_poly_pos.html","description":"A precision surface map pre-computed outline shader for Godot 4 that works on Web, Mobile, and Desktop.","section":"assets"}],"games":[{"title":"BOX WARP","url":"https://box-warp.sol.vin","description":"[TRIJAM 346] A box warping puzzle game made in 3 hours for TRIJAM 346.","subdomain":"box-warp","engine":"Godot 4"},{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"}],"achievements":[{"title":"TRIJAM 346","category":"Game Jams","date":"2025","issuer":"Itch.io Jam","description":"A fast-paced 3-hour game jam where developers have a strict 3-hour development window to design and build a complete game around a secret theme.","link":"https://itch.io/jam/trijam-346"}],"posts":[{"title":"Project Origins, Gallery Concepts & Spatial Illusions","url":"./liminalita_devlog/0.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":0,"date":"2025-05-19"},{"title":"Shader Optimization & Visual Refinements","url":"./liminalita_devlog/3.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":3,"date":"2025-08-19"}]},"generative_art":{"name":"Generative Art","slug":"generative_art","category":"Design & Art","years":"5 years","date_started":"2019-01-01","description":"Algorithmic generation of visual artwork, procedural textures, vector SVG patterns, and game graphics.","long_description_html":"<p>Generative art uses mathematical algorithms, noise functions (Perlin/Simplex), and code to automatically generate complex visual textures, procedural levels, and SVG graphic assets.</p>\n","icon":"palette.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Generative_art"}],"projects":[{"title":"Jasper","url":"./projects/libraries/jasper.html","description":"Modular structured guide, book, and documentation compiler for Crystal docs.","section":"libraries"},{"title":"celestine","url":"./projects/libraries/celestine.html","description":"An SVG library and DSL written in Crystal for creating generative art, animations, and graphics.","section":"libraries"}],"games":[{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"},{"title":"Mineshift","url":"https://mineshift.sol.vin","description":"[PROCJAM 2021] Scroll through an infinite generative chasm. Interactive procedural art made with Crystal and Raylib.","subdomain":"mineshift","engine":"Crystal & Raylib"}],"achievements":[{"title":"PROCJAM 2021","category":"Game Jams","date":"2021","issuer":"Itch.io Jam","description":"A annual celebration of making things that make things! PROCJAM encourages procedural art, generative algorithms, and endless world building.","link":"https://itch.io/jam/procjam2021"},{"title":"Artistic Crystal (Crystal 1.0 Conference 2021)","category":"Talks","date":"2021","issuer":"Crystal 1.0 Conference","description":"Conference talk exploring how to leverage Crystal's macro system, raw execution speed, and C bindings for creative coding, generative art, and graphical applications.","link":"https://www.youtube.com/watch?v=8jJtgMwZzf0"},{"title":"Generative Art, SVG, and Celestine (Raw Crystal 2020)","category":"Talks","date":"2020","issuer":"Raw Crystal 2020","description":"Presentation detailing vector mathematics, procedural graphics generation in SVG format, and architectural decisions behind the Celestine library in Crystal.","link":"https://www.youtube.com/watch?v=X150LMZy7uY"}],"posts":[{"title":"Project Origins, Gallery Concepts & Spatial Illusions","url":"./liminalita_devlog/0.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":0,"date":"2025-05-19"},{"title":"Intro","url":"./pixellang/0.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":0,"date":"2019-09-05"},{"title":"More Instructions","url":"./pixellang/1.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":1,"date":"2019-09-06"},{"title":"Showcase","url":"./pixellang/2.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":2,"date":"2019-09-07"}]},"github_actions":{"name":"GitHub Actions","slug":"github_actions","category":"Tools & Infrastru
1100cture","years":"6 years","date_started":"2018-01-01","description":"Designing automated continuous integration and release delivery pipelines for cross-platform builds.","long_description_html":"<p>GitHub Actions provides automated continuous integration and continuous deployment (CI/CD) workflows triggered by repository events. I author multi-platform workflows to compile, test, package, and release software artifacts for Windows, Linux, macOS, and Web platforms.</p>\n","icon":"github.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"/></svg>","links":[{"key":"website","url":"https://github.com/features/actions"}],"projects":[{"title":"Carbon","url":"./projects/programs/carbon.html","description":"Automated commit-based version control, human-friendly YAML changelogs, README badge engine, and Git release automation for Crystal shards.","section":"programs"},{"title":"raylib-cr","url":"./projects/libraries/raylib_cr.html","description":"Crystal language bindings for the raylib game development library.","section":"libraries"},{"title":"celestine","url":"./projects/libraries/celestine.html","description":"An SVG library and DSL written in Crystal for creating generative art, animations, and graphics.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"glsl":{"name":"GLSL","slug":"glsl","category":"Graphics & Game Dev","years":"4 years","date_started":"2020-01-01","description":"OpenGL Shading Language for high-performance GPU vertex and fragment shader development.","long_description_html":"<p>GLSL is the standard shading language for OpenGL graphics pipelines. Used for writing custom Godot/Raylib fragment shaders, retro dither effects, and water refraction.</p>\n","icon":"sparkles.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/OpenGL_Shading_Language"}],"projects":[{"title":"CRShader","url":"./projects/libraries/crshader.html","description":"Ultrafast shader trans-compiler and live runtime development toolchain for Godot Engine 4.8+ via Crystal and Lapis.","section":"libraries"},{"title":"Low-Poly Precision Outline Shader for Godot 4","url":"./projects/assets/shaders/low_poly_pos.html","description":"A precision surface map pre-computed outline shader for Godot 4 that works on Web, Mobile, and Desktop.","section":"assets"}],"games":[],"achievements":[],"posts":[{"title":"Shader Optimization & Visual Refinements","url":"./liminalita_devlog/3.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":3,"date":"2025-08-19"}]},"gltf":{"name":"glTF","slug":"gltf","category":"Design & Art","years":"3 years","date_started":"2021-01-01","description":"Khronos Group specification for efficient transmission and loading of 3D scenes and models.","long_description_html":"<p>glTF (GL Transmission Format) is an open royalty-free specification for 3D asset delivery. Used for exporting and importing 3D models with materials, textures, and skeletal animations into web and game engines.</p>\n","icon":"box.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"/></svg>","links":[{"key":"website","url":"https://www.khronos.org/gltf/"}],"projects":[{"title":"Low Poly Items and Room Environment","url":"./projects/assets/models/low_poly_room_environment.html","description":"A low-poly collection of 3D models and room environment assets covered under CC-BY 4.0.","section":"assets"}],"games":[{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"}],"achievements":[],"posts":[]},"godot_4":{"name":"Godot 4","slug":"godot_4","category":"Game Development","years":"4 years","date_started":"2020-01-01","description":"Open-source 2D/3D game engine featuring GDScript, custom shaders, and modular scene nodes.","long_description_html":"<p>Godot 4 is a lightweight, feature-rich open-source game engine. My experience includes GDScript architecture, custom GLSL/GDShader development, 3D low-poly rendering pipelines, game jam projects, and procedural level generation.</p>\n","icon":"robot.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l
11000 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"/></svg>","links":[{"key":"website","url":"https://godotengine.org"}],"projects":[{"title":"Diorite","url":"./projects/libraries/diorite.html","description":"High-priority 2D and 3D debug drawing plugin and zero-allocation frame DSL for Godot Engine 4.8+ via Lapis.","section":"libraries"},{"title":"CRShader","url":"./projects/libraries/crshader.html","description":"Ultrafast shader trans-compiler and live runtime development toolchain for Godot Engine 4.8+ via Crystal and Lapis.","section":"libraries"},{"title":"Lapis","url":"./projects/libraries/lapis.html","description":"Modern, idiomatic Godot Engine 4.8+ bindings for Crystal via GDExtension C-API.","section":"libraries"},{"title":"Low-Poly Precision Outline Shader for Godot 4","url":"./projects/assets/shaders/low_poly_pos.html","description":"A precision surface map pre-computed outline shader for Godot 4 that works on Web, Mobile, and Desktop.","section":"assets"}],"games":[{"title":"BOX WARP","url":"https://box-warp.sol.vin","description":"[TRIJAM 346] A box warping puzzle game made in 3 hours for TRIJAM 346.","subdomain":"box-warp","engine":"Godot 4"},{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"},{"title":"Soulantern","url":"https://soulantern.sol.vin","description":"[1DAYJAM #3 WINNER] High-speed first-person precision platformer propelled by lantern recoil momentum and aerial dashes.","subdomain":"soulantern","engine":"Godot 4.3"},{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"},{"title":"The Problem With Trolleys","url":"https://trolleys.sol.vin","description":"[TRIJAM 363 WINNER] A short 3hr game jam puzzle game about managing trolley switches without crashing trains.","subdomain":"trolleys","engine":"Godot 4"}],"achievements":[{"title":"TRIJAM 363","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"TRIJAM 363 challenged creators to complete a full game in under 3 hours of total production time. 'The Problem With Trolleys' won 1st Place overall!","link":"https://itch.io/jam/trijam-363"},{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"},{"title":"1-DAY JAM #3","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"1-DAY JAM #3 challenged game developers to complete a full game in under 24 hours around the theme 'FIRE'. Soulantern won 1st Place overall!","link":"https://itch.io/jam/1-day-jam-3"},{"title":"TRIJAM 346","category":"Game Jams","date":"2025","issuer":"Itch.io Jam","description":"A fast-paced 3-hour game jam where developers have a strict 3-hour development window to design and build a complete game around a secret theme.","link":"https://itch.io/jam/trijam-346"},{"title":"1-DAY JAM #3 Winner","category":"Competitions & Jams","date":"2026-09-05","issuer":"1-DAY JAM","description":"Awarded 1st Place overall in 1-DAY JAM #3 out of all submissions for the fast-paced 3D momentum platformer 'Soulantern' under the theme 'FIRE'.","link":"https://itch.io/jam/1-day-jam-3/rate/4976157"}],"posts":[{"title":"Project Origins, Gallery Concepts & Spatial Illusions","url":"./liminalita_devlog/0.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":0,"date":"2025-05-19"},{"title":"Expanding Exhibits, Threaded Loading & World Architecture","url":"./liminalita_devlog/1.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":1,"date":"2025-06-06"},{"title":"Library of Babel Modeling, Atrium Teleports & Lobby Expansion","url":"./liminalita_devlog/2.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":2,"date":"2025-06-11"},{"title":"Shader Optimization & Visual Refinements","url":"./liminalita_devlog/3.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":3,"date":"2025-08-19"},{"title":"Room Progress Snapshot","url":"./soup_devlog/0.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":0,"date":"2026-04-30"},{"title":"Android & Mobile Web Support","url":"./soup_devlog/1.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":1,"date":"2026-05-20"},{"title":"ALL DONE","url":"./soup_devlog/2.html","chain_title":"Solo Oasis Devlog","category":"soup_devlog","index":2,"date":"2026-07-03"}]},"hardware_security":{"name":"Hardware Security","slug":"hardware_security","category":"Security","years":"6 years","date_started":"2018-01-01","description":"Physical and electrical security auditing of IoT microcontrollers, UART/JTAG interfaces, and flash dump analysis.","long_description_html":"<p>Hardware security auditing covers interfacing with board headers (UART/JTAG/SPI), dumping SPI flash EEPROMs, analyzing SoC bootloaders, and extracting hardcoded credentials.</p>\n","icon":"microchip.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"/>
1100</svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Hardware_security"}],"projects":[{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"xiongmai-investigational-journey","url":"./projects/programs/xiongmai_investigational_journey.html","description":"Investigation script toolkit, hashes database, and fuzzers for Xiongmai cameras.","section":"programs"},{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11014 - VStarCam Client Hijacking","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a Man-In-The-Middle (MITM) client hijacking vulnerability in VStarCam IP camera firmware, tied to botnet infrastructure research.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11014"}],"posts":[{"title":"Intro","url":"./vstarcam_journey/0.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":0,"date":"2019-09-03"},{"title":"Hardware Dumping","url":"./vstarcam_journey/3.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":3,"date":"2019-09-03"},{"title":"Firmware Analysis","url":"./vstarcam_journey/7.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":7,"date":"2019-09-03"},{"title":"Intro","url":"./xiongmai_journey/0.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":0,"date":"2019-09-04"},{"title":"Hardware","url":"./xiongmai_journey/1.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":1,"date":"2019-09-04"}]},"heroku":{"name":"Heroku","slug":"heroku","category":"Cloud & DevOps","years":"5 years","date_started":"2019-01-01","description":"PaaS cloud platform for deploying and scaling containerized web applications and background workers.","long_description_html":"<p>Heroku is a platform-as-a-service (PaaS) enabling rapid cloud deployment, managed Postgres/Redis add-ons, and continuous buildpacks for Ruby, Node, and Python web services.</p>\n","icon":"server.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"/></svg>","links":[{"key":"website","url":"https://www.heroku.com"}],"projects":[],"games":[],"achievements":[],"posts":[]},"html":{"name":"HTML","slug":"html","category":"Languages","years":"14 years","date_started":"2010-01-01","description":"Standard markup language for structuring web pages and web applications.","long_description_html":"<p>HTML5 forms the foundation of web document structure and accessible web application interfaces. Specializing in semantic markup and responsive structural layout.</p>\n","icon":"html5.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 32L34.9 427.8 191.5 480 349.1 427.8 384 32 0 32zM308.2 159.9l-183.8 0 4.1 49.4 175.6 0-13.6 148.4-97.9 27 0 .3-1.1 0-98.7-27.3-6-75.8 47.7 0 3.5 38.1 53.5 14.5 53.7-14.5 6-62.2-166.9 0-12.8-145.6 241.1 0-4.4 47.7z\"/></svg>","links":[{"key":"website","url":"https://developer.mozilla.org/en-US/docs/Web/HTML"}],"projects":[],"games":[],"achievements":[],"posts":[]},"image_processing":{"name":"Image Processing","slug":"image_processing","category":"Computer Science","years":"5 years","date_started":"2019-01-01","description":"Algorithmic manipulation, decoding, dithering, and color space transformations of raster images.","long_description_html":"<p>Image processing involves programmatic pixel manipulation, palette quantization, custom dithering algorithms, and PNG/JPEG buffer parsing.</p>\n","icon":"image.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Digital_image_processing"}],"projects":[{"title":"Fluorite","url":"./projects/libraries/fluorite.html","description":"Modern FFMPEG bindings, fluent Crystal DSL, streaming process wrapper, smart presets, and interactive Opal TUI.","section":"libraries"},{"title":"pixel_lang_crystal","url":"./projects/programs/pixel_lang_crystal.html","description":"An esoteric programming language entirely in pixels, implemented in Crystal.","section":"programs"}],"games":[],"achievements":[{"title":"Artistic Crystal (Crystal 1.0 Conference 2021)","category":"Talks","date":"2021","issuer":"Crystal 1.0 Conference","description":"Conference talk exploring how to leverage Crystal's macro system, raw execution speed, and C bindings for creative coding, generative art, and graphical applications.","link":"https://www.youtube.com/watch?v=8jJtgMwZzf0"}],"posts":[]}
1100,"javascript":{"name":"JavaScript","slug":"javascript","category":"Languages","years":"14 years","date_started":"2010-01-01","description":"Dynamic scripting language for web application logic and interactive client-side components.","long_description_html":"<p>JavaScript powers modern client-side application logic and web interactivity. Used for interactive web components, dynamic web dashboards, and browser-based graphics tools.</p>\n","icon":"js.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"/></svg>","links":[{"key":"website","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript"}],"projects":[],"games":[],"achievements":[],"posts":[]},"kubernetes":{"name":"Kubernetes","slug":"kubernetes","category":"Tools & Infrastructure","years":"6 years","date_started":"2018-01-01","description":"Container orchestration, cluster deployment management, and microservice scaling.","long_description_html":"<p>Kubernetes provides automated container orchestration, service discovery, load balancing, and rolling updates. Experience deploying microservices, managing ingress controllers, and maintaining cloud Kubernetes clusters.</p>\n","icon":"layer-group.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"/></svg>","links":[{"key":"website","url":"https://kubernetes.io"}],"projects":[],"games":[],"achievements":[],"posts":[]},"linux_kernel":{"name":"Linux Kernel","slug":"linux_kernel","category":"Systems & Security","years":"14 years","date_started":"2010-01-01","description":"In-depth Linux system administration, kernel diagnostics, performance tuning, and low-level system calls.","long_description_html":"<p>Extensive experience configuring, troubleshooting, and securing Linux operating systems across embedded devices, cloud virtual machines, and bare-metal servers. Skilled in tracing system calls, analyzing kernel crash dumps, optimizing I/O performance, and configuring custom kernel builds.</p>\n","icon":"linux.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.
11001-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"/></svg>","links":[{"key":"kernel","url":"https://www.kernel.org"}],"projects":[],"games":[],"achievements":[],"posts":[{"title":"Firmware Analysis","url":"./vstarcam_journey/7.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":7,"date":"2019-09-03"}]},"low_poly_3d_modeling":{"name":"Low Poly 3D Modelling","slug":"low_poly_3d_modeling","category":"Design & Art","years":"4 years","date_started":"2020-01-01","description":"Creating retro-styled, low-polygon 3D models and environmental assets optimized for game engines.","long_description_html":"<p>Low poly 3D modeling focuses on creating stylized, memory-efficient polygonal assets, retro environment art, and pixel-mapped 3D meshes for indie games and real-time engines.</p>\n","icon":"cube.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Low_poly"}],"projects":[{"title":"Low Poly Items and Room Environment","url":"./projects/assets/models/low_poly_room_environment.html","description":"A low-poly collection of 3D models and room environment assets covered under CC-BY 4.0.","section":"assets"}],"games":[{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"}],"achievements":[],"posts":[{"title":"Library of Babel Modeling, Atrium Teleports & Lobby Expansion","url":"./liminalita_devlog/2.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":2,"date":"2025-06-11"}]},"midi":{"name":"MIDI","slug":"midi","category":"Audio & Music","years":"6 years","date_started":"2018-01-01","description":"Musical Instrument Digital Interface standard for digital music composition, synth communication, and note sequencing.","long_description_html":"<p>MIDI (Musical Instrument Digital Interface) provides event-based protocol standards for note sequencing, hardware synthesizer control, virtual instruments, and software music composition.</p>\n","icon":"music.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/MIDI"}],"projects":[],"games":[],"achievements":[],"posts":[]},"modular_synth":{"name":"Modular Synth","slug":"modular_synth","category":"Audio & Music","years":"4 years","date_started":"2020-01-01","description":"Designing electronic audio signals using interconnected sound modules, generators, and filters.","long_description_html":"<p>Modular synthesis involves interconnecting separate modules (VCOs, VCFs, LFOs, envelopes
1100) to create complex procedural soundscapes, dynamic game SFX, and synth textures.</p>\n","icon":"sliders.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Modular_synthesizer"}],"projects":[{"title":"SunVox Animalese Generator","url":"./projects/assets/sounds/anamalese_generator.html","description":"Animalese voice generator module for the SunVox modular synthesizer engine.","section":"assets"},{"title":"solvox","url":"./projects/programs/solvox.html","description":"An esoteric, Wireland-inspired modular synth and tracker built off the SunVox developer library.","section":"programs"},{"title":"libsunvox","url":"./projects/libraries/libsunvox.html","description":"C-bindings for the SunVox audio library modular synthesizer engine, written in Crystal.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"nginx":{"name":"Nginx","slug":"nginx","category":"Tools & Infrastructure","years":"8 years","date_started":"2016-01-01","description":"High-performance HTTP web server, reverse proxy, and SSL/TLS termination configuration.","long_description_html":"<p>Nginx is an HTTP web server, reverse proxy, and load balancer. I configure Nginx for secure web application routing, SSL/TLS certificate automation, static asset caching, rate limiting, and CORS headers management.</p>\n","icon":"server.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"/></svg>","links":[{"key":"website","url":"https://nginx.org"}],"projects":[],"games":[],"achievements":[],"posts":[]},"obs_studio":{"name":"OBS Studio","slug":"obs_studio","category":"Tools & Software","years":"5 years","date_started":"2019-01-01","description":"Open Broadcaster Software for video recording, live streaming, and gameplay footage capture.","long_description_html":"<p>OBS Studio is the industry-standard software for high-performance video recording, screen capture, live streaming, and demonstration video production.</p>\n","icon":"video.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"/></svg>","links":[{"key":"website","url":"https://obsproject.com"}],"projects":[],"games":[],"achievements":[],"posts":[]},"opentofu":{"name":"OpenTofu","slug":"opentofu","category":"Tools & Infrastru
1100cture","years":"2 years","date_started":"2022-01-01","description":"Open-source Infrastructure-as-Code tool for provisioning and managing cloud infrastructure.","long_description_html":"<p>OpenTofu provides community-driven declarative infrastructure management for cloud infrastructure across AWS, DigitalOcean, and Heroku.</p>\n","icon":"layer-group.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"/></svg>","links":[{"key":"website","url":"https://opentofu.org"}],"projects":[],"games":[],"achievements":[],"posts":[]},"playstation_2":{"name":"PlayStation 2","slug":"playstation_2","category":"Platforms & Hardware","years":"3 years","date_started":"2023-01-01","description":"PlayStation 2 architecture, Emotion Engine MIPS R5900, Graphics Synthesizer, SPRAM, and homebrew runtime engineering.","long_description_html":"<p>Developing native software and custom bytecode virtual machines for Sony&#39;s PlayStation 2 hardware, leveraging the 128-bit Emotion Engine, DMA channels, Scratchpad RAM, and PCSX2 emulation debugging.</p>\n","icon":"gamepad.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"/></svg>","links":[],"projects":[{"title":"Citrine","url":"./projects/programs/citrine.html","description":"PlayStation 2 virtual machine, game engine, and CLI development toolchain written in Crystal.","section":"programs"}],"games":[],"achievements":[],"posts":[]},"python":{"name":"Python","slug":"python","category":"Languages","years":"10 years","date_started":"2014-01-01","description":"A versatile high-level programming language used for scripting, security tools, and automation.","long_description_html":"<p>Python is a high-level interpreted programming language known for its clear syntax and vast ecosystem. I utilize Python for exploit proof-of-concept development, protocol reverse engineering, network security toolkits, automated data processing pipelines, and system administration scripts.</p>\n","icon":"python.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z\"/></svg>","links":[{"key":"website","url":"https://www.python.org"}],"projects":[{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[],"posts":[]},"radare2":{"name":"radare2","slug":"radare2","category":"Systems & Security","years":"6 years","date_started":"2018-01-01","description":"UNIX-style reverse engineering framework, binary disassembler, hex editor, and debugger.","long_description_html":"<p>radare2 is a portable, modular reverse-engineering framework and binary analysis toolset. I utilize radare2 for binary forensics, firmware analysis, disassembly, and automated debugging through custom pipes and plugins like cradare2.</p>\n","icon":"magnifying-glass.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1100<path fill=\"currentColor\" d=\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"/></svg>","links":[{"key":"website","url":"https://rada.re/n/"},{"key":"github","url":"radareorg/radare2"}],"projects":[{"title":"Citrine","url":"./projects/programs/citrine.html","description":"PlayStation 2 virtual machine, game engine, and CLI development toolchain written in Crystal.","section":"programs"},{"title":"cradare2","url":"./projects/libraries/cradare2.html","description":"High-performance radare2 pipe and binary analysis toolkit for Crystal with interactive debugging, source line mapping, and crash diagnosis.","section":"libraries"},{"title":"Rubellite","url":"./projects/libraries/rubellite.html","description":"Next-generation bidirectional Crystal <-> Ruby interop, Spinel AOT compiler, CSP concurrency channels, and radare2 diagnostics.","section":"libraries"},{"title":"Lapis","url":"./projects/libraries/lapis.html","description":"Modern, idiomatic Godot Engine 4.8+ bindings for Crystal via GDExtension C-API.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"raylib":{"name":"Raylib","slug":"raylib","category":"Libraries & Frameworks","years":"5 years","date_started":"2019-01-01","description":"A simple and easy-to-use C library to enjoy videogames programming.","long_description_html":"<p>
1100Raylib is an open-source C library designed for 2D/3D graphics, windowing, audio, and game development. I authored <code>raylib-cr</code> (Crystal bindings for Raylib) and have created various game jam entries and interactive tools using Raylib.</p>\n","icon":"gamepad.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"/></svg>","links":[{"key":"website","url":"https://www.raylib.com"},{"key":"github","url":"raysan5/raylib"}],"projects":[{"title":"crixel","url":"./projects/libraries/crixel.html","description":"A Flixel-inspired 2D game engine framework written in Crystal.","section":"libraries"},{"title":"raylib-cr","url":"./projects/libraries/raylib_cr.html","description":"Crystal language bindings for the raylib game development library.","section":"libraries"},{"title":"wireland","url":"./projects/programs/wireland.html","description":"An esoteric circuit simulator written in Crystal.","section":"programs"},{"title":"pixel_lang_crystal","url":"./projects/programs/pixel_lang_crystal.html","description":"An esoteric programming language entirely in pixels, implemented in Crystal.","section":"programs"}],"games":[{"title":"Mineshift","url":"https://mineshift.sol.vin","description":"[PROCJAM 2021] Scroll through an infinite generative chasm. Interactive procedural art made with Crystal and Raylib.","subdomain":"mineshift","engine":"Crystal & Raylib"}],"achievements":[{"title":"PROCJAM 2021","category":"Game Jams","date":"2021","issuer":"Itch.io Jam","description":"A annual celebration of making things that make things! PROCJAM encourages procedural art, generative algorithms, and endless world building.","link":"https://itch.io/jam/procjam2021"}],"posts":[{"title":"Intro","url":"./pixellang/0.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":0,"date":"2019-09-05"},{"title":"More Instructions","url":"./pixellang/1.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":1,"date":"2019-09-06"},{"title":"Showcase","url":"./pixellang/2.html","chain_title":"PixelLang Esoteric Language","category":"pixellang","index":2,"date":"2019-09-07"}]},"reverse_engineering":{"name":"Reverse Engineering","slug":"reverse_engineering","category":"Systems & Security","years":"8 years","date_started":"2016-01-01","description":"Disassembling and decompiling embedded firmware, binary executables, and proprietary network protocols.","long_description_html":"<p>Reverse engineering involves analyzing binary executables, assembly code, and embedded hardware interfaces without source code access. I utilize disassemblers, decompilers, and static analysis tools to discover zero-day vulnerabilities, audit IoT camera firmware, and decipher proprietary protocols.</p>\n","icon":"magnifying-glass.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"/></svg>","links":[{"key":"ghidra","url":"https://ghidra-sre.org"}],"projects":[{"title":"Citrine","url":"./projects/programs/citrine.html","description":"PlayStation 2 virtual machine, game engine, and CLI development toolchain written in Crystal.","section":"programs"},{"title":"cradare2","url":"./projects/libraries/cradare2.html","description":"High-performance radare2 pipe and binary analysis toolkit for Crystal with interactive debugging, source line mapping, and crash diagnosis.","section":"libraries"},{"title":"Rubellite","url":"./projects/libraries/rubellite.html","description":"Next-generation bidirectional Crystal <-> Ruby interop, Spinel AOT compiler, CSP concurrency channels, and radare2 diagnostics.","section":"libraries"},{"title":"Lapis","url":"./projects/libraries/lapis.html","description":"Modern, idiomatic Godot Engine 4.8+ bindings for Crystal via GDExtension C-API.","section":"libraries"},{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"xiongmai-investigational-journey","url":"./projects/programs/xiongmai_investigational_journey.html","description":"Investigation script toolkit, hashes database, and fuzzers for Xiongmai cameras.","section":"programs"},{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11878 - Xiongmai Size Integer Overflow","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a remote size integer overflow vulnerability leading to buffer overflow and remote execution risks in Xiongmai IP camera devices.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11878"},{"title":"CVE-2019-11014 - VStarCam Client Hijacking","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a Man-In-The-Middle (MITM) client hijacking vulnerability in VStarCam IP camera firmware, tied to botnet infrastru
1100cture research.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11014"}],"posts":[{"title":"Intro","url":"./vstarcam_journey/0.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":0,"date":"2019-09-03"},{"title":"Network Protocol Analysis","url":"./vstarcam_journey/1.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":1,"date":"2019-09-03"},{"title":"Password Hashes & Exploitation","url":"./vstarcam_journey/2.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":2,"date":"2019-09-03"},{"title":"Hardware Dumping","url":"./vstarcam_journey/3.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":3,"date":"2019-09-03"},{"title":"Writing a Client","url":"./vstarcam_journey/4.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":4,"date":"2019-09-03"},{"title":"Memory Leaks and De-serialization","url":"./vstarcam_journey/5.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":5,"date":"2019-09-03"},{"title":"Firmware Analysis","url":"./vstarcam_journey/7.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":7,"date":"2019-09-03"},{"title":"Re-evaluating fixed vulnerabilities","url":"./vstarcam_journey/10.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":10,"date":"2019-09-03"},{"title":"Intro","url":"./xiongmai_journey/0.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":0,"date":"2019-09-04"},{"title":"Hardware","url":"./xiongmai_journey/1.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":1,"date":"2019-09-04"},{"title":"Hashing","url":"./xiongmai_journey/3.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":3,"date":"2019-09-04"},{"title":"Basic Fuzzing","url":"./xiongmai_journey/4.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":4,"date":"2019-09-04"},{"title":"Advanced Fuzzing","url":"./xiongmai_journey/5.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":5,"date":"2019-09-04"}]},"ruby":{"name":"Ruby","slug":"ruby","category":"Languages","years":"10 years","date_started":"2014-01-01","description":"A dynamic, open-source programming language with a focus on simplicity and productivity.","long_description_html":"<p>Ruby is a dynamic object-oriented programming language designed for developer happiness and readable code. Over the past decade, I have used Ruby extensively for full-stack web applications, automation scripting, REST API backends, and system integration tools.</p>\n","icon":"gem.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"/></svg>","links":[{"key":"website","url":"https://www.ruby-lang.org"}],"projects":[{"title":"Rubellite","url":"./projects/libraries/rubellite.html","description":"Next-generation bidirectional Crystal <-> Ruby interop, Spinel AOT compiler, CSP concurrency channels, and radare2 diagnostics.","section":"libraries"}],"games":[],"achievements":[],"posts":[]},"security_research":{"name":"Security Research","slug":"security_research","category":"Security","years":"7 years","date_started":"2017-01-01","description":"Analyzing hardware, firmware, and web applications to discover vulnerabilities and document security risks.","long_description_html":"<p>Security research involves vulnerability discovery, threat modeling, protocol analysis, and hardware/firmware auditing across IoT devices, web services, and binary software.</p>\n","icon":"user-secret.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M171-16c-36.4 0-57.8 58.3-68.3 112L72 9
11006c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"/></svg>","links":[{"key":"cve","url":"https://cve.mitre.org"}],"projects":[{"title":"cradare2","url":"./projects/libraries/cradare2.html","description":"High-performance radare2 pipe and binary analysis toolkit for Crystal with interactive debugging, source line mapping, and crash diagnosis.","section":"libraries"},{"title":"crowbar","url":"./projects/libraries/crowbar.html","description":"An all-purpose fuzzer built in Crystal to generate bad data cases from sample input.","section":"libraries"},{"title":"xet","url":"./projects/programs/xet.html","description":"Xiongmai Exploitation Toolkit for interacting with and analyzing Xiongmai-based camera systems.","section":"programs"},{"title":"xiongmai-investigational-journey","url":"./projects/programs/xiongmai_investigational_journey.html","description":"Investigation script toolkit, hashes database, and fuzzers for Xiongmai cameras.","section":"programs"},{"title":"vstarcam-investigational-journey","url":"./projects/programs/vstarcam_investigational_journey.html","description":"Research tools, exploits, and PoCs from the VStarCam investigational journey.","section":"programs"}],"games":[],"achievements":[{"title":"CVE-2019-11878 - Xiongmai Size Integer Overflow","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a remote size integer overflow vulnerability leading to buffer overflow and remote execution risks in Xiongmai IP camera devices.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11878"},{"title":"CVE-2019-11014 - VStarCam Client Hijacking","category":"CVEs","date":"2019","issuer":"MITRE","description":"Discovered and disclosed a Man-In-The-Middle (MITM) client hijacking vulnerability in VStarCam IP camera firmware, tied to botnet infrastructure research.","link":"https://www.cve.org/CVERecord?id=CVE-2019-11014"}],"posts":[{"title":"Intro","url":"./vstarcam_journey/0.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":0,"date":"2019-09-03"},{"title":"Network Protocol Analysis","url":"./vstarcam_journey/1.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":1,"date":"2019-09-03"},{"title":"Password Hashes & Exploitation","url":"./vstarcam_journey/2.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":2,"date":"2019-09-03"},{"title":"Hardware Dumping","url":"./vstarcam_journey/3.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":3,"date":"2019-09-03"},{"title":"Writing a Client","url":"./vstarcam_journey/4.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":4,"date":"2019-09-03"},{"title":"Reversing authentication","url":"./vstarcam_journey/6.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":6,"date":"2019-09-03"},{"title":"Post Mortem & Fixes","url":"./vstarcam_journey/9.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":9,"date":"2019-09-03"},{"title":"Re-evaluating fixed vulnerabilities","url":"./vstarcam_journey/10.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":10,"date":"2019-09-03"},{"title":"Intro","url":"./xiongmai_journey/0.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":0,"date":"2019-09-04"},{"title":"Hardware","url":"./xiongmai_journey/1.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":1,"date":"2019-09-04"},{"title":"Software Overview and Audit","url":"./xiongmai_journey/2.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":2,"date":"2019-09-04"},{"title":"Hashing","url":"./xiongmai_journey/3.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":3,"date":"2019-09-04"},{"title":"Basic Fuzzing","url":"./xiongmai_journey/4.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":4,"date":"2019-09-04"},{"title":"Advanced Fuzzing","url":"./xiongmai_journey/5.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":5,"date":"2019-09-04"},{"title":"Fuzzing With Radamsa","url":"./xiongmai_journey/6.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":6,"date":"2019-09-04"},{"title":"Brute Force","url":"./xiongmai_journey/7.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":7,"date":"2019-09-04"},{"title":"Denial of Service","url":"./xiongmai_journey/8.html","chain_title":"Xiongmai Security Research","category":"xiongmai_journey","index":8,"date":"2019-09-04"}]},"shaders":{"name":"Shaders","slug":"shaders","category":"Graphics & Game Dev","years":"4 years","date_started":"2020-01-01","description":"GPU shader programming for custom visual effects, post-processing, and material lighting.","long_description_html":"<p>Shader programming enables custom GPU pixel and vertex manipulation for real-time graphics, lighting models, and retro visual post-processing effects.</p>\n","icon":"sparkles.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zm-185 20.1c-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3l-53.1 115-115 53.1C3.6 244.1 0 249.8 0 256s3.6 11.9 9.3 14.5l115 53.1 53.1 115c2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3l53.1-115 115-53.1c5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5l-115-53.1-53.1-115zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Shader"}],"projects":[{"title":"Opal","url":"./projects/libraries/opal.html","description":"Next-generation terminal user interface (TUI) framework and Elm Architecture engine for Crystal.","section":"libraries"},{"title":"CRShader","url":"./projects/libraries/crshader.html","description":"Ultrafast shader trans-compiler and live runtime development toolchain for Godot Engine 4.8+ via Crystal and Lapis.","section":"libraries"},{"title":"Low-Poly Precision Outline Shader for Godot 4","url":"./projects/assets/shaders/low_poly_pos.html","description":"A precision surface map pre-computed outline shader for Godot 4 that works on Web, Mobile, and Desktop.","section":"assets"}],"games":[{"title":"BOX WARP","url":"https://box-warp.sol.vin","description":"[TRIJAM 346] A box warping puzzle game made in 3 hours for TRIJAM 346.","subdomain":"box-warp","engine":"Godot 4"},{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"},{"title":"Soulantern","url":"https://soulantern.sol.vin","description":"[1DAYJAM #3 WINNER] High-speed first-person precision platformer propelled by lantern recoil momentum and aerial dashes.","subdomain":"soulantern","engine":"Godot 4.3"},{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"},{"title":"The Problem With Trolleys","url":"https://trolleys.sol.vin","description":"[TRIJAM 363 WINNER] A short 3hr game jam puzzle game about managing trolley switches without crashing trains.","subdomain":"trolleys","engine":"Godot 4"}],"achievements":[{"title":"TRIJAM 363","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"TRIJAM 363 
1100challenged creators to complete a full game in under 3 hours of total production time. 'The Problem With Trolleys' won 1st Place overall!","link":"https://itch.io/jam/trijam-363"},{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"},{"title":"1-DAY JAM #3","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"1-DAY JAM #3 challenged game developers to complete a full game in under 24 hours around the theme 'FIRE'. Soulantern won 1st Place overall!","link":"https://itch.io/jam/1-day-jam-3"},{"title":"TRIJAM 346","category":"Game Jams","date":"2025","issuer":"Itch.io Jam","description":"A fast-paced 3-hour game jam where developers have a strict 3-hour development window to design and build a complete game around a secret theme.","link":"https://itch.io/jam/trijam-346"}],"posts":[{"title":"Project Origins, Gallery Concepts & Spatial Illusions","url":"./liminalita_devlog/0.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":0,"date":"2025-05-19"},{"title":"Shader Optimization & Visual Refinements","url":"./liminalita_devlog/3.html","chain_title":"Liminalita Devlog","category":"liminalita_devlog","index":3,"date":"2025-08-19"}]},"simulation":{"name":"Simulation","slug":"simulation","category":"Computer Science","years":"4 years","date_started":"2020-01-01","description":"Modeling complex real-world or artificial systems, cellular automata, and interactive agent behaviors.","long_description_html":"<p>Simulation development covers cellular automata (Wireworld, Game of Life), physics state updates, and agent-based systemic simulations.</p>\n","icon":"atom.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Simulation"}],"projects":[{"title":"Diorite","url":"./projects/libraries/diorite.html","description":"High-priority 2D and 3D debug drawing plugin and zero-allocation frame DSL for Godot Engine 4.8+ via Lapis.","section":"libraries"},{"title":"wireland","url":"./projects/programs/wireland.html","description":"An esoteric circuit simulator written in Crystal.","section":"programs"}],"games":[],"achievements":[],"posts":[]},"sip":{"name":"SIP","slug":"sip","category":"Networking & Security","years":"6 years","date_started":"2018-01-01","description":"Session Initiation Protocol (RFC 3261) used for signaling and controlling VoIP communication sessions.","long_description_html":"<p>Session Initiation Protocol (SIP) is an application-layer control protocol for creating, modifying, and terminating real-time sessions like VoIP calls. My work includes analyzing SIP call flows, auditing SIP user agents on IoT cameras, and dissecting authentication mechanisms.</p>\n","icon":"phone.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c
11005.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"/></svg>","links":[{"key":"rfc","url":"https://datatracker.ietf.org/doc/html/rfc3261"}],"projects":[],"games":[],"achievements":[],"posts":[]},"static_analysis":{"name":"Static Analysis","slug":"static_analysis","category":"Systems & Security","years":"8 years","date_started":"2016-01-01","description":"Auditing source code and binary assets to detect software flaws, security anti-patterns, and compliance issues.","long_description_html":"<p>Static analysis encompasses inspecting codebase ASTs, control flow graphs, and data flows without executing code. I use static analyzers and custom parsing scripts to detect vulnerability patterns (integer overflows, buffer handling, memory safety) early in development.</p>\n","icon":"magnifying-glass.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"/></svg>","links":[{"key":"cwe","url":"https://cwe.mitre.org"}],"projects":[{"title":"Jasper","url":"./projects/libraries/jasper.html","description":"Modular structured guide, book, and documentation compiler for Crystal docs.","section":"libraries"},{"title":"cradare2","url":"./projects/libraries/cradare2.html","description":"High-performance radare2 pipe and binary analysis toolkit for Crystal with interactive debugging, source line mapping, and crash diagnosis.","section":"libraries"},{"title":"crowbar","url":"./projects/libraries/crowbar.html","description":"An all-purpose fuzzer built in Crystal to generate bad data cases from sample input.","section":"libraries"}],"games":[],"achievements":[],"posts":[{"title":"Memory Leaks and De-serialization","url":"./vstarcam_journey/5.html","chain_title":"VStarCam Security Research","category":"vstarcam_journey","index":5,"date":"2019-09-03"}]},"sunvox":{"name":"SunVox","slug":"sunvox","category":"Audio & Music","years":"5 years","date_started":"2019-01-01","description":"Small, fast, and powerful modular synthesizer and pattern-based tracker for music composition.","long_description_html":"<p>SunVox is a flexible modular synth tracker. Used for composing original chiptune soundtracks, game SFX, and integrating native SunVox audio engines via libsunvox C bindings.</p>\n","icon":"music.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"/></svg>","links":[{"key":"website","url":"https://www.warmplace.ru/soft/sunvox/"}],"projects":[{"title":"SunVox Animalese Generator","url":"./projects/assets/sounds/anamalese_generator.html","description":"Animalese voice generator module for the SunVox modular synthesizer engine.","section":"assets"},{"title":"solvox","url":"./projects/programs/solvox.html","description":"An esoteric, Wireland-inspired modular synth and tracker built off the SunVox developer library.","section":"programs"},{"title":"libsunvox","url":"./projects/libraries/libsunvox.html","description":"C-bindings for the SunVox audio library modular synthesizer engine, written in Crystal.","section":"libraries"}],"games":[{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"},{"title":"Solo Oasis : Unlimited Places","url":"https://soup.sol.vin","description":"A surreal, minimalist walking simulator collaboration consisting of fever-dream rooms, inspired by SOUP and LSD: Dream Emulator.","subdomain":"soup","engine":"Godot 4.3"}],"achievements":[{"title":"SOUPJAM 2026","category":"Game Jams","date":"2026","issuer":"Itch.io Jam","description":"A collaborative 72-hour game jam focused on creating interconnected surreal rooms and walking experiences inspired by SOUP and LSD: Dream Emulator.","link":"https://itch.io/jam/soupjam2026"}],"posts":[]},"svg":{"name":"SVG","slug":"svg","category":"Design & Art","years":"6 years","date_started":"2018-01-01","description":"Scalable Vector Graphics XML format for resolution-independent vector illustrations and programmatic rendering.","long_description_html":"<p>Scalable Vector Graphics (SVG) is an XML-based vector image format. Used for creating UI icon sets, generating programmatic vector graphics in Crystal/Ruby, and clean web illustrations.</p>\n","icon":"vector-square.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm64 0l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4z\"/></svg>","links":[{"key":"website","url":"https://www.w3.org/TR/SVG2/"}],"projects":[{"title":"celestine","url":"./projects/libraries/celestine.html","description":"An SVG library and DSL written in Crystal for creating generative art, animations, and graphics.","section":"libraries"}],"games":[],"achievements":[{"title":"Generative Art, SVG, and Celestine (Raw Crystal 2020)","category":"Talks","date":"2020","issuer":"Raw Crystal 2020","description":"Presentation detailing vector mathematics, procedural graphics generation in SVG format, and architectural decisions behind the Celestine library in Crystal.","link":"https://www.youtube.com/watch?v=X150LMZy7uY"}],"posts":[]},"terraform":{"name":"Terraform","slug":"terraform","category":"Tools & Infrastru
1100cture","years":"6 years","date_started":"2018-01-01","description":"Declarative Infrastructure-as-Code (IaC) tool for provisioning cloud resources.","long_description_html":"<p>Terraform enables declarative management of cloud infrastructure via code, enabling reproducible state and automated deployment pipelines across AWS and cloud providers.</p>\n","icon":"layer-group.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"/></svg>","links":[{"key":"website","url":"https://www.terraform.io"}],"projects":[],"games":[],"achievements":[],"posts":[]},"trenchbroom":{"name":"TrenchBroom","slug":"trenchbroom","category":"Design & Art","years":"2 years","date_started":"2022-01-01","description":"Cross-platform level editor for Quake-style engine maps and 3D level design.","long_description_html":"<p>TrenchBroom is a modern, intuitive level editor designed for Quake-style brush geometry and 3D level construction for classic retro FPS engines and Godot integrations.</p>\n","icon":"box.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"/></svg>","links":[{"key":"website","url":"https://trenchbroom.github.io"}],"projects":[],"games":[{"title":"BOX WARP","url":"https://box-warp.sol.vin","description":"[TRIJAM 346] A box warping puzzle game made in 3 hours for TRIJAM 346.","subdomain":"box-warp","engine":"Godot 4"},{"title":"Liminalita","url":"https://liminalita.sol.vin","description":"(IN DEVELOPMENT) A 3D first-person procedural art gallery and walking simulator.","subdomain":"liminalita","engine":"Godot 4"}],"achievements":[{"title":"TRIJAM 346","category":"Game Jams","date":"2025","issuer":"Itch.io Jam","description":"A fast-paced 3-hour game jam where developers have a strict 3-hour development window to design and build a complete game around a secret theme.","link":"https://itch.io/jam/trijam-346"}],"posts":[]},"tui":{"name":"Terminal UI","slug":"tui","category":"Tools & Frameworks","years":"5 years","date_started":"2019-01-01","description":"Terminal user interface architecture, Elm architecture (TEA), ANSI escape sequences, and virtual terminal emulation.","long_description_html":"<p>Building rich, double-buffered, and accessible terminal user interfaces using ANSI/VT100 escape codes, TrueColor rasterization, and Elm-inspired architecture models.</p>\n","icon":"terminal.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"/></svg>","links":[],"projects":[{"title":"Fluorite","url":"./projects/libraries/fluorite.html","description":"Modern FFMPEG bindings, fluent Crystal DSL, streaming process wrapper, smart presets, and interactive Opal TUI.","section":"libraries"},{"title":"Opal","url":"./projects/libraries/opal.html","description":"Next-generation terminal user interface (TUI) framework and Elm Architecture engine for Crystal.","section":"libraries"}],"games":[],"achievements":[],"posts":[]}
1100,"typescript":{"name":"TypeScript","slug":"typescript","category":"Languages","years":"6 years","date_started":"2018-01-01","description":"Strongly typed programming language that builds on JavaScript for scalable front-end and back-end development.","long_description_html":"<p>TypeScript enables robust type safety across large web applications, client-side tools, and web integrations.</p>\n","icon":"js.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"/></svg>","links":[{"key":"website","url":"https://www.typescriptlang.org"}],"projects":[],"games":[],"achievements":[],"posts":[]},"voip":{"name":"VoIP","slug":"voip","category":"Networking & Security","years":"6 years","date_started":"2018-01-01","description":"Voice over Internet Protocol technologies for real-time voice, video, and multimedia communication over IP networks.","long_description_html":"<p>VoIP encompasses protocols and media streaming technologies (SIP, RTP, RTSP, SDP) enabling audio/video transport over IP networks.</p>\n","icon":"phone.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"/></svg>","links":[{"key":"wikipedia","url":"https://en.wikipedia.org/wiki/Voice_over_IP"}],"projects":[],"games":[],"achievements":[],"posts":[]},"vscode":{"name":"VS Code","slug":"vscode","category":"Developer Tools","years":"7 years","date_started":"2017-01-01","description":"Lightweight, extensible code editor used for daily multi-language development and debugging.","long_description_html":"<p>Visual Studio Code is a cross-platform source-code editor with native debugging support, Git integration, custom tasks, and extensive extension ecosystems for Crystal, Ruby, Python, and C/C++.</p>\n","icon":"code.svg","svg_content":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"/></svg>","links":[{"key":"website","url":"https://code.visualstudio.com"}],"projects":[],"games":[],"achievements":[],"posts":[]}}
1101  </script>
1101
1102
1103  <div id="favorite-modal-overlay" class="skill-modal-overlay" role="dialog" aria-modal="true" aria-labelledby="favorite-modal-title">
1104    <div class="terminal-window skill-modal-window favorite-modal-window">
1105      <div class="window-header">
1106        <h1 id="favorite-modal-title" class="window-title"><span class="window-header-icon" title="Favorite Spec"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z"/></svg></span>FAVORITE // Specification // Media Details</h1>
1107        <div class="window-controls">
1108          <span id="favorite-modal-close-btn" class="window-btn skill-modal-close window-btn-close" title="Close Window"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span>
1109        </div>
1110      </div>
1111      <div class="window-body favorite-modal-body">
1112        <div id="favorite-modal-single-body">
1113          <div class="skill-modal-meta">
1114            <div><strong>Category:</strong> <span id="favorite-modal-category"></span></div>
1115            <div id="favorite-modal-creator-wrap"><strong>Creator:</strong> <span id="favorite-modal-creator"></span></div>
1116            <div id="favorite-modal-year-wrap"><strong>Year:</strong> <span id="favorite-modal-year"></span></div>
1117            <div id="favorite-modal-rating-wrap"><strong>Rating:</strong> <span id="favorite-modal-rating"></span></div>
1118            <div id="favorite-modal-links-wrap">
1119              <strong>Link:</strong>
1120              <span id="favorite-modal-links"></span>
1121            </div>
1122          </div>
1123          <div class="skill-modal-short-desc" id="favorite-modal-short-desc"></div>
1124          <div class="skill-modal-long-desc" id="favorite-modal-long-desc"></div>
1125          
1126          <div id="favorite-modal-player-section">
1127            <h2 class="modal-section-h2">[ MEDIA PLAYER / EMBED ]</h2>
1128            <div id="favorite-modal-player-container"></div>
1129          </div>
1130        </div>
1131
1132        <div id="favorite-modal-collection-body">
1133          <div class="skill-modal-meta favorite-modal-meta">
1134            <div><strong>Artist / Creator:</strong> <span id="favorite-modal-col-creator"></span></div>
1135            <div><strong>Total Tracks / Items:</strong> <span id="favorite-modal-col-count" class="fav-badge-collection fav-badge-collection-inline"></span></div>
1136            <div id="favorite-modal-col-link-wrap">
1137              <a id="favorite-modal-col-artist-link" href="#" target="_blank" class="accolade-link-btn" title="View Artist Profile"><span>ARTIST WEBSITE / PROFILE →</span></a>
1138            </div>
1139          </div>
1140          <div class="fav-desc" id="favorite-modal-col-desc"></div>
1141          
1142          <div class="favorite-modal-section-divider">
1143            <h2 class="modal-section-h2">[ COLLECTION PLAYERS &amp; MEDIA LINKS ]</h2>
1144            <div id="favorite-modal-items-container"></div>
1145          </div>
1146        </div>
1147      </div>
1148    </div>
1149  </div>
1150
1151  <div id="jam-modal-overlay" class="skill-modal-overlay" role="dialog" aria-modal="true" aria-labelledby="jam-modal-title">
1152    <div class="terminal-window skill-modal-window jam-modal-window">
1153      <div class="window-header">
1154        <h1 id="jam-modal-title" class="window-title"><span class="window-header-icon" title="Game Jam Spec"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1154<path fill="currentColor" d="M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"/></svg></span>JAM // Specification // Event Details</h1>
1155        <div class="window-controls">
1156          <span id="jam-modal-close-btn" class="window-btn skill-modal-close window-btn-close" title="Close Window"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></span>
1157        </div>
1158      </div>
1159      <div class="window-body">
1160        <h2 id="jam-modal-name"></h2>
1161        <p id="jam-modal-tagline"></p>
1162        
1163        <div class="skill-modal-meta jam-modal-meta-grid">
1164          <div id="jam-modal-host-wrap"><strong>Host / Organizer:</strong> <span id="jam-modal-host"></span></div>
1165          <div id="jam-modal-dates-wrap"><strong>Dates:</strong> <span id="jam-modal-dates"></span></div>
1166          <div id="jam-modal-link-wrap"><strong>Link:</strong> <span id="jam-modal-link"></span></div>
1167        </div>
1168
1169        <div id="jam-modal-live-stats-wrap">
1170          <h3 class="jam-modal-section-h3">[ LIVE JAM STATS ]</h3>
1171          <div id="jam-modal-live-stats" class="project-live-stats jam-live-stats"></div>
1172        </div>
1173
1174        <div id="jam-modal-desc-wrap">
1175          <h3 class="jam-modal-section-h3">[ OVERVIEW ]</h3>
1176          <p id="jam-modal-desc"></p>
1177        </div>
1178
1179        <div id="jam-modal-games-wrap">
1180          <h3 class="jam-modal-section-h3">[ SUBMITTED GAMES ]</h3>
1181          <div id="jam-modal-games-list"></div>
1182        </div>
1183      </div>
1184    </div>
1185  </div>
1186
1187  <div id="carousel-thumbs-modal-overlay" class="skill-modal-overlay" role="dialog" aria-modal="true" aria-labelledby="carousel-thumbs-modal-title">
1188    <div class="terminal-window skill-modal-window carousel-thumbs-window">
1189      <div class="window-header window-header-flex">
1190        <h1 id="carousel-thumbs-modal-title" class="window-title carousel-thumbs-title">
1191          <span class="window-header-icon" title="Gallery Selector"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1191<path fill="currentColor" d="M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z"/></svg></span>GALLERY // Slide Selector // Thumbnails
1192        </h1>
1193        <div class="window-controls">
1194          <button type="button" id="carousel-thumbs-modal-close" class="window-btn window-btn-close" title="Close Gallery"><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg></span><span class="window-btn-icon-wrap"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></span><span class="window-btn-bracket"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg></span></button>
1195        </div>
1196      </div>
1197
1198      <div class="window-body carousel-thumbs-body">
1199        <div id="carousel-thumbs-modal-grid"></div>
1200        
1201        <div id="carousel-thumbs-modal-pagination">
1202          <button type="button" id="carousel-thumbs-prev-page" class="export-btn export-btn-page">[ ◄ PREV PAGE ]</button>
1203          <span id="carousel-thumbs-page-badge">[ PAGE 1 / 1 ]</span>
1204          <button type="button" id="carousel-thumbs-next-page" class="export-btn export-btn-page">[ NEXT PAGE ► ]</button>
1205        </div>
1206      </div>
1207    </div>
1208  </div>
1209
1210  <div id="game-player-modal-overlay" class="skill-modal-overlay" role="dialog" aria-modal="true" aria-labelledby="game-player-modal-title">
1211    <div id="game-player-window" class="terminal-window game-player-window">
1212      <div class="window-header game-player-window-header">
1213        <h1 id="game-player-modal-title" class="window-title game-player-modal-title">
1214          <span class="window-header-icon" title="Game Player"><svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"/></svg></span>PLAYER // Web Game // Godot &amp; Emulators
1215        </h1>
1216        <div class="window-controls game-player-controls">
1217          <button type="button" id="game-player-maximize-btn" class="window-btn window-btn-clean" title="Maximize Window to Viewport">
1218            <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"/></svg>
1219            <span id="maximize-btn-text">[ MAXIMIZE ]</span>
1220          </button>
1221          <button type="button" id="game-player-fullscreen-btn" class="window-btn window-btn-clean" title="Fullscreen Monitor Mode">
1222            <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"/></svg>
1223            <span>[ FULLSCREEN ]</span>
1224          </button>
1225          <button type="button" id="game-player-close-btn" class="window-btn window-btn-clean" title="Close Game">
1226            <svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg>
1227            <span>[ CLOSE ]</span>
1228          </button>
1229        </div>
1230      </div>
1231
1232      <div class="window-body game-player-window-body">
1233        <iframe id="game-player-iframe" data-src="./shell.html" allow="autoplay; fullscreen; focus-without-user-activation; cross-origin-isolated; pointer-lock; gamepad" credentialless></iframe>
1234      </div>
1235    </div>
1236  </div>
1237
1238  
1238<script id="favorites-catalog-data" type="application/json">
1239{"frieren":{"name":"Frieren","title":"Frieren: Beyond Journey's End","slug":"frieren","category":"Anime","type":"standard","is_collection":false,"creator":"Keiichiro Saito","label":null,"studio":"Madhouse","year":"2023-2024","rating":"8.9/10 IMDb","description":"Masterpiece fantasy anime about an elven mage reflecting on time, mortality, human relationships, and memories after defeating the Demon King.","long_description_html":"<p>Frieren: Beyond Journey&#39;s End (Sousou no Frieren) is an extraordinary high-fantasy anime produced by Madhouse. Rather than focusing on the battle to save the world, the story begins after the 10-year hero quest has concluded. Frieren, an immortal elven mage, grapples with the fleeting nature of human lifespan as her former companions age and pass away, prompting her to embark on a quiet journey to retrace their path and understand human hearts.</p>\n","url":"https://www.imdb.com/title/tt22248376/","link_type":"imdb","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":"tt22248376","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Anime","High Fantasy","Slice of Life","Adventure","Madhouse"],"items":[]},"tatami_galaxy":{"name":"The Tatami Galaxy","title":"The Tatami Galaxy","slug":"tatami_galaxy","category":"Anime","type":"standard","is_collection":false,"creator":"Masaaki Yuasa","label":null,"studio":"Madhouse / Noitamina","year":"2010","rating":"8.4/10 IMDb","description":"Visually inventive and fast-paced anime series directed by Masaaki Yuasa following a college student trapped in parallel timelines searching for the rose-colored campus life.","long_description_html":"<p>Based on Tomihiko Morimi&#39;s novel and directed by visionary Masaaki Yuasa, The Tatami Galaxy is a landmark 11-episode anime masterpiece. Utilizing rapid-fire dialogue, kinetic mixed-media animation, and Groundhog Day-style parallel universe timelines, the series follows a nameless college student in Kyoto as he resets his college years repeatedly to find true fulfillment, friendship with Ozu, and love with Akashi.</p>\n","url":"https://www.imdb.com/title/tt1847445/","link_type":"imdb","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":"tt1847445","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Anime","Surreal","Comedy","Psychological","Masaaki Yuasa"],"items":[]},"2_mello":{"name":"2 Mello","title":"2 Mello","slug":"2_mello","category":"Collections","type":"collection","is_collection":true,"creator":"2 Mello","label":null,"studio":null,"year":null,"rating":null,"description":"Hip-hop producer, composer, and sound designer known for Jet Set Radio spiritual successor soundtracks and funky breakbeats.","long_description_html":"","url":"https://2mello.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Jet Set Radio","Cyberfunk","Hip-Hop","Breakbeat","OST","YouTube"],"items":[{"title":"Memories Of Tokyo-To (Full Album)","url":"https://www.youtube.com/watch?v=OBt8ioYEXBw","description":"Full tribute concept album to Jet Set Radio featuring high-energy funk and scratching.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"OBt8ioYEXBw","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Sounds Of Tokyo-To Future (Full Album)","url":"https://youtu.be/upIDgvEJrlg","description":"Follow-up album expanding the funky cyberpunk soundscapes with new vocal collabs.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"upIDgvEJrlg","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Sunsound Collisions (Full Album)","url":"https://www.youtube.com/watch?v=Ua0_JA4xQQg","description":"Smooth boom-bap hip-h
1239op and sample-heavy beat tape.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"Ua0_JA4xQQg","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"anamanaguchi":{"name":"Anamanaguchi","title":"Anamanaguchi","slug":"anamanaguchi","category":"Collections","type":"collection","is_collection":true,"creator":"Anamanaguchi","label":null,"studio":null,"year":null,"rating":null,"description":"Loud, hyperactive chiptune indie rock quartet utilizing NES and Game Boy sound generators blended with live instrumentation.","long_description_html":"","url":"https://soundcloud.com/anamanaguchi","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Chiptune","Indie Rock","Scott Pilgrim","8-Bit","SoundCloud"],"items":[{"title":"Another Winter (Scott Pilgrim OST)","url":"https://soundcloud.com/anamanaguchi/another-winter","description":"Legendary overworld theme from Scott Pilgrim vs. The World: The Game OST.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/anamanaguchi/another-winter","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Air On Line","url":"https://soundcloud.com/anamanaguchi/anamanaguchi-air-on-line","description":"High-concept electronic rock piece from [USA].","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/anamanaguchi/anamanaguchi-air-on-line","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Lorem Ipsum (Arctic Anthem)","url":"https://soundcloud.com/anamanaguchi/anamanaguchi-lorem-ipsum-arctic-anthem","description":"Fast-tempo anthemic 8-bit rock cut.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/anamanaguchi/anamanaguchi-lorem-ipsum-arctic-anthem","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Pop It (ABSRDST Remix)","url":"https://soundcloud.com/anamanaguchi/pop-it-absrdst-remix","description":"Glitchy bass remix by producer ABSRDST.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/anamanaguchi/pop-it-absrdst-remix","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"android52":{"name":"Android52","title":"Android52","slug":"android52","category":"Collections","type":"collection","is_collection":true,"creator":"Android52","label":"Neoncity Records","studio":null,"year":null,"rating":null,"description":"High-energy French Touch, Future Funk, and anime groove productions by Android52 on Neoncity Records.","long_description_html":"","url":"https://neoncityrecords.bandcamp.com/album/future-groove-product","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","French Touch","Neoncity Records","Electronic","Bandcamp"],"items":[{"title":"Future Groove Product","url":"https://neoncityrecords.bandcamp.com/album/future-groove-product","description":"Dynamic 10-track Future Funk album packed with driving basslines and anime sample chops.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/future-groove-product","bandcamp_album_id":"2395065892","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"}]},"caravan_palace":{"name":"Caravan Palace","title":"Caravan Palace","slug":"caravan_palace","category":"Collections","type":"collection","is_collection":true,"creator":"Caravan Palace","label":null,"studio":null,"year":null,"rating":null,"description":"Pioneering French electro-swing and gypsy jazz band blending acoustic instruments with electronic house beats.","long_description_html":"","url":"https://soundcloud.com/caravan-palace-official","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Electro-Swing","Gypsy Jazz","French House","SoundCloud"],"items":[{"title":"Lone Digger","url":"https://soundcloud.com/caravan-palace-official/lone-digger","description":"Breakout platinum electro-swing anthem with driving bass and brass hooks.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/caravan-palace-official/lone-digger","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Good Mouse","url":"https://soundcloud.com/caravan-palace-official/good-mouse-1","description":"Funky, swing-infused electro track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/caravan-palace-official/good-mouse-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"cinematic_sequences":{"name":"Cinematic Sequences","title":"Cinematic Sequences","slug":"cinematic_sequences","category":"Collections","type":"collection","is_collection":true,"creator":"Cinematic Sequences","label":null,"studio":null,"year":null,"rating":null,"description":"Ambient, lo-fi, and chill synth soundscapes inspired by retro aesthetics, daily rhythms, and late night cityscapes.","long_description_html":"","url":"https://cinematicsequences.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Ambient","Lo-Fi","Synthwave","Chillwave","Bandcamp"],"items":[{"title":"Night Shift","url":"https://cinematicsequences.bandcamp.com/album/night-shift","description":"Atmospheric late-night synth sounds.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://cinematicsequences.bandcamp.com/album/night-shift","bandcamp_album_id":"4290757090","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Day Shift","url":"https://cinematicsequences.bandcamp.com/album/day-shift","description":"Bright daytime chill beats and electronic grooves.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://cinematicsequences.bandcamp.com/album/day-shift","bandcamp_album_id":"1731191999","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Casual Restaurant","url":"https://cinematicsequences.bandcamp.com/album/casual-restaurant","description":"Relaxed background ambient tunes for casual listening.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://cinematicsequences.bandcamp.com/album/casual-restaurant","bandcamp_album_id":"2380808922","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Between Exits","url":"https://cinematicsequences.bandcamp.com/album/between-exits","de
1239scription":"Dreamy highway synthscapes and transitional ambient journeys.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://cinematicsequences.bandcamp.com/album/between-exits","bandcamp_album_id":"2238275806","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"}]},"darren_korb":{"name":"Darren Korb","title":"Darren Korb","slug":"darren_korb","category":"Collections","type":"collection","is_collection":true,"creator":"Darren Korb","label":null,"studio":"Supergiant Games","year":null,"rating":null,"description":"Iconic video game original soundtracks composed by Darren Korb for Supergiant Games.","long_description_html":"","url":"https://www.supergiantgames.com","link_type":"link","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["OST","Video Games","Acoustic / Electronic","Supergiant Games"],"items":[{"title":"Bastion OST","url":"https://www.youtube.com/watch?v=2mdQBvMBnKk&list=PL53mjgVKFq7yPfCiSJaA_aI2SPKrnEmmJ","description":"Acoustic trip-hop soundtrack for Bastion.","link_type":"youtube","embed_type":"playlist","soundcloud_url":null,"youtube_id":"2mdQBvMBnKk","youtube_playlist_id":"PL53mjgVKFq7yPfCiSJaA_aI2SPKrnEmmJ","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Transistor OST","url":"https://www.youtube.com/watch?v=ql8K3KJyWgY&list=PL53mjgVKFq7y63ke-WLKrowba3mdSEJMf","description":"Electronic post-rock and vocals soundtrack for Transistor.","link_type":"youtube","embed_type":"playlist","soundcloud_url":null,"youtube_id":"ql8K3KJyWgY","youtube_playlist_id":"PL53mjgVKFq7y63ke-WLKrowba3mdSEJMf","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Hades 1 OST","url":"https://www.youtube.com/watch?v=3GRKJ87S5cI","description":"Heavy Mediterranean rock and orchestral soundscapes for Hades.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"3GRKJ87S5cI","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Hades 2 OST","url":"https://www.youtube.com/watch?v=jfIuPRP94WI","description":"Dark witchy rock and orchestral themes for Hades II.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"jfIuPRP94WI","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"heaven_pierce_her":{"name":"Heaven Pierce Her","title":"Heaven Pierce Her","slug":"heaven_pierce_her","category":"Collections","type":"collection","is_collection":true,"creator":"Heaven Pierce Her (Hakita)","label":null,"studio":null,"year":null,"rating":null,"description":"Aggressive industrial metal, cyber breakcore, and frantic dynamic battle soundtracks composed by Hakita for ULTRAKILL.","long_description_html":"","url":"https://soundcloud.com/user-362886855","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["ULTRAKILL","Industrial Metal","Breakcore","OST","Hakita"],"items":[{"title":"War Without Reason (ULTRAKILL 7-4 Theme)","url":"https://youtu.be/Elj4zDLqJvw","de
1239scription":"Epic multi-phase climactic boss theme for the Earthmover in Violence layer (7-4).","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"Elj4zDLqJvw","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"War Without Reason (SoundCloud cut)","url":"https://soundcloud.com/mael-bouchereau/heaven-pierce-her-war-without","description":"Violence layer climax battle theme.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/mael-bouchereau/heaven-pierce-her-war-without","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"The World Looks Red (ULTRAKILL 7-1)","url":"https://soundcloud.com/mael-bouchereau/heaven-pierce-her-the-world","description":"Haunting acoustic opening transitioning into relentless industrial breakcore for 7-1.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/mael-bouchereau/heaven-pierce-her-the-world","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Suffering Leaves Suffering Leaves (ULTRAKILL 7-3)","url":"https://soundcloud.com/vipery-belarus/suffering-leaves-suffering","description":"Intense atmospheric battle theme for Violence layer 7-3.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/vipery-belarus/suffering-leaves-suffering","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Order (ULTRAKILL Minos Prime Theme)","url":"https://soundcloud.com/sexballs/03-order","description":"Legendary piano and speed-metal boss theme for Prime Sanctum P-1 (Minos Prime).","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sexballs/03-order","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"A Complete and Utter Destruction of the Senses","url":"https://soundcloud.com/sexballs/07-a-complete-and-utter","description":"Frantic breakcore assault track from the ULTRAKILL soundtrack.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sexballs/07-a-complete-and-utter","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Deep Blue (ULTRAKILL 5-1 Wrath Layer)","url":"https://soundcloud.com/sexballs/06-deep-blue","description":"Melodic underwater breakcore and guitar track for Oceanstaring (5-1).","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sexballs/06-deep-blue","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"The Shattering Circle (Combat 18)","url":"https://soundcloud.com/duckoliumuploads5/ultrakill-ost-the-shattering-circle-or-a-charade-of-shadeless-ones-and-zeroes-rearranged-ad-nihilum-combat-18","description":"High-energy combat sequence arrangement.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/duckoliumuploads5/ultrakill-ost-the-shattering-circle-or-a-charade-of-shadeless-ones-and-zeroes-rearranged-ad-nihilum-combat-18","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"The Break (Crimson Glass deComposition)","url":"https://soundcloud.com/duckoliumuploads5/ultrakill-ost-the-break-1","description":"Intense combat variation theme with atmospheric build.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/duckoliumuploads5/ultrakill-ost-the-break-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"A Shattered Illusion","url":"https://soundcloud.com/das-itmane/ultrakill-ost-a-shattered","description":"Speed metal guitar and glitch drum grooves.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/das-itmane/ultrakill-ost-a-shattered","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"No Devil Lived On","url":"https://soundcloud.com/user-362886855/no-devil-lived-on-ultrakill-1","description":"High-octane industrial metal combat theme for ULTRAKILL.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/user-362886855/no-devil-lived-on-ultrakill-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Event Horizon / Reach for the...","url":"https://soundcloud.com/user-362886855/event-horizon-reach-for-the","description":"Atmospheric and intense soundtrack cut.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/user-362886855/event-horizon-reach-for-the","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"kokonoku":{"name":"kokonoku","title":"kokonoku","slug":"kokonoku","category":"Collections","type":"collection","is_collection":true,"creator":"kokonoku","label":null,"studio":null,"year":null,"rating":null,"description":"Melodic chill lo-fi beats, lyrical hip-hop rhymes, and emotive electronic soundscapes by kokonoku.","long_description_html":"","url":"https://soundcloud.com/kokonoku","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Lo-Fi","Hip-Hop","Chill","S
1239oundCloud"],"items":[{"title":"SUMMER WAS AWFUL","url":"https://soundcloud.com/kokonoku/summer-was-awful","description":"Reflective lo-fi hip-hop track capturing summer nostalgia.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/kokonoku/summer-was-awful","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"WHO IS SHE?","url":"https://soundcloud.com/kokonoku/who-is-she","description":"Introspective beat with vocal samples and warm keys.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/kokonoku/who-is-she","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"why do shorties write rhymes?","url":"https://soundcloud.com/kokonoku/why-do-shorties-write-rhymes","description":"Laid-back boom-bap rhythm and playful cadence.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/kokonoku/why-do-shorties-write-rhymes","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"luminous_orange":{"name":"Luminous Orange","title":"Luminous Orange","slug":"luminous_orange","category":"Collections","type":"collection","is_collection":true,"creator":"Luminous Orange","label":null,"studio":null,"year":null,"rating":null,"description":"Japanese dream pop and shoegaze band led by Rie Takeuchi, famous for ethereal vocals, lush guitar walls, and intricate math rock rhythms.","long_description_html":"","url":"https://www.youtube.com/user/luminousorange","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Shoegaze","Dream Pop","Math Rock","Japanese Indie","YouTube"],"items":[{"title":"The White Moon","url":"https://www.youtube.com/watch?v=N4Xr2tuiDWw","description":"Ethereal, swirling shoegaze masterpiece from Drop You Vivid Colours.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"N4Xr2tuiDWw","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Sea of Lights","url":"https://www.youtube.com/watch?v=aT0XPrvtwis","description":"Polyrhythmic math-rock guitars and heavenly vocal harmonies.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"aT0XPrvtwis","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"macross_82_99":{"name":"Macross 82-99","title":"Macross 82-99","slug":"macross_82_99","category":"Collections","type":"collection","is_collection":true,"creator":"Macross 82-99","label":"Neoncity Records","studio":null,"year":null,"rating":null,"description":"Pioneering Future Funk, French Touch, and Japanese 80s anime-infused dance discography by Mexican producer Macross 82-99.","long_description_html":"","url":"https://macross82-99.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","French Touch","City Pop","Anime Groove","Bandcamp","Electronic"],"items":[{"title":"SAILORWAVE","url":"https://neoncityrecords.bandcamp.com/album/sailorwave","description":"The quintessential landmark 2013 Future Funk album that defined the genre.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/sailorwave","bandcamp_album_id":"1892710195","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"SAILORWAVE II","url":"https://neoncityrecords.bandcamp.com/album/sailorwave-ii","description":"High-energy sequel album bursting with brass, disco basslines, and anime samples.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/sailorwave-ii","bandcamp_album_id":"4064191542","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"SAILORWAVE III","url":"https://neoncityrecords.bandcamp.com/album/sailorwave-iii-2","description":"The grand third installment in the legendary Sailorwave trilogy.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/sailorwave-iii-2","bandcamp_album_id":"1995491460","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"10 Million Miles Away","url":"https://neoncityrecords.bandcamp.com/album/10-million-miles-away","description":"Classic 2014 Future Funk album featuring upbeat French House grooves.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/10-million-miles-away","bandcamp_album_id":"2135592731","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Summer Touch","url":"https://neoncityrecords.bandcamp.com/album/summer-touch","de
1239scription":"Breezy summer City Pop and house album released on Neoncity Records.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/summer-touch","bandcamp_album_id":"829133684","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"ネオ東京 (Neo Tokyo)","url":"https://neoncityrecords.bandcamp.com/album/neo-tokyo","description":"Early 2013 classic featuring cyberpunk aesthetic and sample chops.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/neo-tokyo","bandcamp_album_id":"354036144","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Idols, Sakura","url":"https://neoncityrecords.bandcamp.com/album/idols-sakura","description":"Iconic EP exploring Japanese idol aesthetics and upbeat dance music.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/idols-sakura","bandcamp_album_id":"596354313","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Shibuya Meltdown","url":"https://neoncityrecords.bandcamp.com/album/shibuya-meltdown","description":"Urban club funk with heavier French Touch synth basslines.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/shibuya-meltdown","bandcamp_album_id":"1461554244","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Love 4 You","url":"https://neoncityrecords.bandcamp.com/album/love-4-you","description":"Modern French Touch & Future Funk singles compilation.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/love-4-you","bandcamp_album_id":"3937905813","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"At Night","url":"https://soundcloud.com/macross-82-99/at-night-1","description":"Smooth late-night Future Funk cut.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/at-night-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Melt (ft. Puniden)","url":"https://soundcloud.com/macross-82-99/melt-ft-puniden-shibuya-meltdown-out-now","description":"Collaborative Shibuya Meltdown single with punipunidenki.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/melt-ft-puniden-shibuya-meltdown-out-now","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Private Caller (Macross 82-99 Edit)","url":"https://soundcloud.com/macross-82-99/private-caller-macross-82-99-edit","description":"Famous rework of Saint Pepsi's Private Caller.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/private-caller-macross-82-99-edit","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"For You (feat. Morning)","url":"https://soundcloud.com/macross-82-99/for-you-feat-morning-summer-touch-now-available","description":"Sunny, warm Summer Touch single.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/for-you-feat-morning-summer-touch-now-available","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Fresh ! (feat. Flamingosis)","url":"https://soundcloud.com/macross-82-99/fresh-feat-flamingosis","description":"Funky chill collab with producer Flamingosis.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/fresh-feat-flamingosis","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Cool Soda","url":"https://soundcloud.com/macross-82-99/cool-soda","description":"Bubbly and energetic classic anime dance track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/cool-soda","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Now Or Never (Flamingosis x Macross 82-99)","url":"https://soundcloud.com/flamingosis/flamingosis-x-macross-82-99-now-or-never","description":"Signature disco funk beat collaboration.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/flamingosis/flamingosis-x-macross-82-99-now-or-never","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Sakurafubuki (feat. Punipunidenki & Le Real)","url":"https://soundcloud.com/macross-82-99/sakurafubuki-feat-punipunidenki-le-real","description":"Silky smooth City Pop house single with punipunidenki and Lé Real.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/macross-82-99/sakurafubuki-feat-punipunidenki-le-real","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"milk_talk":{"name":"Milk Talk","title":"Milk Talk (ミルクトーク)","slug":"milk_talk","category":"Collections","type":"collection","is_collection":true,"creator":"Milk Talk","label":null,"studio":null,"year":null,"rating":null,"description":"Japanese/American synth-funk and neo-city pop duo consisting of producer Hair Kid and singer-songwriter Q.i, crafting breezy, infectious disco and retro-futuristic boogie anthems.","long_description_html":"","url":"https://www.youtube.com/@MilkTalk","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["City Pop","Synth Funk","Neo City Pop","Nu-Disco","J-Pop","YouTube"],"items":[{"title":"The Bay","url":"https://www.youtube.com/watch?v=h0kEsJIY6qs","description":"Breez
1239y, sun-soaked neo-city pop and 80s boogie-funk anthem featuring sparkling synths and silky Japanese/English vocals.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"h0kEsJIY6qs","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Electric Indigo","url":"https://www.youtube.com/watch?v=olYRn-v4pQ8","description":"Pulsing neon synth-pop groove with infectious slap bass, driving drums, and vibrant bilingual hooks.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"olYRn-v4pQ8","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"The Velvet Line","url":"https://www.youtube.com/watch?v=j-QkNPTkC8M","description":"Late-night boogie, future funk, and electro-pop fusion with driving synth bass and catchy vocoder accents.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"j-QkNPTkC8M","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"DE DE MOUSE & Milk Talk - Beautiful Criminal","url":"https://www.youtube.com/watch?v=pA37MUCOYyY","description":"High-octane collaborative future city pop and disco single between DE DE MOUSE and Milk Talk.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"pA37MUCOYyY","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Medusa","url":"https://www.youtube.com/watch?v=8r_W7Rc0u3M","description":"Snappy retro-funk and electro-disco dance track with groovy basslines and hypnotic vocal harmonies.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"8r_W7Rc0u3M","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"moe_shop":{"name":"Moe Shop","title":"Moe Shop","slug":"moe_shop","category":"Collections","type":"collection","is_collection":true,"creator":"Moe Shop","label":null,"studio":null,"year":null,"rating":null,"description":"French Touch electronic music, anime sample chops, club house, and Future Funk grooves by producer Moe Shop.","long_description_html":"","url":"https://soundcloud.com/moeshop","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["French House","Future Funk","Anime Groove","Electronic","SoundCloud"],"items":[{"title":"Charm (w/ Puniden) [Music Video]","url":"https://youtu.be/1iKZhsc8WGs","description":"Official animated music video for Charm featuring punipunidenki.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"1iKZhsc8WGs","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Charm (w/ Puniden)","url":"https://soundcloud.com/moeshop/charm-puniden","description":"Ultra-catchy J-pop house single with silky punipunidenki vocals.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/charm-puniden","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Complications","url":"https://soundcloud.com/moeshop/complications","description":"Bouncy French Touch bassline and vocal chops.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/complications","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Newly Human Feeling (feat. Jamie Paige)","url":"https://soundcloud.com/moeshop/newly-human-feeling","description":"Glitchy, emotive Future Bass / French House single with Jamie Paige.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/newly-human-feeling","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Synchronizer (KMNZ prod. Moe Shop)","url":"https://www.youtube.com/watch?v=TsILoCA8Mm4","description":"Official music video for Virtual Hip-hop duo KMNZ produced by Moe Shop.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"TsILoCA8Mm4","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Identity (w/ SEIJ)","url":"https://soundcloud.com/moeshop/identity","de
1239scription":"Upbeat French House collab featuring SEIJ.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/identity","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Tokyo Night Flyght (Moe Shop Remix)","url":"https://soundcloud.com/attackthemusic/timemaxeras-tokyo-night-flyght-moe-shop-remix","description":"High-energy dance floor remix of TiMEMAXERAS.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/attackthemusic/timemaxeras-tokyo-night-flyght-moe-shop-remix","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"UKIYO (TEMPURA KIDZ & Moe Shop)","url":"https://soundcloud.com/moeshop/ukiyo","description":"Collaborative Japanese electronic single with TEMPURA KIDZ.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/ukiyo","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Virtual (w/ Puniden)","url":"https://soundcloud.com/moeshop/virtual","description":"Funky French House single with punipunidenki.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/virtual","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Lovesick (w/ maisou)","url":"https://soundcloud.com/moeshop/lovesick","description":"Melodic club track featuring Japanese indie artist maisou.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/lovesick","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Magic (w/ MYLK)","url":"https://soundcloud.com/moeshop/magic","description":"Bright, bubbly electronic house single with MYLK.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/magic","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"ULTRAFINE (Lé Real & Moe Shop)","url":"https://soundcloud.com/nikon9200/ultrafine-prod-tsun-dealer","description":"Classic Future Funk collab produced by Lé Real & Moe Shop.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/nikon9200/ultrafine-prod-tsun-dealer","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Silhouette","url":"https://soundcloud.com/moeshop/silhouette","description":"Popular French Touch house single with upbeat vocals.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/silhouette","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Owarini Liveshow","url":"https://soundcloud.com/futuresocietycollective/moe-shop-owarini-tokyo-liveshow","description":"High-energy live DJ set recorded at Owarini in Tokyo.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/futuresocietycollective/moe-shop-owarini-tokyo-liveshow","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Waifu Material","url":"https://soundcloud.com/futuresocietycollective/moe-shop-waifu-material-mixtape","description":"Landmark Future Funk and French House mixtape.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/futuresocietycollective/moe-shop-waifu-material-mixtape","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Moe Moe","url":"https://soundcloud.com/moeshop/sets/moe-moe","description":"Moe Moe EP set on SoundCloud.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/moeshop/sets/moe-moe","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"night_tempo":{"name":"Night Tempo","title":"Night Tempo","slug":"night_tempo","category":"Collections","type":"collection","is_collection":true,"creator":"Night Tempo","label":"Neoncity Records","studio":null,"year":null,"rating":null,"description":"Selected discography and Showa Groove remixes by South Korean Future Funk and City Pop producer Night Tempo.","long_description_html":"","url":"https://nighttempo.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","City Pop","Showa Groove","Vaporwave","Electronic","Bandcamp"],"items":[{"title":"Nighty Tape","url":"https://neoncityrecords.bandcamp.com/album/nighty-tape","description":"Essential 80s City Pop flipped into upbeat Future Funk grooves by Night Tempo.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/nighty-tape","bandcamp_album_id":"1324499771","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Moonrise","url":"https://nighttempo.bandcamp.com/album/moonrise","description":"Retro 80s synth vibes and disco boogie tracks.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://nighttempo.bandcamp.com/album/moonrise","bandcamp_album_id":"1899802584","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Fantasy","url":"https://neoncityrecords.bandcamp.com/album/fantasy","description":"18-track Future Funk extravaganza released via Neoncity Records.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/fantasy","bandcamp_album_id":"1942155638","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Babymaker 2","url":"https://nighttempo.bandcamp.com/album/babymaker-2","description":"Smooth, sensuous retro boogie and chill Future Funk beats.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://nighttempo.bandcamp.com/album/babymaker-2","bandcamp_album_id":"874626386","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Sentimental (Neon Mix) [feat. Miyu Takeuchi]","url":"https://soundcloud.com/ntreboot/sentimental-neon-mix-feat-miyu","description":"Lush City Pop collaboration featuring vocals by Miyu Takeuchi.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/sentimental-neon-mix-feat-miyu","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Dreams of Light","url":"https://soundcloud.com/ntreboot/dreams-of-light","description":"Sparkling retro synthesizer melody and driving dance beat.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/dreams-of-light","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Kiss Kara Hajimeru Mystery","url":"https://soundcloud.com/ntreboot/kiss-kara-hajimeru-mistery","description":"High-energy Showa Groove edit with classic Japanese 80s idol hooks.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/kiss-kara-hajimeru-mistery","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Tokyo in the Blue","url":"https://soundcloud.com/ntreboot/tokyo-in-the-blue","description":"Late-night metropolitan synth grooves and nostalgic samples.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/tokyo-in-the-blue","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Tell Me Tell Me","url":"https://soundcloud.com/ntreboot/tell-me-tell-me","description":"Uptempo disco house rhythm and catchy vocal sample loops.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/tell-me-tell-me","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"I Wanna Be With You","url":"https://soundcloud.com/ntreboot/i-wanna-be-with-you","description":"Romantic 80s City Pop boogie edit.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/i-wanna-be-with-you","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}
1239,{"title":"Rats & Star - Megumi no Hito (Night Tempo Showa Groove Mix)","url":"https://soundcloud.com/ntreboot/ratsstar","description":"Official Showa Groove remix of the timeless 1983 classic Megumi no Hito.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/ratsstar","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"I Must Change My Life & Love For Me (Night Tempo Showa Groove Mix)","url":"https://soundcloud.com/ntreboot/changemylife","description":"Vibrant Showa Groove rework of 80s J-pop.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/changemylife","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Patchwork Love","url":"https://soundcloud.com/ntreboot/patchworklove","description":"Collaboration with punipunidenki and Pasocom Music Club.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/patchworklove","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Mint","url":"https://soundcloud.com/ntreboot/mint","description":"Crisp, refreshing Future Funk club single.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/mint","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Better Days (feat. Puniden, Super Brass)","url":"https://soundcloud.com/ntreboot/better-days-feat-puniden-super-brass","description":"Uplifting neo-city-pop single with live brass sections and punipunidenki vocals.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ntreboot/better-days-feat-puniden-super-brass","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Lil Bit","url":"https://www.youtube.com/watch?v=u93UQcoB-rM","description":"Catchy single with energetic retro synth chops.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"u93UQcoB-rM","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Silhouette","url":"https://www.youtube.com/watch?v=PX4YAla7u3A&list=RDTxhlbeNG0sY&index=24","description":"Smooth synthwave and disco groove.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"PX4YAla7u3A","youtube_playlist_id":"RDTxhlbeNG0sY","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"nujabes":{"name":"Nujabes","title":"Nujabes","slug":"nujabes","category":"Collections","type":"collection","is_collection":true,"creator":"Nujabes","label":null,"studio":null,"year":null,"rating":null,"description":"Pioneering Japanese hip-hop producer and DJ whose jazz-infused beats defined the modern lo-fi and chillhop movements.","long_description_html":"","url":"https://soundcloud.com/junseba","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Lo-Fi Hip-Hop","Jazz Rap","Samurai Champloo","Chillhop","YouTube","SoundCloud"],"items":[{"title":"Nujabes Essential Discography Mix","url":"https://www.youtube.com/watch?v=m4fDm4rdUdk","description":"Complete curated journey through Nujabes' most memorable jazz-hop masterpieces.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"m4fDm4rdUdk","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Luv (Sic) Part 3 (Whos Theme Remix)","url":"https://soundcloud.com/bazfirstbounce/nujabes-luv-sic-part-3-whos","description":"Heartfelt remix blending Luv(Sic) with MINM
1239I's Who's Theme.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/bazfirstbounce/nujabes-luv-sic-part-3-whos","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"The Sign (feat. Pase Rock)","url":"https://soundcloud.com/headhunter0/07-nujabes-the-sign-feat-pase","description":"Soulful conscious hip-hop cut from Modal Soul featuring Pase Rock.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/headhunter0/07-nujabes-the-sign-feat-pase","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"oddeeo":{"name":"ODDEEO","title":"ODDEEO","slug":"oddeeo","category":"Collections","type":"collection","is_collection":true,"creator":"=ODDEEO=","label":null,"studio":null,"year":null,"rating":null,"description":"Innovative Vocaloid music, City Pop arrangements, saxophone solos, and glitch electronic pop by producer ODDEEO.","long_description_html":"","url":"https://soundcloud.com/oddeeoofficial","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Vocaloid","Hatsune Miku","City Pop","Saxophone","Electronic"],"items":[{"title":"Wonder (feat. Hatsune Miku) [Music Video]","url":"https://www.youtube.com/watch?v=JDpUO29cRmA","description":"Vocaloid City Pop music video featuring saxophone performance by Soneji.","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"JDpUO29cRmA","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Wonder (feat. Hatsune Miku) [MIKU EXPO 2024]","url":"https://soundcloud.com/oddeeoofficial/wonder-feat-hatsune-miku-miku-expo-2024","description":"Official MIKU EXPO 2024 submission track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/wonder-feat-hatsune-miku-miku-expo-2024","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Pacify (nostraightanswer - ODDEEO Remix)","url":"https://soundcloud.com/oddeeoofficial/nostraightanswer-pacify-oddeeo-remix","description":"High-energy electronic remix of nostraightanswer.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/nostraightanswer-pacify-oddeeo-remix","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"[HOME]","url":"https://soundcloud.com/oddeeoofficial/home","description":"Emotive ambient electronic soundscape.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/home","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Pavlo's Cues [ft. Megpoid GUMI]","url":"https://soundcloud.com/oddeeoofficial/pavlos-cues-ft-megpoid-gumi","description":"Complex syncopated rhythms with Megpoid GUMI vocals.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/pavlos-cues-ft-megpoid-gumi","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":">This_feeling_is_a_cliché...","url":"https://soundcloud.com/oddeeoofficial/this_feeling_is_a_cliche","description":"Experimental glitch pop and expressive synthesis.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/this_feeling_is_a_cliche","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"[SELF]","url":"https://soundcloud.com/oddeeoofficial/self","description":"Moody, evolving electronic instrumental.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/self","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Utopia [feat. Hatsune Miku]","url":"https://soundcloud.com/oddeeoofficial/utopia-feat-hatsune-miku-mikuexpo-contest-submission","description":"Dynamic MikuExpo contest entry track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/oddeeoofficial/utopia-feat-hatsune-miku-mikuexpo-contest-submission","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"plexi":{"name":"Plexi","title":"Plexi","slug":"plexi","category":"Collections","type":"collection","is_collection":true,"creator":"Plexi","label":null,"studio":null,"year":null,"rating":null,"description":"Futuristic edits, anime vocal reworks, and electronic beats by Plexi.","long_description_html":"","url":"https://soundcloud.com/plexi-two","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","Electronic","Anime Edits","SoundCloud"],"items":[{"title":"Your Love","url":"https://soundcloud.com/plexi-two/your-love","description":"Upbeat dance edit with sparkling synths.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/plexi-two/your-love","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Let Me Be With You (Plexi Edit)","url":"https://soundcloud.com/plexitofer/let-me-be-with-you-plexi-edit","description":"Chobits opening theme flipped into a bouncy club edit.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/plexitofer/let-me-be-with-you-plexi-edit","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"porter_robinson":{"name":"Porter Robinson","title":"Porter Robinson","slug":"porter_robinson","category":"Collections","type":"collection","is_collection":true,"creator":"Porter Robinson","label":null,"studio":null,"year":null,"rating":null,"description":"Visionary electronic, synth-pop, and emotive dance tracks spanning the Worlds and Nurture eras by Porter Robinson.","long_description_html":"","url":"https://soundcloud.com/porter-robinson","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Electronic","Synth-Pop","Worlds","Nurture","S
1239oundCloud"],"items":[{"title":"Sad Machine","url":"https://soundcloud.com/porter-robinson/sad-machine","description":"Iconic Worlds duet between Vocaloid AVANNA and Porter Robinson.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/sad-machine","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Get Your Wish","url":"https://soundcloud.com/porter-robinson/get-your-wish","description":"Lead single from Nurture with uplifting piano and pitch-shifted vocals.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/get-your-wish","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Something Comforting","url":"https://soundcloud.com/porter-robinson/something-comforting","description":"Heartfelt electronic indie-pop anthemic track from Nurture.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/something-comforting","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Get Your Wish (Anamanaguchi Remix)","url":"https://soundcloud.com/porter-robinson/get-your-wish-anamanaguchi","description":"Hyperactive chiptune rock remix by Anamanaguchi.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/get-your-wish-anamanaguchi","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Flicker","url":"https://soundcloud.com/porter-robinson/flicker","description":"Disco-influenced Worlds anthem built around hip-hop breakbeats.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/flicker","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Lionhearted (feat. Urban Cone)","url":"https://soundcloud.com/porter-robinson/lionhearted-feat-urban-cone","description":"Driving indie-electro track featuring Swedish indie band Urban Cone.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/lionhearted-feat-urban-cone","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Polygon Dust (feat. Charli XCX)","url":"https://soundcloud.com/porter-robinson/polygon-dust","description":"Melodic chiptune synth-pop cut from Worlds.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/polygon-dust","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Years of War (feat. Breanne Düren & Sean Caskey)","url":"https://soundcloud.com/porter-robinson/years-of-war","description":"Soaring, emotional 80s synth-pop vocal collaboration.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/years-of-war","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Fresh Static Snow","url":"https://soundcloud.com/porter-robinson/fresh-static-snow","description":"Aggressive distorted synthesizer bass drops paired with emotional melody.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/porter-robinson/fresh-static-snow","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"punipunidenki":{"name":"Punipunidenki","title":"Punipunidenki (ぷにぷに電機)","slug":"punipunidenki","category":"Collections","type":"collection","is_collection":true,"creator":"punipunidenki","label":null,"studio":null,"year":null,"rating":null,"description":"Enchanting neo-city pop, jazz fusion, and Jap
1239anese electronic soul compositions by singer-songwriter & producer Punipunidenki.","long_description_html":"","url":"https://soundcloud.com/puniden","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["City Pop","Neo Soul","Jazz Fusion","J-Pop","SoundCloud"],"items":[{"title":"Wonder Underground (EP Crossfade)","url":"https://soundcloud.com/puniden/wonderunderxfd","description":"Crossfade preview of the landmark Wonder Underground EP.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/puniden/wonderunderxfd","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Life is SUPER DOPE","url":"https://soundcloud.com/puniden/life-is-super-dope","description":"Funky indie pop single with soulful vocal hooks.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/puniden/life-is-super-dope","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Imaginary boi (w/ Mikazuki BIGWAVE)","url":"https://soundcloud.com/puniden/imaginaryboi_sample","description":"Collaborative Future Funk single with producer Mikazuki BIGWAVE.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/puniden/imaginaryboi_sample","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"A Drop","url":"https://soundcloud.com/puniden/a-drop","description":"Atmospheric electronic soul and minimal percussion.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/puniden/a-drop","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"INterNe... (インターネッ)","url":"https://soundcloud.com/puniden/interne","description":"Intimate cyber-nostalgic vocal cut.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/puniden/interne","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Miracle! (w/ うさこ kotu)","url":"https://soundcloud.com/kotu/miracle","description":"Bright, energetic electronic pop collaboration with kotu.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/kotu/miracle","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"shawn_wasabi":{"name":"Shawn Wasabi","title":"Shawn Wasabi","slug":"shawn_wasabi","category":"Collections","type":"collection","is_collection":true,"creator":"Shawn Wasabi","label":null,"studio":null,"year":null,"rating":null,"description":"Bubbly MIDI Fighter controllerism, bright bubblegum bass, and catchy pop productions by Shawn Wasabi.","long_description_html":"","url":"https://soundcloud.com/sssshawnnnn","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Midi Fighter","Bubblegum Bass","Pop","Electronic","SoundCloud"],"items":[{"title":"Marble Tea","url":"https://soundcloud.com/sssshawnnnn/marble-tea","description":"Complex Midi Fighter finger-drumming composition and upbeat synth melody.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/marble-tea","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"The Snack That Smiles Back (feat. Raychel Jay)","url":"https://soundcloud.com/sssshawnnnn/snack-feat-raychel-jay","description":"Playful and bouncy pop single with singer Raychel Jay.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/snack-feat-raychel-jay","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"HALO HALO (feat. Chevy)","url":"https://soundcloud.com/sssshawnnnn/halo-halo-feat-chevy","de
1239scription":"Sweet ukulele and pop collaboration celebrating the Filipino dessert.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/halo-halo-feat-chevy","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"MANGO LOVE (feat. Satica)","url":"https://soundcloud.com/sssshawnnnn/mango-love-feat-satica","description":"Tropical electronic pop groove featuring Satica.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/mango-love-feat-satica","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"MEDICINE (feat. Tia Scola)","url":"https://soundcloud.com/sssshawnnnn/medicine-feat-tia-scola","description":"Catchy electronic RnB and pop hybrid with Tia Scola.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/medicine-feat-tia-scola","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Princess Peach","url":"https://soundcloud.com/sssshawnnnn/princess-peach-2","description":"Chiptune-infused Midi Fighter live mashup tribute.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/princess-peach-2","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"ANIMAL CROSSING","url":"https://soundcloud.com/sssshawnnnn/animal-crossing-1","description":"Cozy, wholesome Nintendo-inspired sample track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/animal-crossing-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"LEMONS (feat. Kennedi)","url":"https://soundcloud.com/sssshawnnnn/lemons-feat-kennedi","description":"Citrusy, infectious summer pop single.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sssshawnnnn/lemons-feat-kennedi","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"snowshoo":{"name":"Snowshoo","title":"Snowshoo","slug":"snowshoo","category":"Collections","type":"collection","is_collection":true,"creator":"snowshoo","label":null,"studio":null,"year":null,"rating":null,"description":"Lush future beats, warm synthesizer chords, and chill electronic grooves by snowshoo.","long_description_html":"","url":"https://soundcloud.com/snowshoo","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Beats","Chill","Electronic","SoundCloud"],"items":[{"title":"My Love","url":"https://soundcloud.com/snowshoo/my-love","description":"Warm, melodic future beats track with vocal chops.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/snowshoo/my-love","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Touch","url":"https://soundcloud.com/snowshoo/touch","de
1239scription":"Silky smooth synth progressions and relaxed groove.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/snowshoo/touch","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"supercar":{"name":"Supercar","title":"Supercar (スーパーカー)","slug":"supercar","category":"Collections","type":"collection","is_collection":true,"creator":"Supercar","label":null,"studio":null,"year":null,"rating":null,"description":"Iconic Japanese indie rock, shoegaze, and electronic dance rock quartet known for defining the 90s/00s Japanese alternative sound.","long_description_html":"","url":"https://soundcloud.com/supercarofficial","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Japanese Rock","Shoegaze","Indie Rock","Electronic Rock","SoundCloud"],"items":[{"title":"Rollin' Rollin'","url":"https://soundcloud.com/supercarofficial/rollin-rollin-1","description":"Hypnotic electronic shoegaze groove from their experimental era.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/supercarofficial/rollin-rollin-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Last Scene","url":"https://soundcloud.com/supercarofficial/last-scene-1","description":"Melancholic alternative rock anthem with shimmering guitars.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/supercarofficial/last-scene-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Soratobi (空飛ぶ)","url":"https://soundcloud.com/nicholasmuldoon/supercar-soratobi","description":"Classic guitar rock track full of youthful noise pop energy.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/nicholasmuldoon/supercar-soratobi","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"HELP","url":"https://soundcloud.com/supercarofficial/help","description":"Driving indie rock cut with fuzzy distortion.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/supercarofficial/help","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"RECREATION","url":"https://soundcloud.com/supercarofficial/recreation","description":"Upbeat blend of electronic drum programming and indie guitar riffs.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/supercarofficial/recreation","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"HARMONY","url":"https://soundcloud.com/supercarofficial/harmony","description":"Dreamy atmospheric rock cut showcasing their electronic evolution.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/supercarofficial/harmony","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"team_reptile":{"name":"Team Reptile","title":"Team Reptile","slug":"team_reptile","category":"Collections","type":"collection","is_collection":true,"creator":"Team Reptile","label":null,"studio":"Team Reptile","year":null,"rating":null,"description":"High-energy fighting games and funk-infused soundtracks developed by indie studio Team Reptile.","long_description_html":"","url":"https://team-reptile.com","link_type":"link","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Indie Games","Cyberfunk","Breakbeat","Steam"],"items":[{"title":"Lethal League Blaze","url":"https://store.steampowered.com/app/553310/Lethal_League_Blaze/","description":"High-speed projectile fighting game with beat-matching mechanics.","link_type":"steam","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":"553310","bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"steam-symbol.svg"},{"title":"Lethal League Blaze OST","url":"https://www.youtube.com/watch?v=GT_DW35F-vw&list=PL5ZYa6WKvySBCqnkvR7y3pLpS2LbnUNja","de
1239scription":"Full Original Soundtrack for Lethal League Blaze featuring Hideki Naganuma, Frankkle, and more.","link_type":"youtube","embed_type":"playlist","soundcloud_url":null,"youtube_id":"GT_DW35F-vw","youtube_playlist_id":"PL5ZYa6WKvySBCqnkvR7y3pLpS2LbnUNja","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Bomb Rush Cyberfunk","url":"https://store.steampowered.com/app/1353230/Bomb_Rush_Cyberfunk/","description":"Cel-shaded graffiti action game inspired by Jet Set Radio.","link_type":"steam","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":"1353230","bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"steam-symbol.svg"},{"title":"Bomb Rush Cyberfunk OST","url":"https://www.youtube.com/watch?v=5t4KSZw_ekA&list=PLD6ujQ0tHAv2qLS5FKH6B8MjtfEg1kwsn","description":"Full Original Soundtrack for Bomb Rush Cyberfunk.","link_type":"youtube","embed_type":"playlist","soundcloud_url":null,"youtube_id":"5t4KSZw_ekA","youtube_playlist_id":"PLD6ujQ0tHAv2qLS5FKH6B8MjtfEg1kwsn","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"teddyloid":{"name":"TeddyLoid","title":"TeddyLoid","slug":"teddyloid","category":"Collections","type":"collection","is_collection":true,"creator":"TeddyLoid","label":null,"studio":null,"year":null,"rating":null,"description":"Japanese electronic music producer and DJ renowned for high-energy electro house, anime OSTs (Panty & Stocking, ME!ME!ME!), and bass music.","long_description_html":"","url":"https://www.teddyloid.com","link_type":"link","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Electro House","Anime OST","Bass Music","YouTube","SoundCloud"],"items":[{"title":"Angels and Demons","url":"https://www.youtube.com/watch?v=bBXDP2ZNq3Y","description":"Heavy electronic dance anthem with dark synth progression.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"bBXDP2ZNq3Y","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"},{"title":"Fly Away (Fusq Remix)","url":"https://youtu.be/57I3maUeP3c","description":"Panty & Stocking battle track remixed with bright Future Bass synths by Fusq.","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"57I3maUeP3c","youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"youtube.svg"}]},"tokyopill":{"name":"Tokyopill","title":"Tokyopill","slug":"tokyopill","category":"Collections","type":"collection","is_collection":true,"creator":"Tokyopill","label":null,"studio":null,"year":null,"rating":null,"description":"Breakcore, cyber-aesthetic drum and bass, and Serial Experiments Lain inspired electronic soundscapes by Tokyopill.","long_description_html":"","url":"https://soundcloud.com/tokyopill","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Breakcore","Drum & Bass","Cyberpunk","SoundCloud"],"items":[{"title":"Ethereal","url":"https://soundcloud.com/tokyopill/ethereal","description":"Atmospheric breakcore track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/ethereal","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Lets all love lain","url":"https://soundcloud.com/tokyopill/e-x-t-e-n-d-e-d","description":"Extended ambient breakcore tribute.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/e-x-t-e-n-d-e-d","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Club Cyberia","url":"https://soundcloud.com/tokyopill/club-cyberia","description":"Cyberpunk rave beat.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/club-cyberia","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Virtual Tears","url":"https://soundcloud.com/tokyopill/virtual-tears","description":"Melanch
1239olic synth breakcore track.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/virtual-tears","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Cyber Psyche Green","url":"https://soundcloud.com/tokyopill/psyche","description":"Fast-paced breakbeat single.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/psyche","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"S u r r e a l i t y 1","url":"https://soundcloud.com/tokyopill/s-u-r-r-e-a-l-i-t-y-1","description":"Surreal glitch beat.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/s-u-r-r-e-a-l-i-t-y-1","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Unlike Me Remix","url":"https://soundcloud.com/tokyopill/unlike-me-remix","description":"Hard-hitting breakcore remix.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/unlike-me-remix","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Tokyofruit","url":"https://soundcloud.com/tokyopill/tokyofruit","description":"Upbeat electronic breakbeat.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/tokyopill/tokyofruit","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"hotline_miami":{"name":"Hotline Miami 1 & 2","title":"Hotline Miami 1 & 2","slug":"hotline_miami","category":"Games","type":"standard","is_collection":false,"creator":"Dennaton Games","label":null,"studio":"Devolver Digital","year":"2012 / 2015","rating":"Overwhelmingly Positive","description":"High-octane neon-soaked top-down action games featuring brutal fast-paced combat, surreal storytelling, and legendary synthwave soundtracks.","long_description_html":"<p>Created by Jonatan Söderström and Dennis Wedin (Dennaton Games), Hotline Miami and Hotline Miami 2: Wrong Number are genre-defining top-down action games set in a surreal 1980s Miami. Demanding frame-perfect execution, lethal gunplay, and animal masks with unique abilities, the games are propelled by an iconic synthwave soundtrack featuring Jasper Byrne, Perturbator, M|O|O|N, Scattle, and Carpenter Brut.</p>\n","url":"https://store.steampowered.com/app/219150/Hotline_Miami/","link_type":"steam","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":"219150","bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Top-Down Shooter","Synthwave","Brutal","Retro","Action"],"items":[]},"noita":{"name":"Noita","title":"Noita","slug":"noita","category":"Games","type":"standard","is_collection":false,"creator":"Nolla Games","label":null,"studio":"Nolla Games","year":"2020","rating":"Overwhelmingly Positive","description":"Magical action roguelite set in a world where every single pixel is physically simulated—burn, melt, freeze, explosion, and wand crafting chaos.","long_description_html":"<p>Developed by Finnish studio Nolla Games (creators of Crayon Physics Deluxe, Swapper, and Baba Is You), Noita is a magical action roguelite set in a world where every single pixel is physically simulated. Players customize and craft infinite combinations of spell wands as they melt ice, ignite oil reserves, vaporize toxic sludge, and cause catastrophic chain reactions in procedural underground dungeons.</p>\n","url":"https://store.steampowered.com/app/881100/Noita/","link_type":"steam","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":"881100","bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Pixel Physics","Roguelite","Wand Crafting","Simulation","Indie"],"items":[]}
1239,"ultrakill":{"name":"ULTRAKILL","title":"ULTRAKILL","slug":"ultrakill","category":"Games","type":"standard","is_collection":false,"creator":"Arsi 'Hakita' Patala","label":null,"studio":"New Blood Interactive","year":"2020","rating":"Overwhelmingly Positive","description":"Fast-paced ultraviolent retro FPS combining classic arena shooters with stylish combo mechanics where MANKIND IS DEAD. BLOOD IS FUEL. HELL IS FULL.","long_description_html":"<p>ULTRAKILL is a high-speed ultraviolent retro FPS developed by Arsi &#39;Hakita&#39; Patala and published by New Blood Interactive. Combining movement mechanics reminiscent of Quake, weapon switching tricks, projectile boosting, and Devil May Cry-style combo ranking systems, players control V1—a machine fueled by fresh blood—as they plummet through the layers of Dante&#39;s Inferno.</p>\n","url":"https://store.steampowered.com/app/1229490/ULTRAKILL/","link_type":"steam","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":"1229490","bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Fast-Paced FPS","Movement Shooter","Retro","Stylish","Action"],"items":[]},"moe_shop_owarini_tokyo_liveshow":{"name":"Moe Shop - Owarini Tokyo Liveshow","title":"Moe Shop - Owarini Tokyo Liveshow","slug":"moe_shop_owarini_tokyo_liveshow","category":"Mixtapes","type":"standard","is_collection":false,"creator":"Moe Shop","label":"Future Society","studio":null,"year":"2017","rating":null,"description":"High-energy live DJ mixtape recorded at Owarini in Tokyo featuring signature French Touch beats and upbeat anime sample chops.","long_description_html":"","url":"https://soundcloud.com/futuresocietycollective/moe-shop-owarini-tokyo-liveshow","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/futuresocietycollective/moe-shop-owarini-tokyo-liveshow","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["French House","Future Funk","Live Set","Future Society","SoundCloud"],"items":[]},"moe_shop_waifu_material_mixtape":{"name":"Moe Shop - Waifu Material Mixtape","title":"Moe Shop - Waifu Material Mixtape","slug":"moe_shop_waifu_material_mixtape","category":"Mixtapes","type":"standard","is_collection":false,"creator":"Moe Shop","label":"Future Society","studio":null,"year":"2016","rating":null,"description":"Landmark Future Funk, French Touch, and Nu-Disco mixtape by Moe Shop packed with nostalgic dance floor anthems.","long_description_html":"","url":"https://soundcloud.com/futuresocietycollective/moe-shop-waifu-material-mixtape","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/futuresocietycollective/moe-shop-waifu-material-mixtape","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["French House","Future Funk","Nu-Disco","Future Society","SoundCloud"],"items":[]},"night_tempo_nighty_tape":{"name":"Night Tempo - Nighty Tape","title":"Night Tempo - Nighty Tape","slug":"night_tempo_nighty_tape","category":"Mixtapes","type":"standard","is_collection":false,"creator":"Night Tempo","label":"Neoncity Records","studio":null,"year":"2017","rating":null,"description":"Essential 80s City Pop flipped into upbeat Future Funk grooves and cassette tape beats by Night Tempo.","long_description_html":"","url":"https://neoncityrecords.bandcamp.com/album/nighty-tape","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":"https://neoncityrecords.bandcamp.com/album/nighty-tape","bandcamp_album_id":"1324499771","bandcamp_track_id":null,"tags":["Future Funk","City Pop","Vaporwave","Neoncity Records","Bandcamp"],"items":[]},"scr_guest_neon_city_records":{"name":"SCR Guest - Neon City Records (April 10, 2018)","title":"SCR Guest: Neon City Records w/ Night Tempo, Daviouxx, Aritus, Desired (April 10, 2018)","slug":"scr_guest_neon_city_records","category":"Mixtapes","type":"standard","is_collection":false,"creator":"Seoul Community Radio","label":"Neoncity Records","studio":null,"year":"2018","rating":null,"description":"Live Future Funk guest mix by Aritus and Daviouxx featuring Night Tempo and Desired from the Neoncity Records showcase at Seoul Community Radio.","long_description_html":"","url":"https://soundcloud.com/seoulcommunityradio/scr-guest-neon-city-records-w-night-tempo-daviouxx-aritus-desired-april-10-2018","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/seoulcommunityradio/scr-guest-neon-city-records-w-night-tempo-daviouxx-aritus-desired-april-10-2018","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","City Pop","Neoncity Records","Seoul Community Radio","SoundCloud"],"items":[]},"session_9":{"name":"Session 9","title":"Session 9","slug":"session_9","category":"Movies","type":"standard","is_collection":false,"creator":"Brad Anderson","label":null,"studio":null,"year":"2001","rating":"6.4/10 IMDb","description":"Psychological horror film set in the abandoned Danvers State Mental Hospital, where an asbestos cleanup crew slowly unravels under terrifying atmospheric dread.","long_description_html":"<p>Directed by Brad Anderson and starring Peter Mullan, David Caruso, and Josh Lucas, Session 9 is a masterclass in low-budget psych
1239ological dread. Filmed on location at the real, abandoned Danvers State Hospital in Massachusetts, the film follows a desperate hazardous materials abatement crew as they discover nine audio tape sessions recording the treatment of a patient with multiple personality disorder.</p>\n","url":"https://www.imdb.com/title/tt0261983/","link_type":"imdb","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":"tt0261983","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Horror","Psychological Thriller","Mystery","Cult Classic"],"items":[]},"smile_now_cry_later":{"name":"Smile Now Cry Later","title":"Smile Now Cry Later","slug":"smile_now_cry_later","category":"Movies","type":"standard","is_collection":false,"creator":"Spoken Reason","label":null,"studio":null,"year":"2011","rating":"Indie Feature","description":"Dramatic indie film exploring street life, mask of toughness, personal struggles, and raw emotional vulnerability.","long_description_html":"<p>Smile Now Cry Later captures the raw emotion and dualities of urban life. Taking its title from classic theater masks and tattoo art, the film explores how individuals present a brave smile to the world while dealing with quiet heartbreak, survival, and inner drama behind closed doors.</p>\n","url":"https://www.imdb.com/title/tt1380811/","link_type":"imdb","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":"tt1380811","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Drama","Indie Film","Urban Life","Independent"],"items":[]},"arlo_parks_portra_400":{"name":"Arlo Parks - Portra 400","title":"Arlo Parks - Portra 400","slug":"arlo_parks_portra_400","category":"Music","type":"standard","is_collection":false,"creator":"Arlo Parks","label":null,"studio":null,"year":"2021","rating":null,"description":"Warm, nostalgic neo-soul and bedroom pop groove with lush jazz chords, analogue warmth, and poetic lyrics.","long_description_html":"","url":"https://www.youtube.com/watch?v=nAVqjnxg89w","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"nAVqjnxg89w","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Neo Soul","Indie Pop","Bedroom Pop","Arlo Parks","YouTube"],"items":[]},"blackballoons_final_fantasy":{"name":"black balloons - FINAL FANTASY","title":"black balloons - FINAL FANTASY","slug":"blackballoons_final_fantasy","category":"Music","type":"standard","is_collection":false,"creator":"black balloons","label":null,"studio":null,"year":null,"rating":null,"description":"Atmospheric electronic beats and melancholic sample chops.","long_description_html":"","url":"https://soundcloud.com/blackballoonss/final-fantasy","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/blackballoonss/final-fantasy","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Electronic","Lo-Fi","Sampled","SoundCloud"],"items":[]},"brain_rot":{"name":"Brain Rot","title":"Brain Rot","slug":"brain_rot","category":"Music","type":"standard","is_collection":false,"creator":"Tokyo Manaka feat. 1","label":null,"studio":null,"year":null,"rating":null,"description":"Fast-paced synth breakcore track on SoundCloud.","long_description_html":"","url":"https://soundcloud.com/boss-54604603/brain-rot-tokyo-manaka-feat-1","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/boss-54604603/brain-rot-tokyo-manaka-feat-1","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Breakcore","Electronic"],"items":[]},"creepynuts_losstime":{"name":"Creepy Nuts - Losstime","title":"Creepy Nuts - Losstime (ロスタイム)","slug":"creepynuts_losstime","category":"Music","type":"standard","is_collection":false,"creator":"Creepy Nuts (R-Shitei & DJ Matsunaga)","label":null,"studio":null,"year":"2022","rating":null,"description":"Introspective Japanese hi
1239p-hop cut featuring world champion turntable scratching by DJ Matsunaga and lyrical flow by R-Shitei (Call of the Night insert song).","long_description_html":"","url":"https://soundcloud.com/creepynuts/losstime","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/creepynuts/losstime","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Japanese Hip-Hop","Call of the Night","Turntablism","SoundCloud"],"items":[]},"dj_kuroneko_around_u":{"name":"Around U","title":"Around U","slug":"dj_kuroneko_around_u","category":"Music","type":"standard","is_collection":false,"creator":"DJ kuroneko","label":null,"studio":null,"year":null,"rating":null,"description":"Atmospheric jungle / drum and bass track.","long_description_html":"","url":"https://soundcloud.com/dissolve4/around-u-1","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/dissolve4/around-u-1","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Jungle","Drum & Bass"],"items":[]},"ev_exi_you_cant_run":{"name":"ev.exi - You Can't Run (ft. Lavera)","title":"ev.exi - You Can't Run (ft. Lavera)","slug":"ev_exi_you_cant_run","category":"Music","type":"standard","is_collection":false,"creator":"ev.exi","label":null,"studio":null,"year":null,"rating":null,"description":"Funky French House and Future Funk track packed with heavy slapping bass and soulful vocals.","long_description_html":"","url":"https://soundcloud.com/ev-exi/you-cant-run","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ev-exi/you-cant-run","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","French House","Nu-Disco","SoundCloud"],"items":[]},"fusq_yeah":{"name":"fusq - Yeah!","title":"fusq - Yeah!","slug":"fusq_yeah","category":"Music","type":"standard","is_collection":false,"creator":"fusq","label":null,"studio":null,"year":null,"rating":null,"description":"Hyper-bouncy future bass and chiptune electro dance track with playful vocal samples.","long_description_html":"","url":"https://soundcloud.com/fusq/yeah","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/fusq/yeah","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Bass","Chiptune","Electro","SoundCloud"],"items":[]},"gorillaz_humility":{"name":"Gorillaz - Humility","title":"Gorillaz - Humility (feat. George Benson)","slug":"gorillaz_humility","category":"Music","type":"standard","is_collection":false,"creator":"Gorillaz","label":null,"studio":null,"year":"2018","rating":null,"description":"Sun-drenched funk-pop single featuring jazz guitar virtuoso George Benson from The Now Now.","long_description_html":"","url":"https://www.youtube.com/watch?v=E5yFcdPAGv0","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"E5yFcdPAGv0","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Indie Pop","Funk","Gorillaz","Music Video"],"items":[]},"hideki_naganuma_aint_nothin_like_a_funky_beat":{"name":"Hideki Naganuma - AINT NOTHIN LIKE A FUNKY BEAT","title":"Hideki Naganuma - AINT NOTHIN LIKE A FUNKY BEAT","slug":"hideki_naganuma_aint_nothin_like_a_funky_beat","category":"Music","type":"standard","is_collection":false,"creator":"Hideki Naganuma","label":null,"studio":"Team Reptile","year":null,"rating":null,"description":"Wild breakbeat cyberfunk anthem composed by Hideki Naganuma for Lethal League Blaze.","long_description_html":"","url":"https://soundcloud.com/immajustuploadthisokay/hideki-naganuma-aint-nothin-like-a-funky-beat","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/immajustuploadthisokay/hideki-naganuma-aint-nothin-like-a-funky-beat","y
1239outube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Breakbeat","Cyberfunk","Hideki Naganuma","Lethal League Blaze"],"items":[]},"hkmori_lost":{"name":"Lost","title":"Lost","slug":"hkmori_lost","category":"Music","type":"standard","is_collection":false,"creator":"hkmori","label":null,"studio":null,"year":null,"rating":null,"description":"Melancholic atmospheric electronic breakcore track by hkmori.","long_description_html":"","url":"https://soundcloud.com/hkmori/lost","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/hkmori/lost","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Breakcore","Electronic"],"items":[]},"joey_valence_and_brae_punk_tactics":{"name":"PUNK TACTICS","title":"PUNK TACTICS","slug":"joey_valence_and_brae_punk_tactics","category":"Music","type":"standard","is_collection":false,"creator":"Joey Valence & Brae","label":null,"studio":null,"year":"2022","rating":null,"description":"Explosive 90s Beastie Boys-inspired boom bap and hip-hop punk anthem.","long_description_html":"","url":"https://soundcloud.com/joeyvalenceandbrae/punk-tactics","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/joeyvalenceandbrae/punk-tactics","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Hip-Hop","Punk Rap","Boom Bap","90s Revival"],"items":[]},"kero_kero_bonito_flyway":{"name":"Kero Kero Bonito - Flyway","title":"Kero Kero Bonito - Flyway","slug":"kero_kero_bonito_flyway","category":"Music","type":"standard","is_collection":false,"creator":"Kero Kero Bonito","label":null,"studio":null,"year":"2018","rating":null,"description":"Dynamic indie rock and dream-pop single from Time 'n' Place with soaring distorted guitars and introspective bilingual vocals.","long_description_html":"","url":"https://www.youtube.com/watch?v=dSuINZdJBk8","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"dSuINZdJBk8","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Indie Rock","Dream Pop","Kero Kero Bonito","J-Rock","YouTube"],"items":[]},"keygen_church_la_chiave_del_mio_amor":{"name":"Keygen Church - La Chiave Del Mio Amor","title":"Keygen Church - La Chiave Del Mio Amor","slug":"keygen_church_la_chiave_del_mio_amor","category":"Music","type":"standard","is_collection":false,"creator":"Keygen Church (Master Boot Record)","label":"Metal Blade Records","studio":null,"year":"2024","rating":null,"description":"Majestic pipe organ baroque counterpoint fused with heavy 8-string synth metal and chiptune arpeggios.","long_description_html":"","url":"https://soundcloud.com/metalbladerecords/keygen-church-la-chiave-del-mio-amor","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/metalbladerecords/keygen-church-la-chiave-del-mio-amor","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Baroque Metal","Pipe Organ","Chiptune","Synth Metal"],"items":[]},"kiss_me_nerdy_girl_lost_summer_2020":{"name":"kissmenerdygirl - Lost Summer 2020","title":"kissmenerdygirl - Lost Summer 2020","slug":"kiss_me_nerdy_girl_lost_summer_2020","category":"Music","type":"standard","is_collection":false,"creator":"kissmenerdygirl","label":null,"studio":null,"year":"2020","rating":null,"description":"Nostalgic lo-fi future funk and summer chillwave beat tape cut.","long_description_html":"","url":"https://soundcloud.com/kissmenerdygirl/lost-summer-2020","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/kissmenerdygirl/lost-summer-2020","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","Chillwave","Lo-Fi","SoundCloud"],"items":[]},"kiyosumi_whenever":{"name":"kiyosumi - whenever","title":"kiyosumi - whenever","slug":"kiyosumi_whenever","category":"Music","type":"standard","is_collection":false,"creator":"kiyosumi","label":null,"studio":null,"year":null,"rating":null,"description":"Melodic chillwave and emotive electronic beat with lush chords.","long_description_html":"","url":"https://soundcloud.com/kiyosumi76/whenever","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/kiyosumi76/whenever","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Chillwave","Electronic","Beats","SoundCloud"],"items":[]},"lomaji_rr":{"name":"LOMAJI - RR","title":"LOMAJI - RR","slug":"lomaji_rr","category":"Music","type":"standard","is_collection":false,"creator":"LOMAJI","label":null,"studio":null,"year":null,"rating":null,"description":"Atmospheric ambient electronic breakbeat and ethereal synth textures.","long_description_html":"","url":"https://soundcloud.com/vaguefi/rr-1","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/vaguefi/rr-1","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Ambient","Breakbeat","Electronic","SoundCloud"],"items":[]},"magic_sword_legend_of_the_keeper":{"name":"Magic Sword - Legend Of The Keeper","title":"Magic Sword - Legend Of The Keeper","slug":"magic_sword_legend_of_the_keeper","category":"Music","type":"standard","is_collection":false,"creator":"Magic Sword","label":null,"studio":null,"year":"2015","rating":null,"description":"Epic synthwave and retro electro rock with roaring lead guitars (featured in Hotline Miami 2).","long_description_html":"","url":"https://soundcloud.com/magic-sword/legend-of-the-keeper","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/magic-sword/legend-of-the-keeper","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Synthwave","Darksynth","Electronic Rock","SoundCloud"],"items":[]},"mikazuki_bigwave_stardust_disco":{"name":"Mikazuki BIGWAVE - Stardust Disco","title":"Mikazuki BIGWAVE - Stardust Disco (星屑ディスコ)","slug":"mikazuki_bigwave_stardust_disco","category":"Music","type":"standard","is_collection":false,"creator":"Mikazuki BIGWAVE","label":"Sleepless Tapes","studio":null,"year":null,"rating":null,"description":"Sparkling Kawaii Future Funk and French House dance floor burner.","long_description_html":"","url":"https://soundcloud.com/sleeplesstapes/stardust-disco","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/sleeplesstapes/stardust-disco","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","Kawaii Bass","French House","SoundCloud"],"items":[]},"ninajirachi_wannacry":{"name":"WannaCry","title":"WannaCry","slug":"ninajirachi_wannacry","category":"Music","type":"standard","is_collection":false,"creator":"Ninajirachi","label":null,"studio":null,"year":null,"rating":null,"description":"Forward-thinking hyperpop and intricate club sound design by Australian electronic producer Ninajirachi.","long_description_html":"","url":"https://soundcloud.com/ninajirachi/wannacry","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/ninajirachi/wannacry","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Hyperpop","Club","
1239Electronic","SoundCloud"],"items":[]},"number_girl_teppuu_surudoku_natte":{"name":"Number Girl - Teppuu Surudoku Natte","title":"Number Girl - Teppuu Surudoku Natte (鉄風 鋭くなって)","slug":"number_girl_teppuu_surudoku_natte","category":"Music","type":"standard","is_collection":false,"creator":"Number Girl","label":null,"studio":null,"year":"2000","rating":null,"description":"Legendary Japanese noise rock and math punk anthem featuring ferocious angular guitar riffs and frantic vocals by Shutoku Mukai.","long_description_html":"","url":"https://soundcloud.com/numbergirl-music/teppuu-surudoku-natte","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/numbergirl-music/teppuu-surudoku-natte","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Japanese Noise Rock","Math Rock","Post-Hardcore","Alternative"],"items":[]},"otsukare_summer":{"name":"Otsukare Summer","title":"Otsukare Summer","slug":"otsukare_summer","category":"Music","type":"standard","is_collection":false,"creator":"HALCALI","label":null,"studio":null,"year":null,"rating":null,"description":"Catchy Japanese hip-hop/pop summer track by duo HALCALI.","long_description_html":"","url":"https://soundcloud.com/damian2811/halcali-otsukare-summer","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/damian2811/halcali-otsukare-summer","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["J-Pop","Hip-Hop","Summer"],"items":[]},"rose_after_hours":{"name":"rose - after hours (w/ hentai dude)","title":"rose - after hours (w/ hentai dude)","slug":"rose_after_hours","category":"Music","type":"standard","is_collection":false,"creator":"rose & hentai dude","label":null,"studio":null,"year":null,"rating":null,"description":"Late night chillwave and electronic RnB collaboration.","long_description_html":"","url":"https://soundcloud.com/unerose/after-hours","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/unerose/after-hours","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Chillwave","Electronic","Future Beats","SoundCloud"],"items":[]},"so87_ride":{"name":"SO87 - Ride (w/ Jamie Paige)","title":"SO87 - Ride (w/ Jamie Paige)","slug":"so87_ride","category":"Music","type":"standard","is_collection":false,"creator":"SO87 & Jamie Paige","label":null,"studio":null,"year":null,"rating":null,"description":"Glitchy electronic vocal track with dynamic future garage beats.","long_description_html":"","url":"https://soundcloud.com/so87/ride-w-jamie-paige","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/so87/ride-w-jamie-paige","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Garage","Electronic","Glitch","SoundCloud"],"items":[]},"syojo_satori_chain_of_love":{"name":"Syojo Satori - Chain of Love","title":"Syojo Satori - Chain of Love (愛の鎖)","slug":"syojo_satori_chain_of_love","category":"Music","type":"standard","is_collection":false,"creator":"Syojo Satori","label":null,"studio":null,"year":null,"rating":null,"description":"Catchy Future Funk and retro anime disco groove.","long_description_html":"","url":"https://soundcloud.com/syojosatori/chain-of-love","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/syojosatori/chain-of-love","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Future Funk","Nu-Disco","Anime Groove","SoundCloud"],"items":[]},"takako_mamiya_love_trip":{"name":"Takako Mamiya - Love Trip","title":"Takako Mamiya - Love Trip (間宮貴子 - LOVE TRIP)","slug":"takako_mamiya_love_trip","category":"Music","type":"standard","is_collection":false,"creator":"Takako Mamiya","label":null,"studio":null,"year":"1982","rating":null,"description":"Seminal Japanese City Pop masterpiece with flawless jazz-fusion arrangements, silky basslines, and brass sections.","long_description_html":"","url":"https://www.youtube.com/watch?v=M0HmUICJRZc","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"M0HmUICJRZc","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["City Pop","Jazz Funk","80s J-Pop","Takako Mamiya","YouTube"],"items":[]},"tokimeki_records_orange_sea":{"name":"Orange Sea","title":"Orange Sea (prod. Tokimeki Records)","slug":"tokimeki_records_orange_sea","category":"Music","type":"standard","is_collection":false,"creator":"Tokimeki Records","label":null,"studio":null,"year":null,"rating":null,"description":"Modern Japanese city pop groove featuring retro synthesizers, silky brass, and nostalgic melodies.","long_description_html":"","url":"https://soundcloud.com/user-769779415/5b71e105-f58b-4c68-a7ae-1a9316b84658","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/user-769779415/5b71e105-f58b-4c68-a7ae-1a9316b84658","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["City Pop","Neo City Pop","Japanese Groove","SoundCloud"],"items":[]},"vylet_pony_ni4ni":{"name":"NI4NI","title":"NI4NI","slug":"vylet_pony_ni4ni","category":"Music","type":"standard","is_collection":false,"creator":"Vylet Pony","label":null,"studio":null,"year":null,"rating":null,"description":"Expansive electronic art pop and emotional hyperpop journey by producer and vocalist Vylet Pony.","long_description_html":"","url":"https://soundcloud.com/vyletpony/ni4ni-1","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/vyletpony/ni4ni-1","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Art Pop","Hyperpop","Electronic","SoundCloud"],"items":[]},"air_gear_ost":{"name":"Air Gear OST","title":"Air Gear OST","slug":"air_gear_ost","category":"OST","type":"standard","is_collection":false,"creator":"Hideki Naganuma","label":null,"studio":null,"year":null,"rating":null,"description":"High-octane funk and breakbeat anime original soundtrack composed by Hideki Naganuma.","long_description_html":"","url":"https://www.youtube.com/watch?v=D1qAA9BjMjc","link_type":"youtube","embed_type":null,"soundcloud_url":null,"youtube_id":"D1qAA9BjMjc","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Anime OST","Breakbeat","Funk"],"items":[]},"aivi_surasshu_ost":{"name":"aivi & surasshu","title":"aivi & surasshu","slug":"aivi_surasshu_ost","category":"OST","type":"collection","is_collection":true,"creator":"aivi & surasshu","label":null,"studio":null,"year":null,"rating":null,"description":"Charming piano and chiptune duo famous for the Steven Universe score, FEZ arrangements, and original electronic compositions.","long_description_html":"","url":"https://aivisura.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Chiptune","Piano","Steven Universe","FEZ","Bandcamp"],"items":[{"title":"The Black Box","url":"https://aivisura.bandcamp.com/album/the-black-box","de
1239scription":"Full landmark album combining expressive jazz piano and Game Boy sound hardware.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://aivisura.bandcamp.com/album/the-black-box","bandcamp_album_id":"1996609636","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Come Back (FEZ Remix)","url":"https://soundcloud.com/aiviwave/aivi-surasshu-come-back","description":"Joyful and intricate remix of Disasterpeace's FEZ soundtrack.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/aiviwave/aivi-surasshu-come-back","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"c418_minecraft_ost":{"name":"Minecraft - Volume Alpha","title":"Minecraft - Volume Alpha","slug":"c418_minecraft_ost","category":"OST","type":"standard","is_collection":false,"creator":"C418 (Daniel Rosenfeld)","label":null,"studio":null,"year":"2011","rating":null,"description":"Iconic, minimalist ambient and piano soundtrack composed by C418 for Minecraft, universally celebrated as a masterpiece of video game music.","long_description_html":"<p>Minecraft - Volume Alpha is Daniel Rosenfeld&#39;s timeless ambient masterpiece. Featuring delicate acoustic piano melodies, warm analogue synth pads, and subtle environmental sounds, it defined the identity and emotional depth of Minecraft for millions of players around the world.</p>\n","url":"https://c418.bandcamp.com/album/minecraft-volume-alpha","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":"https://c418.bandcamp.com/album/minecraft-volume-alpha","bandcamp_album_id":"1349219244","bandcamp_track_id":null,"tags":["Minecraft","Ambient","Piano","Video Game OST","Bandcamp"],"items":[]},"goblin_slayer_ost":{"name":"Goblin Slayer OST","title":"Goblin Slayer Original Soundtrack","slug":"goblin_slayer_ost","category":"OST","type":"collection","is_collection":true,"creator":"Kenichiro Suehiro & Mili","label":null,"studio":null,"year":null,"rating":null,"description":"Dark fantasy orchestral compositions by Kenichiro Suehiro along with iconic anime openings by classical-electronic band Mili.","long_description_html":"","url":"https://soundcloud.com/search?q=goblin%20slayer%20ost","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Anime OST","Dark Fantasy","Orchestral","Mili","SoundCloud"],"items":[{"title":"Rightfully (Opening Full by Mili)","url":"https://soundcloud.com/admiral_goblinslayer/goblin-slayer-op-opening-full-rightfully-mili","description":"Acclaimed baroque-pop opening theme performed by Mili.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/admiral_goblinslayer/goblin-slayer-op-opening-full-rightfully-mili","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Goblin Slayer Main Theme","url":"https://soundcloud.com/guild_girl/1-maintheme-goblin-slayer","description":"Grim, driving orchestral battle motif composed by Kenichiro Suehiro.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/guild_girl/1-maintheme-goblin-slayer","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Goblin Slayer Battle Theme (15)","url":"https://soundcloud.com/guild_girl/15-goblin-slayer-original","description":"Tense strings and heavy drums depicting brutal close-quarters combat.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/guild_girl/15-goblin-slayer-original","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Goblin Slayer Cave Theme (16)","url":"https://soundcloud.com/guild_girl/16-goblin-slayer-original","description":"Eerie dungeon crawler ambiance.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/guild_girl/16-goblin-slayer-original","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Goblin Slayer Climax Theme (19)","url":"https://soundcloud.com/guild_girl/19-goblin-slayer-original","description":"Epic heroic orchestral climax.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/guild_girl/19-goblin-slayer-original","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"hades_ost":{"name":"Hades OST","title":"Hades OST","slug":"hades_ost","category":"OST","type":"standard","is_collection":false,"creator":"Darren Korb","label":null,"studio":"Supergiant Games","year":"2020","rating":null,"description":"Electrifying Mediterranean-infused acoustic and progressive metal soundtrack composed by Darren Korb for Supergiant Games' rogue-like masterpiece Hades.","long_description_html":"<p>Composed, produced, and performed by Darren Korb (with vocals by Ashley Barrett), the Hades Original Soundtrack blends Mediterranean folk instruments like bouzouki and Turkish baglama with heavy electric guitars, progressive drums, and haunting vocal harmonie
1239s to match the relentless action of the Underworld.</p>\n","url":"https://www.youtube.com/watch?v=3GRKJ87S5cI","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"3GRKJ87S5cI","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Game Soundtrack","Progressive Metal","Acoustic Folk","Supergiant Games"],"items":[]},"hotline_miami_bloodline":{"name":"Scattle - Bloodline","title":"Scattle - Bloodline","slug":"hotline_miami_bloodline","category":"OST","type":"standard","is_collection":false,"creator":"Scattle","label":null,"studio":"Dennaton Games","year":"2015","rating":null,"description":"Dark, pulsing synthwave and electro combat track from Hotline Miami 2: Wrong Number OST by Scattle.","long_description_html":"","url":"https://soundcloud.com/user-326777983/scattle-bloodline","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/user-326777983/scattle-bloodline","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Hotline Miami","Synthwave","Dark Electro","OST"],"items":[]},"hotline_miami_heist":{"name":"EL TIGR3 - Heist","title":"EL TIGR3 - Heist","slug":"hotline_miami_heist","category":"OST","type":"standard","is_collection":false,"creator":"EL TIGR3","label":null,"studio":"Dennaton Games","year":"2015","rating":null,"description":"Relentless cyberpunk electro house track from Hotline Miami 2: Wrong Number OST.","long_description_html":"","url":"https://soundcloud.com/el-tigr3/heist","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/el-tigr3/heist","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Hotline Miami","Electro House","Cyberpunk","OST"],"items":[]},"lethal_league_snibbit":{"name":"Klaus Veen - Snibbit","title":"Klaus Veen - Snibbit","slug":"lethal_league_snibbit","category":"OST","type":"standard","is_collection":false,"creator":"Klaus Veen","label":null,"studio":"Team Reptile","year":"2018","rating":null,"description":"Infectious 90s speed garage and funky breakbeat battle track composed for Lethal League Blaze.","long_description_html":"","url":"https://soundcloud.com/klausveen/klaus-veen-snibbit","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/klausveen/klaus-veen-snibbit","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Lethal League Blaze","Speed Garage","Breakbeat","OST"],"items":[]},"lifeformed_ost":{"name":"Lifeformed OST Discography","title":"Lifeformed OST Discography","slug":"lifeformed_ost","category":"OST","type":"collection","is_collection":true,"creator":"Lifeformed (Terence Lee)","label":null,"studio":"Hitbox Team","year":null,"rating":null,"description":"Acoustic chiptune, ambient electronic, and platformer original soundtracks by Lifeformed including Dustforce (Fastfall), Immerse, and Umbra.","long_description_html":"","url":"https://lifeformed.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Dustforce","Chiptune","Indie Game OST","Ambient","Bandcamp"],"items":[{"title":"Fastfall (Dustforce OST Full Album)","url":"https://lifeformed.bandcamp.com/album/fastfall","description":"Award-winning soundtrack for sweeping acrobatic platformer Dustforce.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://lifeformed.bandcamp.com/album/fastfall","bandcamp_album_id":"2118918607","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Immerse","url":"https://lifeformed.bandcamp.com/album/immerse","description":"Melodic electronic album exploring lush synth atmospheres.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://lifeformed.bandcamp.com/album/immerse","bandcamp_album_id":"1653268435","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Umbra (Lifeformed × Janice Kwan)","url":"https://lifeformed.bandcamp.com/album/umbra","description":"Original soundtrack for indie adventure Tunic.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://lifeformed.bandcamp.com/album/umbra","bandcamp_album_id":"568006953","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Fastfall - \"Dream\"","url":"https://soundcloud.com/lifeformed/fastfall-dustforce-ost-dream","description":"Gentle acoustic guitar and soft 8-bit synth arpeggios.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/lifeformed/fastfall-dustforce-ost-dream","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Fastfall - \"Your Favorite Color\"","url":"https://soundcloud.com/lifeformed/fastfall-dustforce-ost-your","description":"Warm, rhythmic piano and electronic percussion.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/lifeformed/fastfall-dustforce-ost-your","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Fastfall - \"A Safe Place To Sleep\"","url":"https://soundcloud.com/lifeformed/fastfall-dustforce-ost-a-safe","description":"Serene and comforting hub level theme.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/lifeformed/fastfall-dustforce-ost-a-safe","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}
1239,{"title":"Fastfall - \"9-bit Expedition\"","url":"https://soundcloud.com/lifeformed/dustforce-9-bit-expedition","description":"Energetic chiptune melody and driving beat.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/lifeformed/dustforce-9-bit-expedition","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Fastfall - \"Cider Time\"","url":"https://soundcloud.com/lifeformed/dustforce-cider-time","description":"Playful syncopated acoustic chiptune melody.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/lifeformed/dustforce-cider-time","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"marzuku_ost":{"name":"Marzuku - Fraudulence & ULTRAViolence OST","title":"Marzuku - Fraudulence & ULTRAViolence OST","slug":"marzuku_ost","category":"OST","type":"collection","is_collection":true,"creator":"Marzuku","label":null,"studio":null,"year":null,"rating":null,"description":"Dark industrial metal, cybernetic breakcore, and jazz-fusion boss battle soundtracks composed by Marzuku for ULTRAKILL fan projects and ULTRAViolence.","long_description_html":"","url":"https://marzuku.bandcamp.com","link_type":"bandcamp","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["ULTRAKILL","Fan OST","Industrial Metal","Breakcore","Bandcamp"],"items":[{"title":"Agony & Imminence","url":"https://marzuku.bandcamp.com/album/agony-imminence","description":"Full release featuring high-intensity industrial 
1239combat tracks.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/album/agony-imminence","bandcamp_album_id":"110939586","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"ULTRAViolence (Original Soundtrack)","url":"https://marzuku.bandcamp.com/album/ultraviolence-original-soundtrack","description":"Complete industrial metal and breakcore soundtrack album.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/album/ultraviolence-original-soundtrack","bandcamp_album_id":"691865275","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Industrial Hell","url":"https://marzuku.bandcamp.com/album/industrial-hell","description":"Heavy distorted electronic metal assault.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/album/industrial-hell","bandcamp_album_id":"607746923","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Colliding Stars","url":"https://marzuku.bandcamp.com/album/colliding-stars","description":"Epic synth-metal and melodic breakcore release.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/album/colliding-stars","bandcamp_album_id":"2704067357","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Caelum","url":"https://marzuku.bandcamp.com/album/caelum","description":"Heavenly choral progressions over punishing drum patterns.","link_type":"bandcamp","embed_type":"album","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/album/caelum","bandcamp_album_id":"2955753723","bandcamp_track_id":null,"icon_filename":"bandcamp.svg"},{"title":"Harmony","url":"https://marzuku.bandcamp.com/track/harmony","description":"Complex melodic industrial 
1239composition.","link_type":"bandcamp","embed_type":"track","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/track/harmony","bandcamp_album_id":null,"bandcamp_track_id":"3366003343","icon_filename":"bandcamp.svg"},{"title":"Cross Turned Dagger","url":"https://marzuku.bandcamp.com/track/cross-turned-dagger","description":"Ferocious collab track with Duv.","link_type":"bandcamp","embed_type":"track","soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":"https://marzuku.bandcamp.com/track/cross-turned-dagger","bandcamp_album_id":null,"bandcamp_track_id":"3673573405","icon_filename":"bandcamp.svg"},{"title":"Turning Point (From \"Fraudulence Vol. 1\")","url":"https://soundcloud.com/marzuku-music/turning-point-from-fraudulence","description":"Climactic battle sequence theme from the Fraudulence soundtrack.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/marzuku-music/turning-point-from-fraudulence","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Valley of Fools","url":"https://soundcloud.com/marzuku-871072200/valley-of-fools","description":"Sinister electronic atmosphere and relentless percussion.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/marzuku-871072200/valley-of-fools","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Profaned Community (w/ YEM ft. Perrell)","url":"https://soundcloud.com/marzuku-871072200/profaned-community-w-yem-ft-saxophonist-perrell-fraudulence-soundtrack","description":"Industrial jazz fusion featuring live saxophone solos by Perrell.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/marzuku-871072200/profaned-community-w-yem-ft-saxophonist-perrell-fraudulence-soundtrack","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Imminence","url":"https://soundcloud.com/marzuku-871072200/imminence","description":"Driving combat cut building tense speed and aggression.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/marzuku-871072200/imminence","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"panty_and_stocking_theme":{"name":"Theme for Scanty & Knee Socks","title":"Theme for Scanty & Knee Socks","slug":"panty_and_stocking_theme","category":"OST","type":"standard","is_collection":false,"creator":"TeddyLoid & TCY FORCE","label":null,"studio":"Gainax","year":"2010","rating":null,"description":"Cult classic high-energy French electro house battle theme from the Panty & Stocking with Garterbelt Original Soundtrack.","long_description_html":"","url":"https://soundcloud.com/panty-and-stocking/14-theme-for-scanty-knee-socks","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/panty-and-stocking/14-theme-for-scanty-knee-socks","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Anime OST","Electro House","Panty & Stocking","TeddyLoid"],"items":[]},"risk_of_rain_2_ost":{"name":"The Rain Formerly Known as Purple","title":"The Rain Formerly Known as Purple","slug":"risk_of_rain_2_ost","category":"OST","type":"standard","is_collection":false,"creator":"Chris Christodoulou","label":null,"studio":"Hopoo Games","year":"2020","rating":null,"description":"Monumental 7-minute progressive rock and synth masterpiece composed by Chris Christodoulou for Risk of Rain 2's Sky Meadow stage.","long_description_html":"<p>Composed by Greek multi-instrumentalist Chris Christodoulou, &#39;The Rain Formerly Known as Purple&#39; serves as the musical centerpiece of Risk of Rain 2. Transitioning from contemplative guitar arpeggios to a soaring guitar solo over vintage synthesizers and aggressive drum grooves, it is 
1239widely considered one of the greatest tracks in modern gaming.</p>\n","url":"https://soundcloud.com/chrischristodouloumusic/the-rain-formerly-known-as","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/chrischristodouloumusic/the-rain-formerly-known-as","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Risk of Rain 2","Progressive Rock","Synthwave","Video Game OST"],"items":[]},"shatter_ost":{"name":"Shatter OST","title":"Shatter OST","slug":"shatter_ost","category":"OST","type":"standard","is_collection":false,"creator":"Module","label":null,"studio":"Sidhe","year":"2009","rating":null,"description":"Award-winning synthwave, electro-rock, and retro video game soundtrack composed by Module for the brick-breaking arcade game Shatter.","long_description_html":"<p>Composed by New Zealand musician Module (Jeramiah Ross), the Shatter Original Soundtrack is widely regarded as one of the greatest video game electronic soundtracks. Featuring driving synthlines, vocoder vocals, upbeat guitar riffs, and soaring melodies across 14 tracks, it received numerous awards and defined modern arcade music.</p>\n","url":"https://www.youtube.com/watch?v=k76eJ2_ilis&list=OLAK5uy_muAw6jWyN3GgtQNWhZddJ8W40aPiglhGo","link_type":"youtube","embed_type":"playlist","soundcloud_url":null,"youtube_id":"k76eJ2_ilis","youtube_playlist_id":"OLAK5uy_muAw6jWyN3GgtQNWhZddJ8W40aPiglhGo","imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Game Soundtrack","Synthwave","Electro Rock","Chiptune"],"items":[]},"ultrakill_fan_ost":{"name":"ULTRAKILL Fan Soundtracks","title":"ULTRAKILL Fan Soundtracks","slug":"ultrakill_fan_ost","category":"OST","type":"collection","is_collection":true,"creator":"Various Community Composers","label":null,"studio":null,"year":null,"rating":null,"description":"Community-composed original soundtrack tributes and unofficial level themes for ULTRAKILL.","long_description_html":"","url":"https://soundcloud.com/search?q=ultrakill%20fan%20ost","link_type":"soundcloud","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["ULTRAKILL","Fan OST","Industrial Metal","Breakcore","SoundCloud"],"items":[{"title":"Blood-Red Sakura (ULTRAKILL 7-3 UST)","url":"https://soundcloud.com/agnab-lol/blood-red-sakura-ultrakill-7-3-ust","description":"Unofficial soundtrack arrangement by AGNAB for Violence layer (7-3).","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/agnab-lol/blood-red-sakura-ultrakill-7-3-ust","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Stolen Heaven","url":"https://soundcloud.com/triagegremlin/ultrakill-fan-ost-stolen-heaven","description":"Frantic breakcore and guitar track composed by Triage Gremlin.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/triagegremlin/ultrakill-fan-ost-stolen-heaven","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Reverse Lunar Evisceration","url":"https://soundcloud.com/triagegremlin/ultrakill-album-collab-reverse-lunar-evisceration","description":"High-speed industrial metal collaboration for ULTRAKILL community album.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/triagegremlin/ultrakill-album-collab-reverse-lunar-evisceration","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"},{"title":"Primordial Hunger","url":"https://soundcloud.com/requiemine/primordial-hunger","description":"Dark, oppressive industrial battle theme by Requiemine.","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/requiemine/primordial-hunger","youtube_id":null,"youtube_playlist_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"icon_filename":"soundcloud.svg"}]},"ultrakill_fan_ost_corporate_martyrs":{"name":"ULTRAKILL Fan OST - Corporate Martyrs (Fraud Climax)","title":"ULTRAKILL Fan OST - Corporate Martyrs (Fraud Climax)","slug":"ultrakill_fan_ost_corporate_martyrs","category":"OST","type":"standard","is_collection":false,"creator":"Rey Hunter","label":null,"studio":null,"year":null,"rating":null,"description":"High-intensity fan-composed climax theme for ULTRAKILL Fraud layer.","long_description_html":"","url":"https://soundcloud.com/rey-hunter-169341173/ultrakill-fan-ost-corporate-martyrs-fraud-climax","link_type":"soundcloud","embed_type":null,"soundcloud_url":"https://soundcloud.com/rey-hunter-169341173/ultrakill-fan-ost-corporate-martyrs-fraud-climax","youtube_id":null,"youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["ULTRAKILL","Fan OST","Industrial Metal"],"items":[]},"burn_notice":{"name":"Burn Notice","title":"Burn Notice","slug":"burn_notice","category":"TV","type":"standard","is_collection":false,"creator":"Matt Nix","label":null,"studio":"USA Network","year":"2007-2013","rating":"8.0/10 IMDb","description":"Slick spy drama following blacklisted CIA operative Michael Westen as he relies on tradecraft, voiceovers, and improvised gadgets in Miami while trying to figure out who burned him.","long_description_html":"<p>Created by Matt Nix and starring Jeffrey Donovan as Michael Westen, Gabrielle Anwar as Fiona Glenanne, and Bruce Campbell as Sam Axe. When CIA operative Michael Westen is issued a burn notice mid-operation, he finds himself stranded in Miami with no money or records. Taking on freelance PI jobs for ordinary people using DIY espionage tactics, homemade explosives, and undercover personas, he methodically hunts down the shadowy organization that betrayed him.</p>\n","url":"https://www.imdb.com/title/tt0810788/","link_type":"imdb","embed_type":null,"soundcloud_url":null,"youtube_id":null,"youtube_playlist_id":null,"imdb_id":"tt0810788","steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Action","Espionage","Drama","Comedy","Tradecraft"],"items":[]},"collatz_multiverse":{"name":"Collatz Multiverse","title":"The Simplest Math Problem No One Can Solve","slug":"collatz_multiverse","category":"Videos","type":"standard","is_collection":false,"creator":"Veritasium","label":null,"studio":null,"year":"2021","rating":null,"description":"Deep dive into the famous unproven Collatz Conjecture (3n+1) in mathematics and its chaotic branching tree structures.","long_description_html":"<p>An extraordinary science documentary video by Derek Muller on the Veritasium channel exploring the Collatz Conjecture (also known as the 3n + 1 problem). The video breaks down the deceptively simple rules, mathematical visualizations, infinite loops, p-adic numbers, and why Paul Erdős famously remarked that mathematics is not yet ready for such problems.</p>\n","url":"https://www.youtube.com/watch?v=n63FBYqj98E","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"n63FBYqj98E","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Mathematics","Science","Veritasium","Collatz Conjecture"],"items":[]},"dirt_man":{"name":"Dirt Man","title":"Dirt Man","slug":"dirt_man","category":"Videos","type":"standard","is_collection":false,"creator":"Carter Vail","label":null,"studio":null,"year":"2024","rating":null,"description":"Viral indie-pop comedy track by Carter Vail about keeping a piece of dirt under your pillow for the Dirt Man.","long_description_html":"<p>A hilarious and ridiculously catchy viral song created by musician Carter Vail. Featuring smooth 70s soft-rock harmonie
1239s and funky electric guitar, the song warns listeners to keep a little dirt under their pillow so the Dirt Man won&#39;t take them down to his lair under the mountain.</p>\n","url":"https://www.youtube.com/watch?v=XEgvqHdWybo","link_type":"youtube","embed_type":"video","soundcloud_url":null,"youtube_id":"XEgvqHdWybo","youtube_playlist_id":null,"imdb_id":null,"steam_appid":null,"bandcamp_url":null,"bandcamp_album_id":null,"bandcamp_track_id":null,"tags":["Indie Pop","Comedy","Viral Video","Music Video"],"items":[]}}
1240  </script>
1240
1241
1242  <svg id="duotone-svg-container" aria-hidden="true">
1243    <filter id="palette-duotone-filter" color-interpolation-filters="sRGB">
1244      <feColorMatrix id="palette-duotone-matrix" type="matrix" values="0.2126 0.7152 0.0722 0 0  0.2126 0.7152 0.0722 0 0  0.2126 0.7152 0.0722 0 0  0 0 0 1 0"/>
1245    </filter>
1246  </svg>
1247
1248  
1249    
1249<script src="./js/chart.min.js"></script>
1249
1250    
1250<script src="./js/highlight.min.js"></script>
1250
1251    
1251<script src="./js/hold_click.js"></script>
1251
1252    
1252<script src="./js/image_viewer.js"></script>
1252
1253    
1253<script src="./js/window_drag.js"></script>
1253
1254  
1255  
1255<script>
1256    try {
1257      if (typeof hljs !== 'undefined' && hljs.highlightAll) {
1258        hljs.highlightAll();
1259      }
1260    } catch(e) {
1261      console.warn('Highlight.js skipped:', e);
1262    }
1263
1264    function initLayout() {
1265      // Hamburger Menu Toggle Logic
1266      const hamburgerBtn = document.getElementById('hamburger-btn');
1267      const menuContent = document.getElementById('header-menu-content');
1268
1269      if (hamburgerBtn && menuContent) {
1270        hamburgerBtn.addEventListener('click', (e) => {
1271          e.stopPropagation();
1272          const isOpen = menuContent.classList.toggle('is-open');
1273          hamburgerBtn.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
1274        });
1275
1276        document.addEventListener('click', (e) => {
1277          if (menuContent.classList.contains('is-open') && !menuContent.contains(e.target) && e.target !== hamburgerBtn) {
1278            menuContent.classList.remove('is-open');
1279            hamburgerBtn.setAttribute('aria-expanded', 'false');
1280          }
1281        });
1282
1283        document.addEventListener('keydown', (e) => {
1284          if (e.key === 'Escape' && menuContent.classList.contains('is-open')) {
1285            menuContent.classList.remove('is-open');
1286            hamburgerBtn.setAttribute('aria-expanded', 'false');
1287          }
1288        });
1289      }
1290
1291      // Palette Swapping Engine (Modularized)
1292      if (window.PaletteEngine) {
1293        PaletteEngine.initDom();
1294      }
1295
1296      // Modular Draggable Snap-Back Windows
1297      if (window.WindowDraggable) {
1298        WindowDraggable.init();
1299      }
1300
1301      // Terminal Window Behavior
1302      document.querySelectorAll('.terminal-window').forEach(win => {
1303        if (win.classList.contains('image-viewer-window') || win.classList.contains('game-player-window') || win.id === 'game-player-window') return;
1304        if (win.dataset.windowInitialized) return;
1305        win.dataset.windowInitialized = 'true';
1306
1307        const header = win.querySelector(':scope > .window-header');
1308        const controls = header ? header.querySelector(':scope > .window-controls') : win.querySelector('.window-controls');
1309        if (!controls) return;
1310
1311        const btns = controls.querySelectorAll('.window-btn');
1312        if (btns.length >= 2) {
1313          const minBtn = controls.querySelector('.window-btn-min, .minimize-btn') || btns[0];
1314          const closeBtn = controls.querySelector('.window-btn-close, .close-btn') || btns[btns.length - 1];
1315
1316          // Minimize behavior: toggle window body display and switch SVG symbol
1317          const bracketLeft = `<svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0 0 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-35.3 0-64-28.7-64-64L0 96z"/></svg>`;
1318          const bracketRight = `<svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M192 96c0-35.3-28.7-64-64-64L64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c35.3 0 64-28.7 64-64l0-320z"/></svg>`;
1319          const minusIcon = `<svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. --><path fill="currentColor" d="M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"/></svg>`;
1320          const plusIcon = `<svg class="project-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2025 Fonticons, Inc. -->
1320<path fill="currentColor" d="M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z"/></svg>`;
1321
1322          minBtn.addEventListener('click', (e) => {
1323            e.preventDefault();
1324            e.stopPropagation();
1325            const body = win.querySelector(':scope > .window-body');
1326            if (body) {
1327              if (body.style.display === 'none') {
1328                body.style.display = '';
1329                minBtn.innerHTML = `<span class="window-btn-bracket">${bracketLeft}</span><span class="window-btn-icon-wrap">${minusIcon}</span><span class="window-btn-bracket">${bracketRight}</span>`;
1330              } else {
1331                body.style.display = 'none';
1332                minBtn.innerHTML = `<span class="window-btn-bracket">${bracketLeft}</span><span class="window-btn-icon-wrap">${plusIcon}</span><span class="window-btn-bracket">${bracketRight}</span>`;
1333              }
1334            }
1335          });
1336
1337
1338          // Close behavior: hide the window element or its parent modal overlay instead of removing from DOM
1339          closeBtn.addEventListener('click', (e) => {
1340            e.preventDefault();
1341            e.stopPropagation();
1342
1343            const overlay = win.closest('.skill-modal-overlay, [role="dialog"]');
1344            if (overlay) {
1345              overlay.style.display = 'none';
1346              document.body.style.overflow = '';
1347              const iframe = overlay.querySelector('iframe');
1348              if (iframe) iframe.src = 'about:blank';
1349            } else {
1350              win.style.display = 'none';
1351            }
1352          });
1353        }
1354      });
1355
1356      // Modular Retro GUI OS Image Viewer Logic
1357      const viewer = window.ImageViewer ? window.ImageViewer.getInstance() : null;
1358      if (viewer) {
1359        const postImages = document.querySelectorAll('.post-body-markdown img, .window-body img:not(#image-viewer-img)');
1360        postImages.forEach((img, index) => {
1361          if (img.closest('.gallery-main-frame, .carousel-main-frame, .gallery-thumbs, .photo-carousel-container, .game-carousel-wrapper')) return;
1362          const figNum = index + 1;
1363          img.setAttribute('data-figure-num', figNum);
1364          img.style.cursor = 'pointer';
1365          img.addEventListener('click', (e) => {
1366            e.preventDefault();
1367            e.stopPropagation();
1368            const imgSrc = img.getAttribute('src') || img.src;
1369            const imgAlt = img.getAttribute('alt') || img.getAttribute('title') || '';
1370            viewer.open(imgSrc, imgAlt, figNum);
1371          });
1372        });
1373      }
1374
1375      // Floating Series Quick Jump Observer & Interaction
1376      const topJumpNav = document.getElementById('top-series-jump-nav') || document.getElementById('combined-toc');
1377      const floatingNav = document.getElementById('series-floating-nav');
1378      const floatingToggle = document.getElementById('floating-nav-toggle');
1379
1380      if (topJumpNav && floatingNav) {
1381        const observer = new IntersectionObserver((entries) => {
1382          entries.forEach(entry => {
1383            if (!entry.isIntersecting) {
1384              floatingNav.classList.add('is-active');
1385            } else {
1386              floatingNav.classList.remove('is-active');
1387              floatingNav.classList.remove('is-open');
1388            }
1389          });
1390        }, { threshold: 0 });
1391
1392        observer.observe(topJumpNav);
1393
1394        if (floatingToggle) {
1395          floatingToggle.addEventListener('click', (e) => {
1396            e.stopPropagation();
1397            floatingNav.classList.toggle('is-open');
1398          });
1399        }
1400
1401        // Close floating menu when clicking links
1402        floatingNav.querySelectorAll('.floating-jump-btn').forEach(link => {
1403          link.addEventListener('click', () => {
1404            floatingNav.classList.remove('is-open');
1405          });
1406        });
1407      }
1408
1409      // Smooth scroll to entry targets
1410      document.querySelectorAll('a[href^="#entry-"]').forEach(anchor => {
1411        anchor.addEventListener('click', (e) => {
1412          e.preventDefault();
1413          const targetId = anchor.getAttribute('href').substring(1);
1414          const targetEl = document.getElementById(targetId);
1415          if (targetEl) {
1416            targetEl.scrollIntoView({ behavior: 'smooth', block: 'start' });
1417            history.pushState(null, '', '#' + targetId);
1418          }
1419        });
1420      });
1421
1422      // Smooth scroll to top button
1423      const scrollToTopBtn = document.getElementById('scroll-to-top-btn');
1424      if (scrollToTopBtn) {
1425        scrollToTopBtn.addEventListener('click', (e) => {
1426          e.preventDefault();
1427          window.scrollTo({ top: 0, behavior: 'smooth' });
1428        });
1429      }
1430
1431      // Series Jump Tooltip Edge-Fit Logic
1432      document.querySelectorAll('.series-jump-btn').forEach(btn => {
1433        btn.addEventListener('mouseenter', () => {
1434          const rect = btn.getBoundingClientRect();
1435          const tooltip = btn.querySelector('.btn-title');
1436          if (tooltip) {
1437            if (rect.left + 260 > window.innerWidth) {
1438              tooltip.style.left = 'auto';
1439              tooltip.style.right = '0';
1440            } else {
1441              tooltip.style.left = '0';
1442              tooltip.style.right = 'auto';
1443            }
1444          }
1445        });
1446      });
1447
1448      // Global Dynamic Tooltip Handler for Skills & Tech Tags
1449      (function() {
1450        let tooltipEl = document.getElementById('global-skill-tooltip');
1451        if (!tooltipEl) {
1452          tooltipEl = document.createElement('div');
1453          tooltipEl.id = 'global-skill-tooltip';
1454          tooltipEl.className = 'global-skill-tooltip-box';
1455          document.body.appendChild(tooltipEl);
1456        }
1457
1458        const selector = '[data-tooltip], [data-skill], .skill-tooltip-trigger, .jam-tooltip-trigger, .skill-tag, .skill-tag-icon-only, .project-filter-btn, .series-filter-btn, .chain-filter-btn, .section-project-filter-btn, .fav-filter-btn';
1459
1460        document.addEventListener('mouseover', function(e) {
1461          const target = e.target.closest(selector);
1462          if (!target) return;
1463
1464          if (target.hasAttribute('title')) {
1465            target.removeAttribute('title');
1466          }
1467          const childrenWithTitle = target.querySelectorAll('[title]');
1468          for (var i = 0; i < childrenWithTitle.length; i++) {
1469            childrenWithTitle[i].removeAttribute('title');
1470          }
1471
1472          let text = target.getAttribute('data-tooltip') || '';
1473          const slug = target.getAttribute('data-skill');
1474          const isFilterBtn = target.matches('.chain-filter-btn, .series-filter-btn, .project-filter-btn, .section-project-filter-btn, .fav-filter-btn');
1475          const isPaletteBtn = target.matches('.palette-swap-btn');
1476          const isSkillElement = target.matches('.skill-tooltip-trigger, .skill-tag, .skill-tag-icon-only') || !!slug;
1477
1478          if ((!text || !text.trim()) && isSkillElement) {
1479            const catalogScript = document.getElementById('skills-catalog-data');
1480            let catalog = {};
1481            if (catalogScript) {
1482              try { catalog = JSON.parse(catalogScript.textContent); } catch(err) {}
1483            }
1484            let cleanSlug = slug ? String(slug).trim().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '') : '';
1485            if (!cleanSlug && target.textContent) {
1486              cleanSlug = target.textContent.trim().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
1487            }
1488            const sObj = catalog[slug] || catalog[cleanSlug];
1489            if (sObj) {
1490              if (sObj.description && sObj.description.trim()) {
1491                if (target.matches('.skill-tag-icon-only')) {
1492                  text = sObj.name + ': ' + sObj.description;
1493                } else {
1494                  text = sObj.description;
1495                }
1496              } else {
1497                text = sObj.name;
1498              }
1499            } else if (target.textContent && target.textContent.trim()) {
1500              text = target.textContent.trim();
1501            }
1502          }
1503
1504          if ((!text || !text.trim()) && !isFilterBtn && !isPaletteBtn) return;
1505
1506          function escapeHtml(str) {
1507            return String(str || '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
1508          }
1509
1510          if (isPaletteBtn) {
1511            let html = "<div style=\"margin-bottom: 0.2rem;\">Left-click: Next palette</div><div style=\"margin-bottom: 0.2rem;\">Right-click: Previous palette</div><div style=\"margin-bottom: 0.2rem;\">Left Click Hold: Open Palette Menu</div><div>Right Click Hold: Reset to default</div>";
1512            tooltipEl.innerHTML = html;
1513          } else if (isFilterBtn) {
1514            const isAllBtn = (target.getAttribute('data-home-filter') === 'all') ||
1515                             (target.getAttribute('data-series-filter') === 'all') ||
1516                             (target.getAttribute('data-project-filter') === 'all') ||
1517                             (target.getAttribute('data-section-filter') === 'all') ||
1518                             (target.textContent.trim().toUpperCase() === '[ ALL ]');
1519            let html = '';
1520            const filterLegend = "<div style=\"font-size: 0.75rem; color: var(--text-dim); margin-top: 0.35rem; font-style: italic;\">Left: Select | Right: Select Multiple<br>Left Click Hold: Inspect</div>";
1521            const filterAllLegend = "<div style=\"font-size: 0.75rem; color: var(--text-dim); font-style: italic;\">Left: Select | Right: Select Multiple<br>Left Click Hold: Reset ALL</div>";
1522            if (isAllBtn) {
1523              html += filterAllLegend;
1524            } else {
1525              if (text && text.trim()) {
1526                html += '<div>' + escapeHtml(text) + '</div>';
1527                html += filterLegend;
1528              } else {
1529                html += filterLegend;
1530              }
1531            }
1532            tooltipEl.innerHTML = html;
1533          } else {
1534            tooltipEl.textContent = text;
1535          }
1536
1537          tooltipEl.classList.add('is-visible');
1538
1539          const rect = target.getBoundingClientRect();
1540          const tooltipRect = tooltipEl.getBoundingClientRect();
1541
1542          let top = rect.top - tooltipRect.height - 8;
1543          let left = rect.left + (rect.width / 2) - (tooltipRect.width / 2);
1544
1545          if (top < 10) {
1546            top = rect.bottom + 8;
1547          }
1548          if (left < 10) left = 10;
1549          if (left + tooltipRect.width > window.innerWidth - 10) {
1550            left = window.innerWidth - tooltipRect.width - 10;
1551          }
1552
1553          tooltipEl.style.top = (top + window.scrollY) + 'px';
1554          tooltipEl.style.left = (left + window.scrollX) + 'px';
1555        });
1556
1557        document.addEventListener('mouseout', function(e) {
1558          const target = e.target.closest(selector);
1559          if (target) {
1560            if (e.relatedTarget && target.contains(e.relatedTarget)) return;
1561            tooltipEl.classList.remove('is-visible');
1562          }
1563        });
1564      })();
1565
1566      // Retro Skill Spec Modal Interaction Logic
1567      (function() {
1568        var overlay = document.getElementById('skill-modal-overlay');
1569        if (!overlay) return;
1570
1571        var catalogScript = document.getElementById('skills-catalog-data');
1572        if (!catalogScript) return;
1573
1574        var catalog = {};
1575        try {
1576          catalog = JSON.parse(catalogScript.textContent);
1577        } catch(e) {
1578          console.error('Failed to parse skills catalog:', e);
1579        }
1580
1581        function escapeHtml(str) {
1582          return String(str || '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
1583        }
1584
1585        function openModal(slug) {
1586          if (!slug) return;
1587          var cleanSlug = String(slug).trim().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
1588          var skill = catalog[slug] || catalog[cleanSlug];
1589          if (!skill) return;
1590
1591          document.getElementById('skill-modal-title-text').textContent = 'SKILL_SPEC // ' + (skill.name || slug).toUpperCase();
1592          var iconEl = document.getElementById('skill-modal-icon');
1593          if (iconEl) {
1594            if (skill.svg_content) {
1595              iconEl.innerHTML = skill.svg_content;
1596              var svg = iconEl.querySelector('svg');
1597              if (svg) {
1598                svg.classList.add('skill-icon-svg');
1599                svg.style.width = '1em';
1600                svg.style.height = '1em';
1601                svg.style.verticalAlign = '-0.1em';
1602                svg.style.fill = 'currentColor';
1603                svg.style.display = 'inline-block';
1604              }
1605            } else if (skill.icon) {
1606              var cleanIcon = skill.icon.endsWith('.svg') ? skill.icon : skill.icon + '.svg';
1607              iconEl.innerHTML = '<span class="skill-icon-svg skill-icon-mask icon-' + (skill.slug || slug) + '"></span>';
1608              var maskSpan = iconEl.querySelector('.skill-icon-mask');
1609              if (maskSpan) {
1610                maskSpan.style.maskImage = "url('/icons/" + cleanIcon + "')";
1611                maskSpan.style.webkitMaskImage = "url('/icons/" + cleanIcon + "')";
1612              }
1613            } else {
1614              iconEl.innerHTML = '';
1615            }
1616          }
1617          document.getElementById('skill-modal-category').textContent = skill.category || 'General';
1618
1619          var expWrap = document.getElementById('skill-modal-exp-wrap');
1620          if (skill.years) {
1621            document.getElementById('skill-modal-exp').textContent = skill.years;
1622            expWrap.style.display = 'block';
1623          } else {
1624            expWrap.style.display = 'none';
1625          }
1626
1627          var startedWrap = document.getElementById('skill-modal-started-wrap');
1628          if (skill.date_started) {
1629            document.getElementById('skill-modal-started').textContent = skill.date_started;
1630            startedWrap.style.display = 'block';
1631          } else {
1632            startedWrap.style.display = 'none';
1633          }
1634
1635          var linksWrap = document.getElementById('skill-modal-links-wrap');
1636          var linksContainer = document.getElementById('skill-modal-links');
1637          linksContainer.innerHTML = '';
1638          if (skill.links && skill.links.length > 0) {
1639            skill.links.forEach(function(l) {
1640              var a = document.createElement('a');
1641              a.href = l.url;
1642              a.target = '_blank';
1643              a.className = 'nav-link';
1644              a.style.fontSize = '0.8rem';
1645              a.textContent = '[ ' + l.key.toUpperCase() + ' ]';
1646              linksContainer.appendChild(a);
1647            });
1648            linksWrap.style.display = 'flex';
1649          } else {
1650            linksWrap.style.display = 'none';
1651          }
1652
1653          document.getElementById('skill-modal-short-desc').textContent = skill.description || '';
1654
1655          var longDescEl = document.getElementById('skill-modal-long-desc');
1656          if (skill.long_description_html && skill.long_description_html.trim().length > 0) {
1657            longDescEl.innerHTML = skill.long_description_html;
1658            longDescEl.style.display = 'block';
1659          } else {
1660            longDescEl.innerHTML = '';
1661            longDescEl.style.display = 'none';
1662          }
1663
1664          var projSection = document.getElementById('skill-modal-projects-section');
1665          var projList = document.getElementById('skill-modal-projects-list');
1666          var projCount = document.getElementById('skill-modal-projects-count');
1667          if (projSection && projList && projCount) {
1668            projList.innerHTML = '';
1669            if (skill.projects && skill.projects.length > 0) {
1670              projCount.textContent = skill.projects.length;
1671              skill.projects.forEach(function(p) {
1672                var card = document.createElement('div');
1673                card.className = 'skill-modal-project-item';
1674                card.innerHTML = '<div><a href="' + escapeHtml(p.url) + '" class="skill-modal-project-title">' + escapeHtml(p.title) + '</a> <span class="skill-modal-tag">[' + escapeHtml(p.section.toUpperCase()) + ']</span></div><div class="skill-modal-desc">' + escapeHtml(p.description) + '</div>';
1675                projList.appendChild(card);
1676              });
1677            } else {
1678              projCount.textContent = '0';
1679              var emptyCard = document.createElement('div');
1680              emptyCard.className = 'skill-modal-project-item';
1681              emptyCard.style.fontStyle = 'italic';
1682              emptyCard.style.color = 'var(--text-dim)';
1683              emptyCard.style.fontSize = '0.82rem';
1684              emptyCard.textContent = 'No matching projects recorded for this skill.';
1685              projList.appendChild(emptyCard);
1686            }
1687            projSection.style.display = 'block';
1688          }
1689
1690          var gameSection = document.getElementById('skill-modal-games-section');
1691          var gameList = document.getElementById('skill-modal-games-list');
1692          var gameCount = document.getElementById('skill-modal-games-count');
1693          if (gameSection && gameList && gameCount) {
1694            gameList.innerHTML = '';
1695            if (skill.games && skill.games.length > 0) {
1696              gameCount.textContent = skill.games.length;
1697              skill.games.forEach(function(g) {
1698                var card = document.createElement('div');
1699                card.className = 'skill-modal-project-item';
1700                var titleHtml = '<a href="' + escapeHtml(g.url) + '" class="skill-modal-project-title">' + escapeHtml(g.title) + '</a>';
1701                var metaParts = [];
1702                if (g.engine) metaParts.push(g.engine.toUpperCase());
1703                if (g.subdomain) metaParts.push(g.subdomain.toUpperCase());
1704                var metaStr = metaParts.length > 0 ? ' <span class="skill-modal-tag">[' + escapeHtml(metaParts.join(' • ')) + ']</span>' : '';
1705                var descStr = g.description ? '<div class="skill-modal-desc skill-modal-desc-margin">' + escapeHtml(g.description) + '</div>' : '';
1706
1707                card.innerHTML = '<div><div>' + titleHtml + metaStr + '</div>' + descStr + '</div>';
1708                gameList.appendChild(card);
1709              });
1710            } else {
1711              gameCount.textContent = '0';
1712              var emptyCard = document.createElement('div');
1713              emptyCard.className = 'skill-modal-project-item';
1714              emptyCard.style.fontStyle = 'italic';
1715              emptyCard.style.color = 'var(--text-dim)';
1716              emptyCard.style.fontSize = '0.82rem';
1717              emptyCard.textContent = 'No matching games recorded for this skill.';
1718              gameList.appendChild(emptyCard);
1719            }
1720            gameSection.style.display = 'block';
1721          }
1722
1723          var achSection = document.getElementById('skill-modal-achievements-section');
1724          var achList = document.getElementById('skill-modal-achievements-list');
1725          var achCount = document.getElementById('skill-modal-achievements-count');
1726          if (achSection && achList && achCount) {
1727            achList.innerHTML = '';
1728            if (skill.achievements && skill.achievements.length > 0) {
1729              achCount.textContent = skill.achievements.length;
1730              skill.achievements.forEach(function(a) {
1731                var card = document.createElement('div');
1732                card.className = 'skill-modal-project-item';
1733                var titleHtml = a.link
1734                  ? '<a href="' + escapeHtml(a.link) + '" target="_blank" class="skill-modal-project-title">' + escapeHtml(a.title) + '</a>'
1735                  : '<span class="skill-modal-project-title skill-modal-title-plain">' + escapeHtml(a.title) + '</span>';
1736
1737                var metaParts = [];
1738                if (a.category) metaParts.push(a.category.toUpperCase());
1739                if (a.issuer) metaParts.push(a.issuer);
1740                if (a.date) metaParts.push(a.date);
1741
1742                var metaStr = metaParts.length > 0 ? ' <span class="skill-modal-tag">[' + escapeHtml(metaParts.join(' • ')) + ']</span>' : '';
1743                var descStr = a.description ? '<div class="skill-modal-desc skill-modal-desc-margin">' + escapeHtml(a.description) + '</div>' : '';
1744
1745                card.innerHTML = '<div><div>' + titleHtml + metaStr + '</div>' + descStr + '</div>';
1746                achList.appendChild(card);
1747              });
1748            } else {
1749              achCount.textContent = '0';
1750              var emptyCard = document.createElement('div');
1751              emptyCard.className = 'skill-modal-project-item';
1752              emptyCard.style.fontStyle = 'italic';
1753              emptyCard.style.color = 'var(--text-dim)';
1754              emptyCard.style.fontSize = '0.82rem';
1755              emptyCard.textContent = 'No matching accolades or achievements recorded for this skill.';
1756              achList.appendChild(emptyCard);
1757            }
1758            achSection.style.display = 'block';
1759          }
1760
1761          var postSection = document.getElementById('skill-modal-posts-section');
1762          var postList = document.getElementById('skill-modal-posts-list');
1763          var postCount = document.getElementById('skill-modal-posts-count');
1764          if (postSection && postList && postCount) {
1765            postList.innerHTML = '';
1766            if (skill.posts && skill.posts.length > 0) {
1767              postCount.textContent = skill.posts.length;
1768              skill.posts.forEach(function(p) {
1769                var card = document.createElement('div');
1770                card.className = 'skill-modal-project-item';
1771                var metaParts = [];
1772                if (p.chain_title || p.category) metaParts.push((p.chain_title || p.category).toUpperCase());
1773                metaParts.push('ENTRY #' + p.index);
1774                if (p.date) metaParts.push(p.date);
1775                var metaStr = ' <span class="skill-modal-tag">[' + escapeHtml(metaParts.join(' • ')) + ']</span>';
1776                card.innerHTML = '<div><a href="' + escapeHtml(p.url) + '" class="skill-modal-project-title">' + escapeHtml(p.title) + '</a>' + metaStr + '</div>';
1777                postList.appendChild(card);
1778              });
1779            } else {
1780              postCount.textContent = '0';
1781              var emptyCard = document.createElement('div');
1782              emptyCard.className = 'skill-modal-project-item';
1783              emptyCard.style.fontStyle = 'italic';
1784              emptyCard.style.color = 'var(--text-dim)';
1785              emptyCard.style.fontSize = '0.82rem';
1786              emptyCard.textContent = 'No matching journal posts recorded for this skill.';
1787              postList.appendChild(emptyCard);
1788            }
1789            postSection.style.display = 'block';
1790          }
1791
1792          overlay.style.display = 'flex';
1793          document.body.style.overflow = 'hidden';
1794        }
1795
1796        function closeModal() {
1797          overlay.style.display = 'none';
1798          document.body.style.overflow = '';
1799        }
1800
1801        window.openSkillModal = openModal;
1802
1803        document.addEventListener('click', function(e) {
1804          var trigger = e.target.closest('.skill-modal-trigger');
1805          if (trigger) {
1806            if (trigger.classList.contains('chain-filter-btn') ||
1807                trigger.classList.contains('series-filter-btn') ||
1808                trigger.classList.contains('project-filter-btn') ||
1809                trigger.classList.contains('section-project-filter-btn') ||
1810                trigger.classList.contains('fav-filter-btn')) {
1811              return;
1812            }
1813            e.preventDefault();
1814            e.stopPropagation();
1815            var slug = trigger.getAttribute('data-skill');
1816            if (slug) {
1817              openModal(slug);
1818            }
1819          }
1820        });
1821
1822        var closeBtn = document.getElementById('skill-modal-close-btn');
1823        if (closeBtn) {
1824          closeBtn.addEventListener('click', closeModal);
1825        }
1826
1827        overlay.addEventListener('click', function(e) {
1828          if (e.target === overlay) {
1829            closeModal();
1830          }
1831        });
1832
1833        document.addEventListener('keydown', function(e) {
1834          if (e.key === 'Escape' && overlay.style.display === 'flex') {
1835            closeModal();
1836          }
1837        });
1838      })();
1839
1840      // Retro Jam Spec Modal Interaction Logic
1841      (function() {
1842        var overlay = document.getElementById('jam-modal-overlay');
1843        if (!overlay) return;
1844
1845        var jamsList = window.SITE_JAMS || [];
1846
1847        function escapeHtml(str) {
1848          return String(str || '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
1849        }
1850
1851        function openModal(jamQuery) {
1852          if (!jamQuery) return;
1853          var qNorm = String(jamQuery).trim().toLowerCase();
1854          var jam = jamsList.find(function(j) {
1855            return (j.id && j.id.toLowerCase() === qNorm) ||
1856                   (j.name && j.name.toLowerCase() === qNorm) ||
1857                   (j.id && qNorm.includes(j.id.toLowerCase())) ||
1858                   (j.name && j.name.toLowerCase().includes(qNorm));
1859          });
1860          if (!jam) return;
1861
1862          document.getElementById('jam-modal-title').textContent = '[ JAM_SPEC // ' + (jam.name || jamQuery).toUpperCase() + ' ]';
1863          document.getElementById('jam-modal-name').textContent = jam.name || 'Game Jam';
1864          document.getElementById('jam-modal-tagline').textContent = jam.tagline || '';
1865          document.getElementById('jam-modal-host').textContent = jam.host || 'N/A';
1866          document.getElementById('jam-modal-dates').textContent = (jam.start_date && jam.end_date) ? (jam.start_date + ' to ' + jam.end_date) : (jam.start_date || jam.end_date || 'N/A');
1867          
1868          var linkWrap = document.getElementById('jam-modal-link');
1869          if (jam.link) {
1870            linkWrap.innerHTML = '<a href="' + escapeHtml(jam.link) + '" target="_blank" class="export-btn jam-visit-btn">[ VISIT JAM PAGE ↗ ]</a>';
1871          } else {
1872            linkWrap.textContent = 'N/A';
1873          }
1874
1875          var liveStatsEl = document.getElementById('jam-modal-live-stats');
1876          var liveStatsWrap = document.getElementById('jam-modal-live-stats-wrap');
1877          var jamSlug = jam.itch_jam_slug || (jam.link && jam.link.includes('itch.io/jam/') ? jam.link.split('itch.io/jam/')[1].split('/')[0].split('?')[0] : null);
1878
1879          if (jamSlug && liveStatsEl) {
1880            if (liveStatsWrap) liveStatsWrap.style.display = 'block';
1881            liveStatsEl.innerHTML = '';
1882            liveStatsEl.setAttribute('data-itch-jam', jamSlug);
1883            if (window.ItchJamWidget && typeof window.ItchJamWidget.initElement === 'function') {
1884              window.ItchJamWidget.initElement(liveStatsEl);
1885            }
1886          } else if (liveStatsWrap) {
1887            liveStatsWrap.style.display = 'none';
1888          }
1889
1890          document.getElementById('jam-modal-desc').textContent = jam.description || '';
1891
1892          var gamesListContainer = document.getElementById('jam-modal-games-list');
1893          gamesListContainer.innerHTML = '';
1894          if (jam.games && jam.games.length > 0) {
1895            jam.games.forEach(function(g) {
1896              var chip = document.createElement('div');
1897              chip.className = 'export-btn jam-game-chip';
1898              chip.innerHTML = '<span class="game-chip-title">' + escapeHtml(g.title) + '</span>' + (g.ranking ? ' <span class="game-chip-rank">[' + escapeHtml(g.ranking) + ']</span>' : '');
1899              gamesListContainer.appendChild(chip);
1900            });
1901          } else {
1902            gamesListContainer.innerHTML = '<span class="game-empty-notice">No registered game entries found.</span>';
1903          }
1904
1905          overlay.style.display = 'flex';
1906          document.body.style.overflow = 'hidden';
1907        }
1908
1909        function closeModal() {
1910          overlay.style.display = 'none';
1911          document.body.style.overflow = '';
1912        }
1913
1914        var closeBtn = document.getElementById('jam-modal-close-btn');
1915        if (closeBtn) {
1916          closeBtn.addEventListener('click', closeModal);
1917        }
1918
1919        overlay.addEventListener('click', function(e) {
1920          if (e.target === overlay) {
1921            closeModal();
1922          }
1923        });
1924
1925        document.addEventListener('keydown', function(e) {
1926          if (e.key === 'Escape' && overlay.style.display !== 'none') {
1927            closeModal();
1928          }
1929        });
1930
1931        document.addEventListener('click', function(e) {
1932          var trigger = e.target.closest('.jam-modal-trigger');
1933          if (trigger) {
1934            e.preventDefault();
1935            var jamQuery = trigger.getAttribute('data-jam') || trigger.getAttribute('data-tooltip') || trigger.textContent;
1936            openModal(jamQuery);
1937          }
1938        });
1939      })();
1940
1941      // Generic Multi-Select Filter Group Handler with HoldClick Support
1942      function setupFilterGroup(options) {
1943        var btnSelector = options.btnSelector;
1944        var attrName = options.attrName;
1945        var onFilterChange = options.onFilterChange;
1946
1947        var selectedFilters = new Set(['all']);
1948
1949        function updateUI() {
1950          var allBtns = document.querySelectorAll(btnSelector);
1951          allBtns.forEach(function(b) {
1952            var val = b.getAttribute(attrName) || 'all';
1953            if (selectedFilters.has('all')) {
1954              if (val === 'all') b.classList.add('active');
1955              else b.classList.remove('active');
1956            } else {
1957              if (selectedFilters.has(val)) b.classList.add('active');
1958              else b.classList.remove('active');
1959            }
1960          });
1961
1962          onFilterChange(selectedFilters);
1963        }
1964
1965        if (!window.HoldClick) return;
1966
1967        HoldClick.attach(document.body, {
1968          delegateSelector: btnSelector,
1969          holdDuration: 2000,
1970          spinnerDelay: 500,
1971          onLeftClick: function(e, btn) {
1972            var filterVal = btn.getAttribute(attrName) || 'all';
1973            selectedFilters.clear();
1974            selectedFilters.add(filterVal);
1975            updateUI();
1976          },
1977          onRightClick: function(e, btn) {
1978            var filterVal = btn.getAttribute(attrName) || 'all';
1979            if (filterVal === 'all') {
1980              selectedFilters.clear();
1981              selectedFilters.add('all');
1982            } else {
1983              selectedFilters.delete('all');
1984              if (selectedFilters.has(filterVal)) {
1985                selectedFilters.delete(filterVal);
1986                if (selectedFilters.size === 0) {
1987                  selectedFilters.add('all');
1988                }
1989              } else {
1990                selectedFilters.add(filterVal);
1991              }
1992            }
1993            updateUI();
1994          },
1995          onLeftHold: function(e, btn) {
1996            var filterVal = btn.getAttribute(attrName) || 'all';
1997            if (filterVal === 'all') {
1998              selectedFilters.clear();
1999              selectedFilters.add('all');
2000              updateUI();
2001            } else {
2002              var slug = btn.getAttribute('data-skill');
2003              if (slug && window.openSkillModal) {
2004                window.openSkillModal(slug);
2005              }
2006            }
2007          },
2008          onRightHold: function(e, btn) {
2009            var slug = btn.getAttribute('data-skill');
2010            if (slug && window.openSkillModal) {
2011              window.openSkillModal(slug);
2012            }
2013          }
2014        });
2015      }
2016
2017      // 1. Home Page Post Chain Skill Filter
2018      setupFilterGroup({
2019        btnSelector: '.chain-filter-btn',
2020        attrName: 'data-home-filter',
2021        onFilterChange: function(selected) {
2022          var chainBoxes = document.querySelectorAll('.terminal-window[data-skills]');
2023          chainBoxes.forEach(function(box) {
2024            if (selected.has('all')) {
2025              box.style.display = '';
2026            } else {
2027              var skills = (box.getAttribute('data-skills') || '').split(/\s+/);
2028              var match = Array.from(selected).every(function(s) { return skills.includes(s); });
2029              box.style.display = match ? '' : 'none';
2030            }
2031          });
2032        }
2033      });
2034
2035      // 2. Series Page Post Skill Filter
2036      setupFilterGroup({
2037        btnSelector: '.series-filter-btn',
2038        attrName: 'data-series-filter',
2039        onFilterChange: function(selected) {
2040          var postItems = document.querySelectorAll('.post-link-item[data-skills]');
2041          postItems.forEach(function(item) {
2042            if (selected.has('all')) {
2043              item.style.display = '';
2044            } else {
2045              var skills = (item.getAttribute('data-skills') || '').split(/\s+/);
2046              var match = Array.from(selected).every(function(s) { return skills.includes(s); });
2047              item.style.display = match ? '' : 'none';
2048            }
2049          });
2050
2051          var entryBoxes = document.querySelectorAll('.terminal-window[id^="entry-"][data-skills]');
2052          entryBoxes.forEach(function(box) {
2053            if (selected.has('all')) {
2054              box.style.display = '';
2055            } else {
2056              var skills = (box.getAttribute('data-skills') || '').split(/\s+/);
2057              var match = Array.from(selected).every(function(s) { return skills.includes(s); });
2058              box.style.display = match ? '' : 'none';
2059            }
2060          });
2061
2062          var jumpBtns = document.querySelectorAll('.series-jump-btn[data-skills], .floating-jump-btn[data-skills]');
2063          jumpBtns.forEach(function(jbtn) {
2064            if (selected.has('all')) {
2065              jbtn.style.display = '';
2066            } else {
2067              var skills = (jbtn.getAttribute('data-skills') || '').split(/\s+/);
2068              var match = Array.from(selected).every(function(s) { return skills.includes(s); });
2069              jbtn.style.display = match ? '' : 'none';
2070            }
2071          });
2072        }
2073      });
2074
2075      // 3. Main Projects Page Skill Filter
2076      setupFilterGroup({
2077        btnSelector: '.project-filter-btn',
2078        attrName: 'data-project-filter',
2079        onFilterChange: function(selected) {
2080          var flexGrid = document.getElementById('projects-flex-grid');
2081          var resultsGrid = document.getElementById('projects-filter-results-grid');
2082
2083          if (selected.has('all')) {
2084            if (flexGrid) flexGrid.style.display = '';
2085            if (resultsGrid) resultsGrid.style.display = 'none';
2086          } else {
2087            if (flexGrid) flexGrid.style.display = 'none';
2088            if (resultsGrid) {
2089              resultsGrid.style.display = 'flex';
2090              var filterCards = resultsGrid.querySelectorAll('.filter-project-card');
2091              filterCards.forEach(function(card) {
2092                var skills = (card.getAttribute('data-skills') || '').split(/\s+/);
2093                var match = Array.from(selected).every(function(s) { return skills.includes(s); });
2094                card.style.display = match ? '' : 'none';
2095              });
2096            }
2097          }
2098        }
2099      });
2100
2101      // 4. Project Subsection Skill Filter
2102      setupFilterGroup({
2103        btnSelector: '.section-project-filter-btn',
2104        attrName: 'data-section-filter',
2105        onFilterChange: function(selected) {
2106          var sectionCards = document.querySelectorAll('.section-card[data-skills]');
2107          sectionCards.forEach(function(card) {
2108            if (selected.has('all')) {
2109              card.style.display = '';
2110            } else {
2111              var skills = (card.getAttribute('data-skills') || '').split(/\s+/);
2112              var match = Array.from(selected).every(function(s) { return skills.includes(s); });
2113              card.style.display = match ? '' : 'none';
2114            }
2115          });
2116        }
2117      });
2118
2119      // 5. Favorites Page Category Filter
2120      setupFilterGroup({
2121        btnSelector: '.fav-filter-btn',
2122        attrName: 'data-fav-filter',
2123        onFilterChange: function(selected) {
2124          var catGroups = document.querySelectorAll('.fav-category-group');
2125          catGroups.forEach(function(group) {
2126            if (selected.has('all')) {
2127              group.style.display = '';
2128            } else {
2129              var cat = group.getAttribute('data-category');
2130              group.style.display = selected.has(cat) ? '' : 'none';
2131            }
2132          });
2133        }
2134      });
2135
2136      // Retro Favorite Spec Modal Interaction Logic
2137      (function() {
2138        var overlay = document.getElementById('favorite-modal-overlay');
2139        if (!overlay) return;
2140
2141        var catalogScript = document.getElementById('favorites-catalog-data');
2142        if (!catalogScript) return;
2143
2144        var catalog = {};
2145        try {
2146          catalog = JSON.parse(catalogScript.textContent);
2147        } catch(e) {
2148          console.error('Failed to parse favorites catalog:', e);
2149        }
2150
2151        function openModal(slug) {
2152          var item = catalog[slug];
2153          if (!item) return;
2154
2155          var singleBody = document.getElementById('favorite-modal-single-body');
2156          var colBody = document.getElementById('favorite-modal-collection-body');
2157          var playerContainer = document.getElementById('favorite-modal-player-container');
2158          var itemsContainer = document.getElementById('favorite-modal-items-container');
2159
2160          if (playerContainer) playerContainer.innerHTML = '';
2161          if (itemsContainer) itemsContainer.innerHTML = '';
2162
2163          if (item.is_collection && item.items && item.items.length > 0) {
2164            if (singleBody) singleBody.style.display = 'none';
2165            if (colBody) colBody.style.display = 'block';
2166
2167            document.getElementById('favorite-modal-title').textContent = 'COLLECTION_SPEC // ' + (item.name || item.title || slug).toUpperCase();
2168            document.getElementById('favorite-modal-col-creator').textContent = item.creator || 'Various';
2169            document.getElementById('favorite-modal-col-count').textContent = item.items.length + ' ITEMS';
2170            document.getElementById('favorite-modal-col-desc').textContent = item.description || '';
2171
2172            var artistLinkEl = document.getElementById('favorite-modal-col-artist-link');
2173            if (artistLinkEl) {
2174              if (item.url) {
2175                artistLinkEl.href = item.url;
2176                artistLinkEl.style.display = 'inline-flex';
2177              } else {
2178                artistLinkEl.style.display = 'none';
2179              }
2180            }
2181
2182            item.items.forEach(function(subItem, idx) {
2183              var card = document.createElement('div');
2184              card.className = 'fav-modal-item-card';
2185              card.style.cssText = 'border: 1px solid var(--border-color); background: var(--bg-window); padding: 0.85rem; margin-bottom: 1rem;';
2186
2187              var header = document.createElement('div');
2188              header.style.cssText = 'display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.5rem; border-bottom: 1px dashed var(--border-color); padding-bottom: 0.4rem;';
2189
2190              var titleSpan = document.createElement('span');
2191              titleSpan.style.cssText = 'font-weight: bold; color: var(--text-color); font-size: 0.95rem;';
2192              titleSpan.textContent = (idx + 1) + '. ' + subItem.title;
2193              header.appendChild(titleSpan);
2194
2195              if (subItem.url) {
2196                var linkBtn = document.createElement('a');
2197                linkBtn.href = subItem.url;
2198                linkBtn.target = '_blank';
2199                linkBtn.className = 'accolade-link-btn';
2200                linkBtn.innerHTML = '<span>' + (subItem.link_type || 'LINK').toUpperCase() + '</span>';
2201                header.appendChild(linkBtn);
2202              }
2203
2204              card.appendChild(header);
2205
2206              if (subItem.description) {
2207                var descDiv = document.createElement('div');
2208                descDiv.style.cssText = 'font-size: 0.85rem; color: var(--text-dim); margin-bottom: 0.5rem;';
2209                descDiv.textContent = subItem.description;
2210                card.appendChild(descDiv);
2211              }
2212
2213              var playerDiv = document.createElement('div');
2214              playerDiv.className = 'fav-player-section';
2215              playerDiv.style.cssText = 'margin-top: 0.5rem; background: var(--bg-color); border: 1px solid var(--border-color); padding: 0.4rem;';
2216
2217              if (subItem.link_type === 'soundcloud' && subItem.soundcloud_url && window.SoundcloudWidget) {
2218                window.SoundcloudWidget.render(playerDiv, subItem.soundcloud_url);
2219                card.appendChild(playerDiv);
2220              } else if (subItem.link_type === 'youtube' && (subItem.youtube_id || subItem.youtube_playlist_id) && window.YoutubeWidget) {
2221                window.YoutubeWidget.render(playerDiv, subItem.youtube_id, subItem.youtube_playlist_id, subItem.embed_type);
2222                card.appendChild(playerDiv);
2223              } else if (subItem.link_type === 'bandcamp' && window.BandcampWidget) {
2224                window.BandcampWidget.render(playerDiv, subItem.bandcamp_url, subItem.bandcamp_album_id, subItem.bandcamp_track_id, subItem.title, item.creator);
2225                card.appendChild(playerDiv);
2226              } else if (subItem.link_type === 'steam' && subItem.steam_appid && window.SteamWidget) {
2227                var steamHost = document.createElement('div');
2228                steamHost.setAttribute('data-steam-appid', subItem.steam_appid);
2229                steamHost.setAttribute('data-widget-layout', 'rectangle');
2230                playerDiv.appendChild(steamHost);
2231                card.appendChild(playerDiv);
2232                window.SteamWidget.initElement(steamHost);
2233              }
2234
2235              if (itemsContainer) itemsContainer.appendChild(card);
2236            });
2237          } else {
2238            if (colBody) colBody.style.display = 'none';
2239            if (singleBody) singleBody.style.display = 'block';
2240
2241            document.getElementById('favorite-modal-title').textContent = 'FAVORITE_SPEC // ' + (item.name || item.title || slug).toUpperCase();
2242            document.getElementById('favorite-modal-category').textContent = item.category || 'General';
2243
2244            var creatorWrap = document.getElementById('favorite-modal-creator-wrap');
2245            if (item.creator) {
2246              document.getElementById('favorite-modal-creator').textContent = item.creator;
2247              creatorWrap.style.display = 'block';
2248            } else {
2249              creatorWrap.style.display = 'none';
2250            }
2251
2252            var yearWrap = document.getElementById('favorite-modal-year-wrap');
2253            if (item.year) {
2254              document.getElementById('favorite-modal-year').textContent = item.year;
2255              yearWrap.style.display = 'block';
2256            } else {
2257              yearWrap.style.display = 'none';
2258            }
2259
2260            var ratingWrap = document.getElementById('favorite-modal-rating-wrap');
2261            if (item.rating) {
2262              document.getElementById('favorite-modal-rating').textContent = item.rating;
2263              ratingWrap.style.display = 'block';
2264            } else {
2265              ratingWrap.style.display = 'none';
2266            }
2267
2268            var linksContainer = document.getElementById('favorite-modal-links');
2269            linksContainer.innerHTML = '';
2270            if (item.url) {
2271              var a = document.createElement('a');
2272              a.href = item.url;
2273              a.target = '_blank';
2274              a.className = 'nav-link';
2275              a.style.fontSize = '0.8rem';
2276              a.textContent = '[ OPEN ' + (item.link_type || 'LINK').toUpperCase() + ' ]';
2277              linksContainer.appendChild(a);
2278            }
2279
2280            document.getElementById('favorite-modal-short-desc').textContent = item.description || '';
2281
2282            var longDescEl = document.getElementById('favorite-modal-long-desc');
2283            if (item.long_description_html && item.long_description_html.trim().length > 0) {
2284              longDescEl.innerHTML = item.long_description_html;
2285              longDescEl.style.display = 'block';
2286            } else {
2287              longDescEl.innerHTML = '';
2288              longDescEl.style.display = 'none';
2289            }
2290
2291            var playerSection = document.getElementById('favorite-modal-player-section');
2292            playerSection.style.display = 'none';
2293
2294            if (item.link_type === 'soundcloud' && item.soundcloud_url && window.SoundcloudWidget) {
2295              playerSection.style.display = 'block';
2296              window.SoundcloudWidget.render(playerContainer, item.soundcloud_url);
2297            } else if (item.link_type === 'youtube' && (item.youtube_id || item.youtube_playlist_id) && window.YoutubeWidget) {
2298              playerSection.style.display = 'block';
2299              window.YoutubeWidget.render(playerContainer, item.youtube_id, item.youtube_playlist_id, item.embed_type);
2300            } else if (item.link_type === 'steam' && item.steam_appid && window.SteamWidget) {
2301              playerSection.style.display = 'block';
2302              var steamHost = document.createElement('div');
2303              steamHost.setAttribute('data-steam-appid', item.steam_appid);
2304              steamHost.setAttribute('data-widget-layout', 'rectangle');
2305              if (item.rating) steamHost.setAttribute('data-steam-review-score', item.rating);
2306              playerContainer.appendChild(steamHost);
2307              window.SteamWidget.initElement(steamHost);
2308            } else if (item.link_type === 'imdb' && window.ImdbWidget) {
2309              playerSection.style.display = 'block';
2310              window.ImdbWidget.render(playerContainer, item.imdb_id, item.rating, item.creator, item.year, item.category);
2311            } else if (item.link_type === 'bandcamp' && window.BandcampWidget) {
2312              playerSection.style.display = 'block';
2313              window.BandcampWidget.render(playerContainer, item.bandcamp_url, item.bandcamp_album_id, item.bandcamp_track_id, item.title, item.creator);
2314            }
2315          }
2316
2317          overlay.style.display = 'flex';
2318          document.body.style.overflow = 'hidden';
2319        }
2320
2321        function closeModal() {
2322          overlay.style.display = 'none';
2323          document.body.style.overflow = '';
2324          var playerContainer = document.getElementById('favorite-modal-player-container');
2325          if (playerContainer) playerContainer.innerHTML = '';
2326          var itemsContainer = document.getElementById('favorite-modal-items-container');
2327          if (itemsContainer) itemsContainer.innerHTML = '';
2328        }
2329
2330        document.addEventListener('click', function(e) {
2331          var trigger = e.target.closest('.favorite-modal-trigger');
2332          if (trigger) {
2333            e.preventDefault();
2334            e.stopPropagation();
2335            var slug = trigger.getAttribute('data-favorite');
2336            if (slug) {
2337              openModal(slug);
2338            }
2339          }
2340        });
2341
2342        var closeBtn = document.getElementById('favorite-modal-close-btn');
2343        if (closeBtn) {
2344          closeBtn.addEventListener('click', closeModal);
2345        }
2346
2347        overlay.addEventListener('click', function(e) {
2348          if (e.target === overlay) {
2349            closeModal();
2350          }
2351        });
2352
2353        document.addEventListener('keydown', function(e) {
2354          if (e.key === 'Escape' && overlay.style.display === 'flex') {
2355            closeModal();
2356          }
2357        });
2358      })();
2359    }
2360
2361    (function() {
2362      if (typeof window === 'undefined' || window.location.protocol === 'file:') return;
2363      if (document.body && (document.body.classList.contains('is-export') || window.location.pathname.indexOf('/inline/') !== -1 || window.location.pathname.indexOf('/pdfs/') !== -1)) return;
2364      try {
2365        var reqPath = window.location.pathname;
2366        var reqRef = document.referrer || '';
2367        var trackUrl = '/api/track?path=' + encodeURIComponent(reqPath) +
2368                       '&referrer=' + encodeURIComponent(reqRef);
2369        if (typeof navigator !== 'undefined' && typeof navigator.sendBeacon === 'function') {
2370          navigator.sendBeacon(trackUrl);
2371        } else if (typeof fetch === 'function') {
2372          fetch(trackUrl, { method: 'POST', keepalive: true }).catch(function(){});
2373        } else {
2374          var img = new Image();
2375          img.src = trackUrl;
2376        }
2377      } catch(e) {}
2378    })();
2379
2380    if (document.readyState === 'loading') {
2381      document.addEventListener('DOMContentLoaded', initLayout);
2382    } else {
2383      initLayout();
2384    }
2385  </script>
2385
2386  
2387  
2388    
2388<script src="./js/cube.js"></script>
2388
2389  
2390
2391
2392  
2393    
2393<script src="./js/rate_limiter.js"></script>
2393
2394    
2394<script src="./js/widgets/github_widget.js"></script>
2394
2395    
2395<script src="./js/widgets/gist_widget.js"></script>
2395
2396    
2396<script src="./js/widgets/itch_widget.js"></script>
2396
2397    
2397<script src="./js/widgets/itch_jam_widget.js"></script>
2397
2398    
2398<script src="./js/widgets/steam_widget.js"></script>
2398
2399    
2399<script src="./js/widgets/soundcloud_widget.js"></script>
2399
2400    
2400<script src="./js/widgets/youtube_widget.js"></script>
2400
2401    
2401<script src="./js/widgets/bandcamp_widget.js"></script>
2401
2402    
2402<script src="./js/widgets/imdb_widget.js"></script>
2402
2403    
2403<script src="./js/live_stats.js"></script>
2403
2404    
2404<script src="./js/carousel.js"></script>
2404
2405    
2405<script src="./js/game_player.js"></script>
2405
2406  
2407</body>
2408</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.