:root{--background-color: #0a0a0f;--primary-color: #1a3a1a;--secondary-color: #00ff41;--accent-color: #0d1117;--font-color: #b0c4b0;--glow-color: #00ff41;--amber: #ffb000;--border-color: #1a3a1a;--bright-text: #d4f5d4;--card-height: 360px}body,code,html,kbd,pre,samp{font-family:JetBrains Mono,Courier New,monospace}h1,h2,h3,h4,h5,h6,.nav-brand{font-family:"Press Start 2P",cursive}html{cursor:auto}body{background-color:var(--background-color);color:var(--font-color);background-image:linear-gradient(rgba(0,255,65,.03) 50%,transparent 50%);background-size:100% 4px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.45) 100%);pointer-events:none;z-index:100}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;pointer-events:none;z-index:99}h1,h2,h3,h4,h5,h6{color:var(--secondary-color);text-shadow:0 0 8px rgba(0,255,65,.4)}a,button{color:var(--secondary-color);text-shadow:0 0 4px rgba(0,255,65,.3);cursor:pointer;text-decoration:none;transition:color .15s ease,text-shadow .15s ease}a:hover,button:hover{color:var(--bright-text);text-shadow:0 0 10px rgba(0,255,65,.6)}.container{margin:auto;max-width:980px;padding:0 1rem}header{background:#0d1117d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color);padding:1rem 0;margin-bottom:2rem;box-shadow:0 1px 8px #00ff4114}header .container{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:.5rem 1rem}.nav-brand a{color:var(--secondary-color);text-decoration:none;font-size:1.2rem}.prompt{color:var(--amber);margin-right:.15rem}.nav-brand a:after{content:"_";color:var(--secondary-color);animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion: reduce){.nav-brand a:after{animation:none;opacity:1}}.github-icon{font-family:JetBrains Mono,monospace;font-size:.85rem}.nav-brand,.navbar-nav,.social-buttons{min-width:0}.navbar-nav{display:flex;list-style:none;padding:0;margin:0;gap:1rem;align-items:center;flex-wrap:wrap}.nav-item{margin-left:0}.nav-link{font-size:.85rem;font-family:JetBrains Mono,monospace;letter-spacing:.02em}.social-buttons{text-align:right}@media (max-width: 600px){header .container{align-items:center;padding:.5rem 0}.nav-brand{order:1;width:100%;text-align:center}.navbar-nav{order:2;width:100%;justify-content:center;margin-top:.5rem}.social-buttons{order:3;width:100%;text-align:center;margin-top:.25rem}.nav-link{font-size:.85rem}}.social-buttons p{margin-bottom:.5rem}main.container{background-color:var(--accent-color);padding:2rem;border:1px solid var(--border-color);box-shadow:0 0 12px #00ff410a,inset 0 0 40px #0000004d}.page-footer{margin-top:2rem;padding:1rem;border-top:1px solid var(--border-color);font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--font-color);opacity:.6}.cursor-blink{color:var(--secondary-color);animation:blink 1s step-end infinite}section{padding-top:20px;padding-bottom:10px}.project-page{max-width:90%;margin:auto}.card{padding:0;justify-content:flex-start;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease;will-change:transform,box-shadow;border-radius:6px;border:1px solid var(--border-color);background-color:#0d1117f2;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;height:var(--card-height)}.card-titlebar{display:flex;align-items:center;gap:.5rem;padding:6px 10px;background-color:#161b22;border-bottom:1px solid var(--border-color);flex-shrink:0}.titlebar-dots{display:flex;gap:5px}.dot{width:10px;height:10px;border-radius:50%}.dot-red{background-color:#ff5f57}.dot-yellow{background-color:#febc2e}.dot-green{background-color:#28c840}.titlebar-text{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--font-color);opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-body{text-align:left;padding:12px 14px;display:flex;flex-direction:column;justify-content:space-between;gap:.4rem;flex:1}.card h4{margin:0 0 .25rem;font-size:.8rem;line-height:1.3;white-space:normal;overflow:visible;text-overflow:unset;word-break:break-word;flex:0 0 auto}.card-text{margin:0;color:var(--font-color);font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.card-text:before{content:"> ";color:var(--secondary-color);opacity:.5}.card-img-top{width:100%;height:180px;object-fit:cover;display:block;transition:transform .22s cubic-bezier(.2,.8,.2,1);border-bottom:1px solid var(--border-color);background:#000;box-sizing:border-box}@media (max-width: 600px){:root{--card-height: auto}.card{height:auto}.card-img-top{height:160px}.card-body{padding:10px 12px}}.scale-on-hover{display:block;transition:transform .22s cubic-bezier(.2,.8,.2,1);transform-origin:center center}@media (hover: hover) and (pointer: fine){.card:hover{transform:translateY(-6px);border-color:#00ff414d;box-shadow:0 8px 24px #00000080,0 0 20px #00ff410f;z-index:3}.card:hover .card-img-top,.card:hover .scale-on-hover{transform:scale(1.04)}.card:active{transform:scale(.98)}}.card:focus-within{transform:translateY(-4px);border-color:#00ff414d;box-shadow:0 6px 20px #0006,0 0 16px #00ff410d}#resume-link,#interactive-resume-link{max-width:400px;margin:20px auto}.portfolio-block.block-intro{text-align:center}.intro-box{background-image:none;background-color:transparent}.terminal-block{border:1px solid var(--border-color);border-radius:4px;background-color:#0a0a0fe6;overflow:hidden}.terminal-block-header{padding:8px 14px;background-color:#161b22;border-bottom:1px solid var(--border-color);font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--font-color)}.terminal-block-header .prompt-symbol{color:var(--amber);margin-right:.25rem}.terminal-block-body{padding:16px 14px;font-family:JetBrains Mono,monospace;font-size:.85rem;line-height:1.6}.terminal-block-body p{margin:0 0 .75rem}.terminal-block-body p:last-child{margin-bottom:0}.gif-row{display:flex;flex-direction:column;align-items:center;gap:.5rem}.gif-row img{max-width:100%;height:auto;display:block}@keyframes fadeUpIn{0%{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: no-preference){.gif-row img{opacity:0;transform:translateY(8px) scale(.995);animation:fadeUpIn .42s cubic-bezier(.2,.8,.2,1) forwards}.gif-row img:nth-child(1){animation-delay:0ms}.gif-row img:nth-child(2){animation-delay:80ms}.gif-row img:nth-child(3){animation-delay:.16s}}@media (min-width: 700px){.gif-row{flex-direction:row;justify-content:center;gap:1rem}.gif-row img{max-width:220px}}.row{display:flex;flex-wrap:wrap;margin-left:-.5rem;margin-right:-.5rem;gap:1rem 0}.row>[class*=col-]{box-sizing:border-box;padding-left:.5rem;padding-right:.5rem}.col-xs-12{flex:0 0 100%;max-width:100%}@media (min-width: 576px){.col-sm-6{flex:0 0 50%;max-width:50%}}@media (min-width: 768px){.col-md-4,.col-lg-4{flex:0 0 33.3333%;max-width:33.3333%}}@media (min-width: 768px){.row>.col-md-4{flex-basis:33.3333%!important;max-width:33.3333%!important}}
