@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Mono&display=swap";:root{--color-bg: #1a0c25;--color-fg: #dcdacb;--color-highlight: #74ff5e;--color-accent: #ff0055;--color-ui-bg: #2d1b3e;--color-ui-border: #5e3b7d;--color-hotspot: #a96ddf;--font-display: "Press Start 2P", cursive;--font-body: "Space Mono", monospace;--spacing-unit: 4px}*{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-body);font-size:20px;background-color:var(--color-bg);color:var(--color-fg);image-rendering:pixelated;line-height:1.5}h1,h2,h3,h4,buttons{font-family:var(--font-display);text-transform:uppercase;letter-spacing:1px}a{color:var(--color-highlight);text-decoration:none}a:hover{color:#fff;text-decoration:underline;text-decoration-style:dashed}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-ui-border);border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-highlight)}.page-header{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:2rem;border-bottom:4px solid var(--color-ui-border);padding-bottom:1rem}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem;padding-top:1rem}}.mascot-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;width:150px}.mascot-label{font-family:var(--font-display);font-size:.7rem;background:var(--color-bg);border:1px solid var(--color-fg);padding:2px 4px;margin-top:-10px;z-index:2}.page-wrapper{min-height:100vh;padding:2rem;position:relative}.fixed-background{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:-1;background-image:url(./steampunk_bg_desktop-DOR95Kgk.png);background-size:cover;background-position:center;background-repeat:no-repeat}@media(max-width:1024px){.fixed-background{background-image:url(./steampunk_bg_mobile-ByrK-ri4.png)}}.content-container{max-width:800px;margin:0 auto;background:#1a0c25f2;border:2px solid var(--color-ui-border);box-shadow:0 0 20px #000c;padding:2rem}.content-container.wide{max-width:1000px}.intro-text,.intro-text p{font-size:1.2rem;line-height:1.6}.intro-text{margin-bottom:2rem;border-left:4px solid var(--color-highlight);padding-left:1rem}.content-body{font-family:var(--font-body);line-height:1.6}.content-body p{margin-bottom:1.5rem}.content-body h3{color:var(--color-highlight);margin-top:2rem;margin-bottom:1rem}.content-body ul{list-style-type:square;padding-left:1.5rem}.content-body li{margin-bottom:.5rem}@media(max-width:768px){.page-wrapper{padding:1rem}.page-header h1{font-size:1.5rem}}.home-scene{position:absolute;top:0;left:0;width:100%;height:100vh;background-image:url(./steampunk_bg_desktop-DOR95Kgk.png);background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}@media(max-width:1024px){.home-scene{background-image:url(./steampunk_bg_mobile-ByrK-ri4.png);background-position:center top}}@media(max-width:768px){.home-scene{background-image:url(./steampunk_bg_mobile-ByrK-ri4.png)}}.hotspot{position:absolute;cursor:pointer;border:4px solid rgba(169,109,223,.5);transition:all .2s;z-index:50;background:#ffffff05;box-shadow:0 0 10px #a96ddf4d;animation:hotspot-pulse 3s infinite}@keyframes hotspot-pulse{0%{box-shadow:0 0 5px #a96ddf80;border-color:#a96ddf33}50%{box-shadow:0 0 15px #a96ddfe6;border-color:#a96ddfcc;background:#a96ddf1a}to{box-shadow:0 0 5px #a96ddf80;border-color:#a96ddf33}}@keyframes hotspot-label-pulse{0%{box-shadow:0 0 5px #a96ddf80;border-color:#a96ddf33;background:#a96ddf1a}50%{box-shadow:0 0 15px #a96ddfe6;border-color:#a96ddfcc;background:var(--color-bg)}to{box-shadow:0 0 5px #a96ddf80;border-color:#a96ddf33;background:#a96ddf1a}}.hotspot:hover{border:6px solid rgb(169,109,223);background:#a96ddf4d;animation:none;box-shadow:0 0 20px #a96ddf}.hotspot-label{position:absolute;top:-25px;left:50%;transform:translate(-50%);background:var(--color-bg);color:var(--color-hotspot);font-family:var(--font-display);font-size:.8rem;padding:2px 5px;display:none;white-space:nowrap;pointer-events:none}.hotspot:hover .hotspot-label{display:block}@media(max-width:1024px){.hotspot-label{display:block;border:2px solid rgba(169,109,223,.5);background:#a96ddf1a;animation:hotspot-label-pulse 3s infinite;box-shadow:0 0 10px #a96ddf4d}.hotspot:hover .hotspot-label{animation:none;background:var(--color-bg)}}.writing-spot{bottom:2%;left:5%;width:28%;height:40%}.research-spot{top:30%;left:35%;width:30%;height:40%}.projects-spot{bottom:4%;right:3%;width:30%;height:40%}@media(max-width:1024px){.research-spot{top:17%;left:10%;width:80%;height:23%}.writing-spot{top:45%;left:10%;width:80%;height:23%;bottom:auto}.projects-spot{inset:auto auto 5% 10%;width:80%;height:21%}}.scene-title{position:absolute;top:20px;left:30px;z-index:10;background:#0009;padding:10px;border:2px solid var(--color-highlight)}.scene-title h1{font-size:1.5rem;margin:0;color:var(--color-highlight)}@media(max-width:768px){.scene-title{top:10px;left:50%;transform:translate(-50%);width:90%;text-align:center}}@media(max-width:1024px){.scene-title h1{font-size:1rem}}.scene-dialogue{position:absolute;bottom:0;width:100%;z-index:100}.social-links-minimal{position:absolute;top:20px;right:20px;display:flex;gap:15px;z-index:60}.social-links-minimal a{background:#0009;padding:5px 10px;color:var(--color-fg);font-family:var(--font-display);font-size:.8rem}@media(max-width:1024px){.social-links-minimal{right:auto;left:30px;top:80px}}@media(max-width:768px){.social-links-minimal{left:50%;transform:translate(-50%);top:10%;justify-content:center;width:100%;gap:10px}}.cat-sprite{display:inline-block;image-rendering:pixelated;background-repeat:no-repeat;background-position:0 var(--offset-y);animation:sprite-animation var(--duration) steps(var(--steps)) infinite}@keyframes sprite-animation{0%{background-position:0 var(--offset-y)}to{background-position:var(--sprite-width) var(--offset-y)}}.categories-filter{margin-bottom:2rem;display:flex;gap:1rem;flex-wrap:wrap}.filter-btn{background:transparent;border:2px solid var(--color-fg);color:var(--color-fg);font-family:var(--font-display);padding:.5rem 1rem;cursor:pointer}.filter-btn:hover,.filter-btn.active{background:var(--color-fg);color:var(--color-bg)}.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem}.article-card{background:var(--color-ui-bg);border:2px solid var(--color-ui-border);padding:1rem;position:relative;transition:transform .2s;display:block;text-decoration:none;color:inherit}.article-card:hover{transform:translateY(-5px);border-color:var(--color-highlight);text-decoration:none}.card-header{margin-bottom:1rem}.category-tag{background:var(--color-accent);color:#fff;padding:2px 6px;font-size:.8rem;font-family:var(--font-display)}.article-card h3{font-size:1.2rem;margin-top:0;margin-bottom:.5rem}.article-card p{font-size:1rem;color:#aaa}.read-more{display:inline-block;margin-top:1rem;font-family:var(--font-display);font-size:.8rem;color:var(--color-highlight)}.read-more:hover{text-decoration:none;color:#fff}.publication-list{list-style:none;padding:0}.publication-item{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:baseline}.pub-year{font-family:var(--font-display);color:var(--color-accent)}.pub-details{display:flex;flex-direction:column}.pub-title{font-size:1.2rem;color:var(--color-highlight);margin-bottom:.2rem}.pub-journal{font-style:italic;color:#aaa}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.project-card{background:var(--color-bg);border:4px solid var(--color-ui-border);box-shadow:8px 8px #00000080;position:relative}.project-frame{padding:1.5rem;border:1px solid var(--color-ui-bg)}.project-card h2{color:var(--color-highlight);margin-top:0}.tech-stack{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.tech-badge{background:var(--color-ui-bg);padding:2px 6px;font-size:.8rem;border:1px solid var(--color-fg)}.project-link{display:block;text-align:center;background:var(--color-accent);color:#fff;padding:.5rem;font-family:var(--font-display);margin-top:1rem}.project-link:hover{background:#fff;color:var(--color-accent);text-decoration:none}.now-date{margin-top:2rem;font-style:italic;color:#888;font-size:.9rem}
