@import"https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=VT323&family=Playfair+Display:wght@900&family=Crimson+Pro:wght@400;600&display=swap";:root,[data-theme=dark]{--color-bg: #050a05;--color-primary: #00ff41;--color-primary-dim: rgba(0, 255, 65, .15);--color-text-primary: #00ff41;--color-text-secondary:#6abf6a;--font-display: "VT323", monospace;--font-body: "Share Tech Mono", monospace;--font-mono: "Share Tech Mono", monospace;--transition-slow: .8s cubic-bezier(.4, 0, .2, 1);--header-height: 80px}[data-theme=light]{--color-bg: #f0ede8;--color-primary: #4a2040;--color-primary-dim: rgba(74, 32, 64, .08);--color-accent: #1a5c38;--color-text-primary: #1e1610;--color-text-secondary:#4a3d30;--font-display: "Playfair Display", serif;--font-body: "Crimson Pro", serif;--font-mono: "Share Tech Mono", monospace;--header-height: 80px}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}*,*:before,*:after{box-sizing:border-box}body{background-color:var(--color-bg);color:var(--color-text-secondary);font-family:var(--font-body);margin:0;transition:background-color var(--transition-slow);overflow-x:hidden;-webkit-font-smoothing:antialiased}.hero-overlay,.hero-content,.hero-bio-wrap{pointer-events:none}header,a,button,input,textarea,.project-card,.contact-form,.background-container{pointer-events:all}@media (max-width: 768px){:root{--header-height: 70px}}.about-section{position:relative;padding:10vh 0 8vh;transition:opacity .7s ease,transform .7s ease}.about-container{max-width:1200px;margin:0 auto;padding:0 2rem}.about-section{opacity:0;transform:translateY(30px)}.about-section.animate-in{opacity:1;transform:translateY(0)}.about-section h2{font-family:var(--font-display);font-size:clamp(3rem,7vw,5.5rem);color:var(--color-primary);margin:0 0 2.5rem;text-transform:uppercase;line-height:1}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:start}.about-left p{font-size:1rem;line-height:1.75;color:var(--color-text-secondary);margin:0 0 2rem}.about-skills h3{font-family:var(--font-mono);font-size:.8rem;letter-spacing:3px;text-transform:uppercase;color:var(--color-primary);margin:0 0 1.25rem}.about-skills ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem;list-style:none;padding:0}.skill-item{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:8px;opacity:0;transform:translate(-8px);transition:opacity .4s ease,transform .4s ease}.about-section.animate-in .skill-item{opacity:1;transform:translate(0)}.skill-item span{color:var(--color-primary)}.about-image-placeholder{width:100%;aspect-ratio:4 / 3;border-radius:4px;margin-bottom:2rem;position:relative;overflow:hidden;transition:all .5s ease}[data-theme=dark] .about-image-placeholder{background:#020502f2;border:1px solid var(--color-primary-dim)}[data-theme=light] .about-image-placeholder{background-color:#005eb8;background-image:linear-gradient(45deg,transparent 45%,#ffffff 45%,#ffffff 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,#ffffff 45%,#ffffff 55%,transparent 55%);background-size:100% 100%;border:1px solid rgba(0,0,0,.1)}.terminal-body{padding:20px;font-family:var(--font-mono);font-size:.65rem;height:100%;display:block;overflow:hidden;color:var(--color-primary)}[data-theme=light] .terminal-body{display:none}.terminal-line{margin-bottom:3px;opacity:.8;white-space:nowrap;width:100%;animation:lineIn .1s ease-out}.terminal-prompt{color:var(--color-primary-dim);margin-right:6px;font-weight:700}.terminal-cursor{display:inline-block;width:8px;height:14px;background:var(--color-primary);vertical-align:middle;animation:blink 1s step-end infinite}@keyframes lineIn{0%{opacity:0;transform:translate(-5px)}to{opacity:.8;transform:translate(0)}}@keyframes blink{50%{opacity:0}}.about-stats dl{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.stat-item{opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease}.about-section.animate-in .stat-item{opacity:1;transform:translateY(0)}.stat-item dd{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,3.5rem);color:var(--color-primary);margin:0}.stat-item dt{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;opacity:.6}@media (max-width: 768px){.about-grid{grid-template-columns:1fr;gap:2.5rem}.about-image-placeholder{aspect-ratio:16 / 9}.scroll-fade{animation:none!important;opacity:1!important;transform:none!important}}.resume-section{position:relative;padding:10vh 0 8vh;background-color:transparent}.resume-container{max-width:1100px;margin:0 auto;padding:0 2rem}.resume-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:4rem;align-items:start}.resume-info h3{font-family:var(--font-display);font-size:2.5rem;color:var(--color-text-primary);margin-bottom:1rem}.resume-info p{font-size:1.1rem;line-height:1.6;color:var(--color-text-secondary);margin-bottom:2.5rem}.resume-details{display:flex;flex-direction:column;gap:2.5rem}.resume-detail-block h4{font-family:var(--font-mono);font-size:.9rem;text-transform:uppercase;letter-spacing:2px;color:var(--color-primary);margin-bottom:1rem;border-bottom:1px solid var(--color-primary-dim);padding-bottom:.5rem}.resume-download{padding:3rem 2rem;border:1px solid var(--color-primary-dim);border-radius:8px;text-align:center;position:sticky;top:100px;background:#ffffff08;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.resume-download svg{width:48px;height:48px;color:var(--color-primary);margin-bottom:1.5rem}.resume-download h3{font-family:var(--font-mono);font-size:1rem;letter-spacing:1px;text-transform:uppercase;margin-bottom:1rem}.resume-filename{margin-top:1rem;font-family:var(--font-mono);font-size:.7rem;opacity:.6}.resume-download-btn{width:100%;padding:1rem;background:var(--color-primary);color:#020502;border:1px solid var(--color-primary);font-family:var(--font-mono);font-weight:700;cursor:pointer;transition:all .3s ease;border-radius:4px;text-transform:uppercase}.resume-download-btn:hover{background:transparent;color:var(--color-primary);box-shadow:0 0 20px var(--color-primary-dim)}.contact-links-cta-buttons{display:flex;gap:1rem;margin-top:1rem}.contact-links-cta-buttons a{padding:.6rem 1.2rem;border:1px solid var(--color-primary);color:var(--color-primary);text-decoration:none;font-family:var(--font-mono);font-size:.8rem;transition:all .3s ease;border-radius:4px}.contact-links-cta-buttons a:hover{background:var(--color-primary);color:#020502}@media (min-width: 901px){.reveal{opacity:0;filter:blur(12px);transform:translateY(40px) scale(.97);transition:opacity .8s ease-out,transform 1s cubic-bezier(.16,1,.3,1),filter .8s ease-out;will-change:transform,opacity,filter}.reveal.active{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}.reveal-left{transform:translate(-40px) scale(.97)}.reveal-right{transform:translate(40px) scale(.97)}.reveal-left.active,.reveal-right.active{transform:translate(0) scale(1)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}}@media (max-width: 900px){.resume-grid{grid-template-columns:1fr;gap:3rem}.resume-info{order:1}.resume-download{order:2;position:static;width:100%;box-sizing:border-box}.reveal{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}}.contact-section{position:relative;padding:10vh 0;background-color:transparent;display:flex;justify-content:center;align-items:center;min-height:80vh}.contact-container{width:100%;max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;flex-direction:column;align-items:center}.contact-section h2{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4.5rem);color:var(--color-primary);margin:0 0 3rem;text-transform:uppercase;line-height:1;text-align:center}.contact-card-wrap{width:100%;max-width:700px;margin:0 auto}.contact-panel{padding:3rem;border-radius:8px;transition:all .4s ease;background:#ffffff08;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-primary-dim);box-shadow:0 20px 50px #0000004d}[data-theme=dark] .contact-panel{background:#02050299}.reveal{opacity:0;filter:blur(12px);transform:translateY(30px) scale(.97);transition:opacity .8s ease-out,transform 1s cubic-bezier(.16,1,.3,1),filter .8s ease-out;will-change:transform,opacity,filter}.reveal.active{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.contact-field{margin-bottom:2rem;display:flex;flex-direction:column}.contact-field label{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:.75rem;color:var(--color-primary)}.contact-field input,.contact-field textarea{width:100%;padding:1rem;font-family:var(--font-mono);font-size:.9rem;border-radius:4px;transition:all .3s ease;outline:none;background:#0014004d;border:1px solid var(--color-primary-dim);color:var(--color-primary)}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--color-primary);background:#00ff410d;box-shadow:0 0 15px rgba(var(--color-primary-rgb),.1)}.contact-submit{width:100%;font-family:var(--font-mono);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;padding:1.25rem;background:var(--color-primary);color:#020502;border:none;border-radius:4px;cursor:pointer;transition:all .3s ease}.contact-submit:hover:not(:disabled){box-shadow:0 0 20px var(--color-primary-dim);transform:translateY(-2px);filter:brightness(1.1)}.contact-submit:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.contact-panel{padding:2rem 1.5rem}.contact-section h2{font-size:2.8rem}}footer{width:100%;position:relative;padding:4rem 0 2rem;margin-top:5rem;z-index:10;background-color:var(--color-bg);border-top:1px solid var(--color-primary);box-shadow:0 -4px 20px #00ff4126;transition:all .3s ease}[data-theme=light] footer{border-top:1px solid var(--color-primary-dim);box-shadow:none;background-color:var(--color-bg)}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:4rem;margin-bottom:3rem}.footer-brand span{font-family:var(--font-display);font-size:1.8rem;color:var(--color-primary);letter-spacing:2px;display:block;margin-bottom:1rem}.footer-brand p{font-family:var(--font-body);font-size:.9rem;color:var(--color-text-secondary);line-height:1.6;max-width:350px}.footer-col h4{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:2px;color:var(--color-text-primary);margin-bottom:1.5rem}.footer-col ul{list-style:none;padding:0;margin:0}.footer-col li{margin-bottom:.8rem}.footer-col a,.footer-link-btn{font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-secondary);text-decoration:none;background:none;border:none;padding:0;cursor:pointer;transition:all .2s ease;display:inline-block;text-align:left}.footer-col a:hover,.footer-link-btn:hover{color:var(--color-primary);transform:translate(4px);text-shadow:0 0 8px var(--color-primary-dim)}footer hr{border:none;border-top:1px solid var(--color-primary-dim);margin:2rem 0;opacity:.2}.footer-bottom{display:flex;justify-content:center;align-items:center;padding-top:1rem}.footer-bottom p{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-secondary);opacity:.5;letter-spacing:1px}@media (max-width: 768px){footer{margin-top:3rem;padding-top:3rem}.footer-top{display:flex;flex-wrap:wrap;gap:2rem}.footer-brand{flex:0 0 100%;text-align:left}.footer-col{flex:1;min-width:140px}.footer-col h4{margin-bottom:1rem}.footer-col a:hover,.footer-link-btn:hover{transform:none}}header{position:fixed;top:0;left:0;width:100%;z-index:1000;background:transparent;border-bottom:1px solid transparent;transition:all .4s cubic-bezier(.4,0,.2,1)}.nav-container{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:1.5rem 2rem;transition:padding .3s ease}header.scrolled{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}header.scrolled .nav-container{padding:.8rem 2rem}[data-theme=dark] header.scrolled{background:#050a05d9;border-bottom:1px solid var(--color-primary-dim);box-shadow:0 4px 20px #0006}[data-theme=light] header.scrolled{background:#f0ede8d9;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 4px 20px #0000000d}.brand-logo{background:none;border:none;font-family:var(--font-display);font-size:1.8rem;color:var(--color-primary);letter-spacing:3px;cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:transform .3s ease,opacity .2s ease}.brand-logo:hover{opacity:.8;transform:translateY(-1px)}.desktop-menu{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}.desktop-menu li button{background:none;border:none;font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--color-text-secondary);cursor:pointer;padding:8px 12px;transition:color .2s ease}.desktop-menu li button:hover{color:var(--color-primary)}.nav-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.theme-toggle,.mobile-menu-toggle{background:none;border:1px solid var(--color-primary-dim);color:var(--color-primary);font-size:1rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;transition:background .2s ease,border-color .2s ease}.theme-toggle:hover,.mobile-menu-toggle:hover{background:var(--color-primary-dim);border-color:var(--color-primary)}.mobile-menu-toggle{display:none}.mobile-menu{position:absolute;top:100%;left:0;width:100%;z-index:999;padding:1rem 0 2rem;animation:slideDown .3s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}[data-theme=dark] .mobile-menu{background:#050a05fa;border-bottom:1px solid var(--color-primary-dim)}[data-theme=light] .mobile-menu{background:#f0ede8fa;border-bottom:1px solid rgba(0,0,0,.08)}.mobile-menu ul{list-style:none;margin:0;padding:0}.mobile-menu ul li button{display:block;width:100%;text-align:left;background:none;border:none;font-family:var(--font-mono);font-size:1.1rem;text-transform:uppercase;letter-spacing:2px;color:var(--color-text-secondary);padding:1.2rem 2rem;cursor:pointer;border-bottom:1px solid rgba(0,255,65,.05)}.mobile-menu ul li button:hover{color:var(--color-primary);background:var(--color-primary-dim)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.desktop-menu{display:none}.mobile-menu-toggle{display:flex}.nav-container{padding:1rem 1.25rem}header.scrolled .nav-container{padding:.75rem 1.25rem}.brand-logo{font-size:1.5rem}}.hero-section{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-overlay{position:relative;z-index:1;width:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}.hero-content{position:relative;padding:0 2rem 0 5rem;max-width:1000px;width:100%}.hero-content:before{content:"";position:absolute;left:2rem;top:0;width:2px;height:100%;background:var(--color-primary);transform-origin:top;animation:lineGrow 1.4s cubic-bezier(.22,1,.36,1) forwards}[data-theme=dark] .hero-content:before{box-shadow:0 0 12px var(--color-primary);opacity:.7}[data-theme=light] .hero-content:before{opacity:.25;width:1px}@keyframes lineGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.hero-name{font-family:var(--font-display);margin:0 0 .4rem;line-height:1.05;padding:.1em 0;clip-path:inset(-15% 100% -15% -5%);animation:scanIn 1.2s cubic-bezier(.19,1,.22,1) .3s forwards;transform:translate(calc(var(--scroll, 0) * -.5px));opacity:calc(1 - var(--scroll, 0) / 600);pointer-events:all}[data-theme=dark] .hero-name{font-size:clamp(3.5rem,11vw,8rem);color:var(--color-primary);text-shadow:0 0 10px rgba(0,255,65,.2)}[data-theme=light] .hero-name{font-size:clamp(3rem,9vw,7rem);color:var(--color-primary);text-shadow:2px 2px 0 rgba(255,255,255,.8),4px 4px 15px rgba(74,32,64,.1)}@keyframes scanIn{to{clip-path:inset(-15% -15% -15% -15%)}}.hero-title{font-family:var(--font-mono);font-size:clamp(.8rem,2vw,1rem);color:var(--color-text-secondary);letter-spacing:3px;text-transform:uppercase;margin:0 0 1.25rem;opacity:0;animation:fadeUp .8s ease .9s forwards}.hero-bio-wrap{max-width:580px;transform:translate(calc(var(--scroll, 0) * .3px));opacity:calc(1 - var(--scroll, 0) / 700)}.hero-bio{font-size:clamp(.9rem,1.6vw,1.05rem);line-height:1.8;color:var(--color-text-secondary);margin:0 0 2rem;opacity:0;animation:fadeUp .8s ease 1.1s forwards}[data-theme=dark] .hero-bio{font-family:var(--font-mono);color:#00ff41a6}.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;opacity:0;animation:fadeUp .8s ease 1.3s forwards;pointer-events:all}.hero-ctas button{font-family:var(--font-mono);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:12px 24px;cursor:pointer;border:1px solid var(--color-primary);transition:transform .2s ease,box-shadow .2s ease,background .2s ease;white-space:nowrap}[data-theme=dark] .btn-primary{background:var(--color-primary);color:#050a05}[data-theme=dark] .btn-secondary{background:transparent;color:var(--color-primary);border-color:#00ff4180}[data-theme=light] .btn-primary{background:var(--color-primary);color:#fff;border-radius:6px}[data-theme=light] .btn-secondary{background:transparent;color:var(--color-primary);border-radius:6px}@media (hover: hover){[data-theme=dark] .hero-ctas button:hover{transform:translateY(-2px);box-shadow:0 0 18px var(--color-primary)}[data-theme=light] .hero-ctas button:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--color-primary-dim)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.hero-section{align-items:flex-start;padding-top:22vh;min-height:100svh}.hero-content{padding:0 1.25rem 0 2.5rem}.hero-content:before{left:1.25rem}.hero-name,.hero-bio-wrap{transform:none!important;opacity:1!important}[data-theme=dark] .hero-name{font-size:clamp(2.8rem,14vw,4rem)!important}[data-theme=light] .hero-name{font-size:clamp(2.5rem,12vw,3.5rem)!important}.hero-title{font-size:.72rem;letter-spacing:2px}.hero-bio{font-size:.88rem}.hero-ctas{flex-direction:column;gap:.75rem}.hero-ctas button{width:100%;padding:14px 20px;font-size:.85rem;text-align:center}}.projects-section{position:relative;padding:10vh 0 8vh}.projects-container{max-width:1200px;margin:0 auto;padding:0 2rem}.scroll-fade{opacity:1;transform:none;filter:none}@supports (animation-timeline: view()){.scroll-fade{animation:fadeScroll linear both;animation-timeline:view();animation-range:entry 5% cover 50% exit 90%;will-change:opacity,transform,filter}}@keyframes fadeScroll{0%{opacity:0;filter:blur(10px);transform:translateY(50px)}35%,65%{opacity:1;filter:blur(0);transform:translateY(0)}to{opacity:0;filter:blur(10px);transform:translateY(-50px)}}.projects-section h2{font-family:var(--font-display);font-size:clamp(3rem,7vw,5.5rem);color:var(--color-primary);margin:0 0 2.5rem;text-transform:uppercase;line-height:1}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem}.project-card{display:flex;flex-direction:column;border-radius:4px;overflow:hidden;border:1px solid var(--color-primary-dim);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}[data-theme=dark] .project-card{background:#02050273}[data-theme=light] .project-card{background:#ffffff8c}@media (hover: hover){.project-card:hover{transform:translateY(-6px);border-color:var(--color-primary)}[data-theme=dark] .project-card:hover{box-shadow:0 8px 28px #00ff411f;background:#020502cc}[data-theme=light] .project-card:hover{box-shadow:0 8px 28px var(--color-primary-dim);background:#ffffffe6}.project-card:hover .project-image-wrap img{transform:scale(1.04)}.project-card:hover .image-overlay{opacity:1}}.project-image-wrap{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:#000;border-bottom:1px solid var(--color-primary-dim);flex-shrink:0}.project-image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.55) 100%);opacity:0;transition:opacity .35s ease;pointer-events:none}.project-image-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.placeholder-content{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.68rem;color:var(--color-primary);opacity:.35;text-align:center}.placeholder-content svg{width:26px;height:26px}.project-body{padding:1.25rem 1.5rem;flex-grow:1;display:flex;flex-direction:column}.project-body h3{font-family:var(--font-mono);font-size:.95rem;letter-spacing:1px;color:var(--color-primary);margin:0 0 .6rem}.project-body p{font-size:.83rem;line-height:1.6;color:var(--color-text-secondary);margin:0 0 1rem;flex-grow:1}.tech-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.tech-tags span{font-family:var(--font-mono);font-size:.62rem;padding:3px 7px;background:var(--color-primary-dim);color:var(--color-primary);border-radius:2px;letter-spacing:.3px}.project-links{display:flex;gap:1.25rem;border-top:1px solid var(--color-primary-dim);padding-top:.8rem;margin-top:auto}.project-links a{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.5px;text-decoration:none;color:var(--color-text-secondary);transition:color .2s ease;position:relative}.project-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--color-primary);transition:width .25s ease}.project-links a:hover{color:var(--color-primary)}.project-links a:hover:after{width:100%}.project-links a.demo-link{color:var(--color-primary);opacity:.75}.project-links a.demo-link:hover{opacity:1}.projects-footer{text-align:center;margin-top:1rem}.projects-footer p{font-family:var(--font-mono);font-size:.75rem;letter-spacing:2px;color:var(--color-text-secondary);margin:0 0 1.25rem}.github-btn{display:inline-block;font-family:var(--font-mono);font-size:.78rem;letter-spacing:1px;padding:.85rem 2rem;border:1px solid var(--color-primary);color:var(--color-primary);text-decoration:none;transition:background .25s ease,color .25s ease,box-shadow .25s ease}.github-btn:hover{background:var(--color-primary);color:var(--color-bg)}[data-theme=dark] .github-btn:hover{box-shadow:0 0 18px var(--color-primary)}@media (max-width: 1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.projects-section{padding:8vh 0 6vh}.projects-container{padding:0 1.25rem}.projects-section h2{font-size:clamp(2.5rem,12vw,4rem);margin-bottom:1.75rem}.projects-grid{grid-template-columns:1fr;gap:1.25rem;margin-bottom:2rem}.scroll-fade{animation:none!important;animation-timeline:unset!important;opacity:1!important;filter:none!important;transform:none!important}.project-card{animation:cardIn .45s ease both}@keyframes cardIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.project-card:hover,.project-card:hover .project-image-wrap img{transform:none}.projects-footer{margin-top:.5rem}.github-btn{width:100%;text-align:center;display:block}}
