@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&display=swap";*,:before,:after{box-sizing:border-box;transition:color .5s,text-shadow .5s,border-color .5s}:root{--primary-color:#00ff41;--background-color:#0a0a0a;--glow-color:#00ff41bf}body.special-mode{--primary-color:#ff69b4;--glow-color:#ff69b4bf}html,body{overflow-x:hidden}body{font-family:Fira Code,monospace;background-color:var(--background-color);color:var(--primary-color);margin:0;padding:2rem 4rem 2rem 3rem;animation:1s ease-in-out fadeIn;cursor:none}#circuit{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background:var(--background-color)}h1{color:var(--primary-color);font-size:3em;text-shadow:0 0 10px var(--glow-color);margin-bottom:0;text-transform:uppercase;text-align:left}.typed-text{overflow:hidden;border-right:.15em solid var(--primary-color);white-space:nowrap;letter-spacing:.15em;animation:2.5s steps(20,end) typing,.75s step-end infinite blink-caret;display:inline-block}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:var(--primary-color)}}.glitch{display:inline-block}.glitch.active{animation:1s infinite glitch}@keyframes glitch{0%{transform:none}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}to{transform:none}}h2{color:var(--primary-color);border-bottom:1px solid var(--primary-color);padding-bottom:10px;margin-top:30px;font-size:2em;text-shadow:0 0 5px var(--glow-color)}p,ul{line-height:1.8;font-size:1.2em}a{color:var(--primary-color);text-decoration:none;text-shadow:0 0 5px var(--glow-color);position:relative;cursor:none}a:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--primary-color);transition:width .3s}a:hover{background-color:var(--primary-color);color:var(--background-color);box-shadow:0 0 10px var(--glow-color)}a.tickcounter:hover{background-color:#0000;color:var(--primary-color);box-shadow:none}a:hover:after{width:100%}ul{list-style-type:">> ";padding-left:20px}.links ul{list-style:none;padding:0}.links li{margin-bottom:10px}section,nav{opacity:1;transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@media (width<=600px){body{padding:2rem 1rem 1rem}#top-nav{padding:.2rem 1rem}h1{font-size:2em}.typed-text{letter-spacing:.1em}h2{font-size:1.5em}p,ul,.contact-info{font-size:1em}}.contact-info{margin-top:.5rem;font-size:1.2em}#cursor{position:fixed;top:0;left:0;width:15px;height:15px;border:2px solid var(--primary-color);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);box-shadow:0 0 10px var(--glow-color);transition:transform .2s ease-out,border-color .5s,box-shadow .5s;z-index:10002}#cursor.expand{transform:translate(-50%,-50%)scale(2)}#cursor.plus-mode{width:30px;height:30px;border:none;border-radius:0;background:0 0;box-shadow:none}#cursor.plus-mode:before,#cursor.plus-mode:after{content:"";position:absolute;background:var(--primary-color);box-shadow:0 0 8px var(--glow-color);top:50%;left:50%;transform:translate(-50%,-50%)}#cursor.plus-mode:before{width:2px;height:100%}#cursor.plus-mode:after{width:100%;height:2px}#gallery{display:flex;flex-direction:column;gap:2rem}details{border:1px solid var(--primary-color);padding:1rem}summary{color:var(--primary-color);text-shadow:0 0 5px var(--glow-color);font-size:1.5em;cursor:pointer}.album-images{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.album-images img{width:100%;aspect-ratio:1;object-fit:cover;border:2px solid var(--primary-color);box-shadow:0 0 5px var(--glow-color);cursor:pointer;transition:transform .6s,opacity .6s,filter .6s}.album-images img:hover{box-shadow:0 0 10px var(--glow-color)}#modal{display:flex;visibility:hidden;pointer-events:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000e6;z-index:2000;justify-content:center;align-items:center;opacity:0;transition:opacity .3s,visibility .3s}#modal.show{visibility:visible;pointer-events:auto;opacity:1;z-index:10000}#modal:before{content:" ";display:block;position:fixed;top:0;left:0;bottom:0;right:0;background:linear-gradient(#12101000 50%,#00000040 50%),linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f);z-index:10001;background-size:100% 2px,3px 100%;pointer-events:none;transition:opacity .5s;opacity:1}#modal:after{content:" ";display:block;position:fixed;top:0;left:0;bottom:0;right:0;background:#1210101a;z-index:10001;pointer-events:none;animation:.15s infinite flicker;transition:opacity .5s;opacity:1}#modal.clear:before,#modal.clear:after{opacity:0}#modal-img{max-width:90%;max-height:90%;border:2px solid var(--primary-color);box-shadow:0 0 20px var(--glow-color);transform:scale(.8);transition:transform .3s;object-fit:contain}#modal.show #modal-img{animation:.6s cubic-bezier(.23,1,.32,1) forwards holoOpen}@keyframes holoOpen{0%{opacity:0;transform:scale(.8)skew(10deg);filter:hue-rotate(90deg)blur(10px);clip-path:inset(50% 0)}50%{opacity:1;transform:scale(1.05)skew(-5deg);filter:hue-rotate(-45deg)blur(2px);clip-path:inset(0)}to{opacity:1;transform:scale(1)skew(0);filter:hue-rotate()blur();clip-path:inset(0)}}#close-modal{position:absolute;top:20px;right:30px;color:var(--primary-color);font-size:40px;font-weight:700;cursor:none;text-shadow:0 0 5px var(--glow-color);transition:text-shadow .3s,transform .3s}#close-modal:hover{text-shadow:0 0 15px var(--glow-color);transform:scale(1.2)}#countdown-timer{color:var(--primary-color);font-family:Fira Code,monospace;font-size:6em;text-align:center;width:100%;text-shadow:0 0 10px var(--glow-color);margin-top:1rem;font-weight:700;letter-spacing:.1em}@media (width<=600px){#countdown-timer{font-size:2.5em}}.nav-logo{font-weight:700;font-size:1.1em;letter-spacing:2px;color:var(--primary-color)}#top-nav{position:fixed;top:0;left:0;width:100%;background:#0a0a0acc;backdrop-filter:blur(5px);z-index:1001;padding:.2rem 2rem;border-bottom:1px solid var(--primary-color);display:flex;justify-content:space-between;align-items:center}#top-nav ul{list-style:none;padding:0;margin:0;display:flex;gap:2rem}#top-nav li{margin:0}#top-nav a,#top-nav .dropbtn{font-weight:700;text-transform:uppercase;letter-spacing:.1em}.dropbtn{color:var(--primary-color);text-shadow:0 0 5px var(--glow-color);position:relative;cursor:none}.dropbtn:hover{background-color:var(--primary-color);color:var(--background-color);box-shadow:0 0 10px var(--glow-color)}.dropbtn:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--primary-color);transition:width .3s}.dropbtn:hover:after{width:100%}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;background-color:#0a0a0af2;min-width:120px;box-shadow:0 0 10px var(--glow-color);border:1px solid var(--primary-color);z-index:1002;top:100%;right:0;left:auto;backdrop-filter:blur(5px);margin-top:.5rem}.dropdown-content:before{content:"";position:absolute;top:-.5rem;left:0;width:100%;height:.5rem}.dropdown-content a{color:var(--primary-color);padding:12px 16px;text-decoration:none;display:block;text-align:left;font-size:.9em;text-shadow:none}.dropdown-content a:hover{background-color:var(--primary-color);color:var(--background-color)}.dropdown:hover .dropdown-content{display:block}.crt:before{content:" ";display:block;position:fixed;top:0;left:0;bottom:0;right:0;background:linear-gradient(#12101000 50%,#00000040 50%),linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f);z-index:9998;background-size:100% 2px,3px 100%;pointer-events:none}.crt:after{content:" ";display:block;position:fixed;top:0;left:0;bottom:0;right:0;background:#1210101a;opacity:0;z-index:9998;pointer-events:none;animation:.15s infinite flicker}@keyframes flicker{0%{opacity:.027906}5%{opacity:.048532}10%{opacity:.026333}15%{opacity:.042511}20%{opacity:.027183}25%{opacity:.048919}30%{opacity:.028033}35%{opacity:.045802}40%{opacity:.026957}45%{opacity:.047807}50%{opacity:.028563}55%{opacity:.045545}60%{opacity:.026335}65%{opacity:.048874}70%{opacity:.026992}75%{opacity:.043505}80%{opacity:.028284}85%{opacity:.048358}90%{opacity:.026694}95%{opacity:.042527}to{opacity:.027906}}#hud-coords,#hud-timer{position:fixed;font-size:.8em;color:var(--primary-color);opacity:.7;z-index:1002;pointer-events:none;font-family:Fira Code,monospace}#hud-coords{bottom:1rem;left:1rem}#hud-timer{bottom:1rem;right:1rem}.ascii-container{position:relative;display:inline-block;width:100%}.ascii-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .3s;background:#000c;z-index:10}.ascii-container:hover .ascii-canvas{opacity:1}.blog-post{max-width:800px;margin:0 auto}.blog-meta{color:var(--primary-color);opacity:.7;font-size:.9em;margin-bottom:2rem;border-bottom:1px dashed var(--primary-color);padding-bottom:.5rem}.blog-content p{margin-bottom:1.5rem}.back-link{display:block;margin-top:3rem;font-size:1.2em}blockquote{border-left:4px solid var(--primary-color);margin:1rem 0;padding-left:1rem;font-style:italic;opacity:.8}pre{background:#00ff411a;padding:1rem;overflow-x:auto;border:1px solid var(--primary-color)}code{font-family:Fira Code,monospace;background:#00ff411a;padding:.2rem .4rem}pre code{background:0 0;padding:0}@keyframes heartbeat{0%{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(1)}45%{transform:scale(1.3)}60%{transform:scale(1)}}.special-mode .heart-icon{display:inline-block;animation:2s infinite heartbeat;color:var(--primary-color);text-shadow:0 0 10px var(--glow-color)}#graph-layout{display:flex;height:calc(100vh - 150px);gap:1rem;border:1px solid var(--primary-color);padding:1rem;box-shadow:0 0 10px var(--glow-color)}#graph-sidebar{width:300px;border-right:1px solid var(--primary-color);padding-right:1rem;display:flex;flex-direction:column}#graph-container{flex-grow:1;position:relative;overflow:hidden;cursor:none}#graph-canvas{width:100%;height:100%;display:block}.equation-input-group{display:flex;align-items:center;margin-bottom:.5rem;background:#00ff410d}.equation-input-group .prompt{padding:0 .5rem;font-weight:700}.equation-input{background:0 0;border:none;color:var(--primary-color);font-family:Fira Code,monospace;font-size:1em;width:100%;padding:.5rem;outline:none}.equation-input:focus{background:#00ff411a}.btn-delete{background:0 0;border:1px solid var(--primary-color);color:var(--primary-color);font-family:Fira Code,monospace;margin-left:.5rem;cursor:pointer;padding:0 .5rem;font-weight:700;opacity:.7;transition:all .3s}.btn-delete:hover{background:red;border-color:red;color:#fff;opacity:1;box-shadow:0 0 5px red}#add-equation{margin-top:1rem;background:0 0;border:1px dashed var(--primary-color);color:var(--primary-color);font-family:Fira Code,monospace;padding:.5rem;cursor:pointer;width:100%;text-align:left}#add-equation:hover{background:var(--primary-color);color:var(--background-color)}#graph-controls{margin-top:auto;font-size:.8em;opacity:.8}#graph-controls ul{list-style:none;padding:0}@media (width<=768px){#graph-layout{flex-direction:column;height:auto}#graph-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--primary-color);padding-bottom:1rem;margin-bottom:1rem}#graph-container{height:400px}}#variable-list{margin-top:20px;border-top:1px solid var(--primary-color);padding-top:10px}.variable-control-group{display:flex;align-items:center;margin-bottom:10px;gap:10px}.var-name{font-weight:700;min-width:30px}.var-slider{flex-grow:1;accent-color:var(--primary-color);cursor:pointer}.var-val{min-width:40px;text-align:right}#pong-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;box-sizing:border-box;position:relative}#pong-canvas{border:2px solid var(--primary-color);box-shadow:0 0 10px var(--primary-color);max-width:100%;background:#0a0a0a}#score-board{position:absolute;top:20%;font-size:2rem;font-family:Courier New,Courier,monospace;text-shadow:0 0 10px;background:0 0;padding:10px 20px;border-radius:10px;z-index:10}@keyframes shake{0%{transform:translate(1px,1px)rotate(0)}10%{transform:translate(-1px,-2px)rotate(-1deg)}20%{transform:translate(-3px)rotate(1deg)}30%{transform:translate(3px,2px)rotate(0)}40%{transform:translate(1px,-1px)rotate(1deg)}50%{transform:translate(-1px,2px)rotate(-1deg)}60%{transform:translate(-3px,1px)rotate(0)}70%{transform:translate(3px,1px)rotate(-1deg)}80%{transform:translate(-1px,-1px)rotate(1deg)}90%{transform:translate(1px,2px)rotate(0)}to{transform:translate(1px,-2px)rotate(-1deg)}}.shake{animation:.3s shake;animation-iteration-count:1}.paused-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;color:var(--primary-color);font-size:4rem;font-family:Courier New,Courier,monospace;justify-content:center;align-items:center;z-index:100}.paused-overlay.visible{display:flex}#speed-indicator{font-family:Courier New,Courier,monospace;font-size:.75rem;color:var(--primary-color);opacity:.6;margin-top:8px}.controls-hint{font-family:Courier New,Courier,monospace;font-size:.7rem;color:var(--primary-color);opacity:.4;margin-top:6px}#sand-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;position:relative}#sand-canvas{border:1px solid var(--primary-color);box-shadow:0 0 10px var(--primary-color);image-rendering:pixelated;max-width:90vw;max-height:70vh;cursor:none;background-color:#000}#controls{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.color-btn{width:30px;height:30px;border:2px solid #0000;cursor:pointer;transition:transform .1s}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:#fff;box-shadow:0 0 5px #fff}#reset-btn{padding:5px 15px;background:0 0;border:1px solid var(--primary-color);color:var(--primary-color);cursor:pointer;font-family:inherit}#reset-btn:hover{background:var(--primary-color);color:var(--background-color)}#sand-hint{margin-top:10px;font-size:.7em;opacity:.5;text-transform:uppercase;letter-spacing:.1em}#tron-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;box-sizing:border-box;position:relative}.tron-title{font-size:4em;text-shadow:0 0 20px var(--glow-color);margin-bottom:1rem}#tron-menu{display:flex;flex-direction:column;align-items:center;gap:1rem}.tron-btn{background:0 0;border:2px solid var(--primary-color);color:var(--primary-color);font-family:Fira Code,monospace;font-size:1.2em;padding:.8rem 2rem;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;min-width:250px;transition:all .2s}.tron-btn:hover{background:var(--primary-color);color:var(--background-color);box-shadow:0 0 15px var(--glow-color)}#join-row{display:flex;gap:.5rem}#join-row .tron-btn{min-width:auto}#room-input{background:0 0;border:2px solid var(--primary-color);color:var(--primary-color);font-family:Fira Code,monospace;font-size:1.2em;padding:.8rem 1rem;width:6em;text-align:center;text-transform:uppercase;letter-spacing:.3em}#room-input::placeholder{color:var(--primary-color);opacity:.3}#room-input:focus{outline:none;box-shadow:0 0 10px var(--glow-color)}#tron-status{margin-top:1.5rem;font-size:.9em;opacity:.7;min-height:1.5em}#tron-game{position:relative;display:flex;flex-direction:column;align-items:center}#tron-canvas{border:2px solid var(--primary-color);box-shadow:0 0 10px var(--primary-color);max-width:100%;background:#0a0a0a}#tron-scores{display:flex;justify-content:space-between;width:800px;max-width:100%;font-size:1.5em;margin-bottom:.5rem}.tron-p1{color:#0ff;text-shadow:0 0 8px #00ffffb3}.tron-p2{color:#f60;text-shadow:0 0 8px #ff6600b3}#tron-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:none;justify-content:center;align-items:center;flex-direction:column;font-size:4em;color:var(--primary-color);text-shadow:0 0 30px var(--glow-color);pointer-events:none;z-index:10}#tron-overlay.visible{display:flex}#mod-banner{position:absolute;top:35%;left:50%;transform:translate(-50%);font-family:Courier New,Courier,monospace;font-size:2.2rem;font-weight:700;letter-spacing:.3em;color:var(--primary-color);text-shadow:0 0 18px var(--glow-color);opacity:0;pointer-events:none;z-index:20;white-space:nowrap}#mod-banner.show{animation:1.6s ease-out forwards mod-banner-flash}@keyframes mod-banner-flash{0%{opacity:0;transform:translate(-50%)scale(2.2)}15%{opacity:1;transform:translate(-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%)scale(.9)}}#mod-list{position:absolute;top:27%;left:50%;transform:translate(-50%);font-family:Courier New,Courier,monospace;font-size:.8rem;letter-spacing:.25em;color:var(--primary-color);opacity:.65;pointer-events:none;z-index:10;white-space:nowrap}.mod-banner-sub{font-size:.95rem;letter-spacing:.4em;opacity:.85;margin-top:.4em;text-align:center}