:root{--ascii-bg: #0a0a0a;--ascii-primary: #ffa600;--ascii-secondary: #00ff00;--ascii-accent: #ff5100;--ascii-accent2: #eb15ff;--ascii-text: #ffffff;--ascii-dim: #808080;--ascii-border: #404040;font-family:JetBrains Mono,Courier New,monospace;line-height:1;font-weight:400;font-size:1rem;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;text-rendering:optimizeSpeed}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--ascii-bg);color:var(--ascii-text);overflow-x:hidden}a{text-decoration:underline;color:var(--ascii-text)}a:hover{color:var(--ascii-primary)}pre{font-family:inherit;margin:0;white-space:pre;line-height:1;font-size:inherit}.content{margin-top:120px;padding:10px}.page{display:none;min-height:70dvh;max-width:1200px;margin:0 auto}.page.active{display:block}.page-title{text-align:center;margin-bottom:40px;color:var(--ascii-secondary)}.mouse-trail{position:fixed;pointer-events:none;color:var(--ascii-primary);font-size:.8rem;z-index:9999;opacity:0;transition:opacity .3s ease}@media (max-width: 697px){.nav-links-container{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--ascii-bg);border-bottom:2px solid var(--ascii-border);padding:15px 0}.nav-links-container.open{display:block}.nav-links{flex-direction:column;align-items:center;gap:15px}.menu-toggle{display:block}.nav-container{justify-content:space-between}.ascii-logo{margin-bottom:0}}@media (max-width: 480px){.cta-buttons{flex-direction:column;align-items:center;gap:15px}}.loading{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--ascii-bg);display:flex;justify-content:center;align-items:center;z-index:10000;opacity:1;transition:opacity .5s ease}.loading.hidden{opacity:0;pointer-events:none}.loading-ascii{color:var(--ascii-primary);font-size:1rem;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}body{cursor:none}.custom-cursor{position:fixed;pointer-events:none;z-index:9999;color:var(--ascii-primary);font-size:1rem;transition:transform .1s ease}@keyframes matrix-rain{0%{transform:translateY(-100vh);opacity:1}to{transform:translateY(100vh);opacity:0}}.matrix-char{position:fixed;color:var(--ascii-primary);font-size:.9rem;animation:matrix-rain .3s linear infinite;pointer-events:none;z-index:1}.prompt{color:#fff}.highlight-accent{color:var(--ascii-accent2)}.hero-section{text-align:center;padding:32px 20px}.ascii-hero{margin-bottom:30px}.hero-art{color:var(--ascii-primary);font-size:clamp(.5rem,2vw,1rem);max-width:fit-content;margin:0 auto;animation:glow 2s ease-in-out infinite alternate}.hero-art:hover{color:var(--ascii-text)}#home.page.active{display:flex;flex-direction:column;align-items:center;justify-content:center}@keyframes glow{0%{text-shadow:0 0 4px var(--ascii-primary)}to{text-shadow:0 0 8px var(--ascii-accent),0 0 8px var(--ascii-accent2)}}.hero-text{margin:30px 0}.cta-buttons{display:flex;gap:30px;justify-content:center;margin-top:40px}.ascii-cta{background:none;border:none;color:var(--ascii-dim);opacity:.8;cursor:pointer;transition:all .3s ease;position:relative}.ascii-cta:hover{color:var(--ascii-text);transform:translateY(-2px);opacity:1;text-shadow:0 0 5px var(--ascii-accent2)}.ascii-cta:active{transform:translateY(1px)}.ascii-nav{position:fixed;top:0;left:0;right:0;background-color:var(--ascii-bg);border-bottom:2px solid var(--ascii-border);z-index:1000;padding:10px 0}.nav-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.ascii-logo{color:var(--ascii-text);font-size:1rem}.nav-links{display:flex;gap:20px}.nav-link{text-decoration:none;color:var(--ascii-dim);transition:color .3s ease;position:relative}.nav-link:hover,.nav-link.active{text-shadow:0 0 10px var(--ascii-accent2);color:var(--ascii-primary)}.nav-link .ascii-button{font-size:.8rem;transition:transform .2s ease}.nav-link:hover .ascii-button{transform:scale(1.1);font-weight:bolder;color:var(--ascii-text);text-shadow:0 0px 5px var(--ascii-accent2)}.menu-toggle{color:var(--ascii-text);display:none;background:none;border:none;cursor:pointer;padding:0}@media (max-width: 697px){.nav-links-container{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--ascii-bg);border-bottom:2px solid var(--ascii-border);padding:15px 0}.nav-links-container.open{display:block}.nav-links{flex-direction:column;align-items:center;gap:15px}.menu-toggle{display:block}.nav-container{justify-content:space-between}}@media (max-width: 480px){.nav-links-container{gap:10px 15px}}.typing-text{color:var(--ascii-secondary);font-size:1rem;border-right:2px solid var(--ascii-secondary);overflow:hidden;white-space:nowrap;max-width:fit-content;margin:0 auto}@keyframes typing{0%,to{width:0}50%{width:100%}}@keyframes blink{0%,50%{border-color:var(--ascii-secondary)}51%,to{border-color:transparent}}.typing-text.blinking-cursor{animation:blink 1s step-end infinite}.glitch{position:relative;animation:glitch-main .8s linear infinite}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;background:var(--ascii-bg)}.glitch:before{animation:glitch-1 .2s infinite;color:var(--ascii-accent);z-index:-1;transform:translate(2px,2px)}.glitch:after{animation:glitch-2 .2s infinite;color:var(--ascii-secondary);z-index:-2;transform:translate(-2px,-2px)}.hero-art.fabio-boni-glitch{color:var(--ascii-text)}.hero-art.fabio-boni-glitch.glitch:before{color:var(--ascii-primary)}.hero-art.fabio-boni-glitch.glitch:after{color:var(--ascii-text)}@keyframes glitch-main{0%,to{transform:translate(0) skew(0)}10%{transform:translate(-2px,1px) skew(-1deg)}20%{transform:translate(2px,-2px) skew(0)}30%{transform:translate(5px,2px) skew(1deg)}40%{transform:translate(-5px,-1px) skew(0)}50%{transform:translateY(10px) skew(-5deg)}60%{transform:translate(3px,-5px) skew(3deg)}70%{transform:translate(-2px,2px) skew(-2deg)}80%{transform:translate(1px,-1px) skew(.5deg)}90%{transform:translate(-1px,15px) skew(4deg)}}@keyframes glitch-1{0%{clip-path:inset(10% 0 80% 0)}20%{clip-path:inset(40% 0 30% 0)}40%{clip-path:inset(80% 0 5% 0)}60%{clip-path:inset(25% 0 50% 0)}80%{clip-path:inset(50% 0 20% 0)}to{clip-path:inset(10% 0 80% 0)}}@keyframes glitch-2{0%{clip-path:inset(0% 0 10% 0)}20%{clip-path:inset(20% 0 2% 0)}40%{clip-path:inset(60% 0 0% 0)}60%{clip-path:inset(35% 0 40% 0)}80%{clip-path:inset(90% 0 2% 0)}to{clip-path:inset(0% 0 15% 0)}}.konami-easter-egg{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;background:#000000f2!important;display:flex!important;justify-content:center!important;align-items:center!important;z-index:99999!important;animation:fadeIn .5s ease-in!important;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);margin:0!important;padding:0!important;box-sizing:border-box!important}.easter-egg-content{position:relative;max-width:95vw;max-height:95vh;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:visible}.game-header{text-align:center;margin-bottom:20px;color:var(--ascii-primary)}.game-header h2{font-size:1.5rem;margin-bottom:10px;color:var(--ascii-secondary)}.game-stats{display:flex;justify-content:center;gap:25px;font-size:1.1rem;margin-top:10px}.game-stats span{color:var(--ascii-text)}.game-container{width:50ch;height:20em;background:#000c;border:2px solid var(--ascii-border);border-radius:5px;overflow:hidden;position:relative;font-family:JetBrains Mono,monospace;font-size:.9rem;line-height:1}.game-instructions{text-align:center;padding:50px 20px;color:var(--ascii-dim)}.game-instructions p{margin-bottom:10px}.game-field{margin:0;padding:0;color:var(--ascii-secondary);background:linear-gradient(180deg,#001,#002,#003);font-size:inherit;line-height:1;white-space:pre;animation:scanlines 2s linear infinite,spaceScroll 10s linear infinite;background-image:linear-gradient(rgba(0,255,0,.03) 50%,transparent 50%);background-size:100% 4px;font-variant-ligatures:none;position:relative}.game-field:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.1;background-image:radial-gradient(1px 1px at 10px 20px,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 30px 5px,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 45px 15px,rgba(255,255,255,.25),transparent);animation:twinkle 4s linear infinite;pointer-events:none}@keyframes twinkle{0%,to{opacity:.05}50%{opacity:.15}}.game-field:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.08;background-image:radial-gradient(.5px .5px at 20% 30%,rgba(200,200,255,.4),transparent),radial-gradient(.5px .5px at 60% 70%,rgba(200,200,255,.3),transparent),radial-gradient(.5px .5px at 80% 10%,rgba(200,200,255,.35),transparent);animation:twinkle 6s linear infinite reverse;pointer-events:none}.game-over{text-align:center;padding:80px 20px;color:var(--ascii-accent)}.game-over h3{font-size:2rem;margin-bottom:20px;animation:pulse 1s infinite}@keyframes scanlines{0%{background-position:0 0}to{background-position:0 4px}}@keyframes spaceScroll{0%{background-position:0 0}to{background-position:0 100px}}.boss-warning{animation:bossAlert .5s infinite}@keyframes bossAlert{0%,to{color:var(--ascii-accent);text-shadow:0 0 10px var(--ascii-accent)}50%{color:var(--ascii-accent2);text-shadow:0 0 20px var(--ascii-accent2)}}.easter-ascii{color:var(--ascii-primary);font-size:clamp(.5rem,1.2vw,.9rem);line-height:1.1;text-align:center;animation:konamiPulse 2s ease-in-out infinite;white-space:pre;font-family:JetBrains Mono,Courier New,monospace;margin:0;padding:20px;border:2px solid var(--ascii-primary);background:#0a0a0acc;border-radius:5px}.konami-glitch{animation:konamiGlitch .3s linear infinite,konamiPulse 2s ease-in-out infinite}.ascii-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.konami-particle{position:absolute;color:var(--ascii-accent2);font-size:1.5rem;animation:floatUp 3s linear infinite;pointer-events:none}.fade-out{animation:fadeOut .5s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes konamiPulse{0%,to{text-shadow:0 0 5px var(--ascii-primary),0 0 10px var(--ascii-primary);transform:scale(1)}50%{text-shadow:0 0 20px var(--ascii-accent),0 0 30px var(--ascii-accent2);transform:scale(1.02)}}@keyframes konamiGlitch{0%,to{transform:translate(0)}10%{transform:translate(-2px,1px)}20%{transform:translate(2px,-1px)}30%{transform:translate(-1px,2px)}40%{transform:translate(1px,-2px)}50%{transform:translate(-2px,-1px)}60%{transform:translate(2px,1px)}70%{transform:translate(-1px,-2px)}80%{transform:translate(1px,2px)}90%{transform:translate(-2px,-2px)}}@keyframes floatUp{0%{opacity:0;transform:translateY(100vh) rotate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100px) rotate(360deg)}}@media (max-width: 768px){.easter-ascii{font-size:clamp(.35rem,2.5vw,.7rem);padding:15px}.easter-egg-content{max-width:98vw;max-height:98vh}.konami-particle{font-size:1rem}.game-container{width:45ch;height:18em;font-size:.8rem}.game-header h2{font-size:1.2rem}.game-stats{gap:15px;font-size:1rem}}@media (max-width: 480px){.easter-ascii{font-size:clamp(.3rem,3vw,.6rem);padding:10px}.game-container{width:40ch;height:16em;font-size:.7rem}.game-header h2{font-size:1rem}.game-stats{flex-direction:column;gap:10px;font-size:.9rem}}.about-content{display:flex;flex-direction:row;gap:16px;max-width:1000px;margin:20px auto 0;justify-content:space-around;flex-wrap:wrap;align-items:center}.about-content>div{flex:50%;min-width:300px;max-width:fit-content}.profile-ascii{color:var(--ascii-secondary);font-size:.9rem;text-align:center}.ascii-text-box{color:var(--ascii-primary);font-size:1rem}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin-top:30px}.project-card{background:linear-gradient(45deg,transparent 1px,var(--ascii-bg) 1px);border:1px solid var(--ascii-border);padding:20px;transition:all .3s ease;cursor:pointer}.project-card:hover{border-color:var(--ascii-primary);transform:translateY(-5px);box-shadow:0 10px 20px #0f03}.project-ascii{color:var(--ascii-secondary);font-size:.9rem;transition:color .3s ease}.project-card:hover .project-ascii{color:var(--ascii-primary)}.contact-content{display:flex;justify-content:center;flex-wrap:wrap;align-items:center;margin-top:30px}.contact-info,.contact-form{flex:1;max-width:fit-content}.form-ascii,.contact-ascii{color:var(--ascii-secondary);font-size:.9rem}
