*{margin:0;padding:0;box-sizing:border-box;font-family:Fira Code,Courier New,monospace}:root{--bg-body: #040404;--bg-terminal: #050505;--text-primary: #f5f5f5;--text-accent: #a0a0a0;--text-dark: #f5f5f5}#root{width:100%;height:100%;display:flex;justify-content:center;align-items:center}body{background:linear-gradient(#000000e6,#000000f2);background-size:cover;background-position:center;background-attachment:fixed;color:var(--text-primary);min-height:100vh;display:flex;justify-content:center;align-items:center;overflow-x:hidden;line-height:1.5;transition:background .3s ease}body.light-mode{background:linear-gradient(#888888f2,#808080f7);background-size:cover;background-position:center;background-attachment:fixed;--bg-body: #888888;--bg-terminal: #aaaaaa;--text-primary: #1a1a1a;--text-accent: #3a3a3a;--text-dark: #2a2a2a}.terminal{background:#000;border-radius:0;width:95%;max-width:1400px;height:85vh;max-height:900px;display:flex;flex-direction:column;position:relative;box-shadow:0 20px 50px #00000080;overflow:hidden;padding:0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08)}.terminal-header{background:#000;padding:.3rem .5rem;display:flex;align-items:center;gap:.5rem;border-radius:0;border-bottom:1px solid rgba(255,255,255,.1);height:28px}.terminal-header .window-buttons{display:flex;gap:.3rem;margin-left:.3rem}.terminal-header .window-buttons span{width:12px;height:12px;border-radius:0;position:relative;background:#333;border:1px solid #444;transition:all .2s ease}.terminal-header .window-buttons span:nth-child(1):before,.terminal-header .window-buttons span:nth-child(2):before,.terminal-header .window-buttons span:nth-child(3):before{color:#fff}.terminal-header .window-buttons span:hover{background:#444}.terminal-header .window-buttons span:hover:before{opacity:1}.terminal-header .title{color:#fff;font-size:.85rem;flex-grow:1;text-align:center;font-weight:400;font-family:Fira Code,monospace;letter-spacing:1px;text-transform:lowercase;opacity:.9}.terminal-content{padding:1rem;background:#000;flex-grow:1;display:flex;flex-direction:column;position:relative}body.light-mode .terminal{background:#aaa;border:1px solid #999999;box-shadow:0 4px 20px #0003}body.light-mode .terminal-header{background:#999;border-bottom:1px solid #888888}body.light-mode .terminal-header .title{color:#1a1a1a}body.light-mode .terminal-content{background:#aaa}body.light-mode .window-buttons span{background:#888;border:1px solid #777777}body.light-mode .window-buttons span:hover{background:#999}body.light-mode .ascii-art{color:#2b2b2b}body.light-mode .tagline{color:#555}body.light-mode .nav{background:#888888f2;border:1px solid #999999;box-shadow:0 2px 8px #00000026}body.light-mode .nav a{color:#3a3a3a}body.light-mode .nav a.active,body.light-mode .nav a:hover,body.light-mode .nav a:first-child{background:#0000001a;color:#1a1a1a}body.light-mode .about-content .keyword{color:#05c}body.light-mode .about-content .comment{color:#6e6e6e}body.light-mode .stats{color:#555}body.light-mode .cursor{background-color:#2b2b2b}.theme-toggle{margin-right:.5rem;opacity:.8;transition:opacity .3s ease;cursor:pointer;transform-origin:top center;position:relative;height:65px;display:flex;flex-direction:column;align-items:center;padding-top:12px;z-index:100}.theme-toggle:hover{opacity:1}.bulb{width:18px;height:18px;background:#ffeb3b;border-radius:50%;position:relative;transition:all .3s ease;border:1.5px solid rgba(255,255,255,.3);box-shadow:0 0 10px #ffeb3b80;transform-origin:top center;cursor:pointer}body.light-mode .bulb{background:#bbb;box-shadow:0 0 20px #8889;border:1.5px solid #999999}.chain{width:3px;height:40px;background:#fff;position:relative;margin-top:-1px;cursor:grab;transition:height .3s cubic-bezier(.4,0,.2,1);opacity:.9;transform-origin:top center;z-index:100}.chain.pulling{cursor:grabbing;height:55px}.chain:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:8px;height:8px;background:#fff;border-radius:50%;opacity:.9;box-shadow:0 2px 4px #0003}@keyframes hangingBulb{0%,to{transform:rotate(0)}25%{transform:rotate(2deg)}75%{transform:rotate(-2deg)}}@keyframes pullChain{0%{transform:translateY(0) rotate(0)}20%{transform:translateY(20px) rotate(10deg)}40%{transform:translateY(8px) rotate(-8deg)}60%{transform:translateY(-3px) rotate(6deg)}80%{transform:translateY(2px) rotate(-3deg)}to{transform:translateY(0) rotate(0)}}@keyframes swingBulb{0%{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}to{transform:rotate(0)}}.theme-toggle.pulling{animation:swingBulb 1.5s cubic-bezier(.36,0,.66,-.56) forwards}.theme-toggle.pulling .chain{animation:pullChain 1.5s cubic-bezier(.36,0,.66,-.56) forwards}.face-container{position:relative;width:70px;height:45px;display:flex;flex-direction:column;align-items:center;margin-bottom:.2rem;opacity:.95;transition:all .3s ease}.eyes{display:flex;gap:15px}.eye{width:18px;height:18px;background:#000;border-radius:50%;position:relative;box-shadow:none;overflow:hidden;border:2px solid rgba(255,255,255,.2)}.pupil{width:8px;height:8px;background:#fff;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:transform .1s ease;box-shadow:none}body.light-mode .pupil{background:#2b2b2b}body.light-mode .eye{background:#bbb;border-color:#0003;box-shadow:0 1px 4px #0000001a}.smile{width:35px;height:15px;border:2.5px solid #ffffff;border-radius:0 0 35px 35px;border-top:0;margin-top:8px}body.light-mode .smile{border-color:#2b2b2b}.page{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:all .5s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem 1rem;min-height:350px;overflow:hidden;transform:translateY(30px) scale(.95)}.page.active{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.about-tabs{position:absolute;top:40px;left:10px;display:flex;gap:1rem;padding:.5rem;z-index:10}.about-tab{color:#fff;font-size:.85rem;padding:.3rem .6rem;cursor:pointer;transition:all .3s ease;opacity:.7;background:transparent;border:none;font-family:Fira Code,monospace;position:relative}.about-tab:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--text-primary);transform:scaleX(0);transition:transform .3s ease;transform-origin:left}.about-tab:hover:before,.about-tab.active:before{transform:scaleX(1)}.about-tab:hover,.about-tab.active{opacity:1;color:#fff;text-decoration:underline}body.light-mode .about-tab{color:var(--text-dark)}body.light-mode .about-tab:before{background:var(--text-dark)}body.light-mode .about-tab:hover,body.light-mode .about-tab.active{color:var(--text-dark)}.about-content{margin-top:3rem;max-width:800px;text-align:left;width:100%;font-family:Fira Code,monospace;padding:1rem;position:relative;max-height:calc(75vh - 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--text-accent) transparent}.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;padding:0;width:100%}.about-content .events-grid{padding:0}.project-preview{width:100%;height:auto;max-height:none;margin-top:1rem;overflow:visible}.project-main-img{width:100%;height:100%;max-height:300px;object-fit:contain!important;border-radius:10px;display:block;margin:0 auto}.project-thumbnails{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.project-thumb{width:60px;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:.2s ease}.project-thumb:hover{border-color:#0ff}.event-card{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:1.5rem;transition:all .3s ease;position:relative;overflow:visible;cursor:pointer;min-height:300px;display:flex;flex-direction:column}.event-card.featured{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:2rem}.project-footer{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.github-btn{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);text-decoration:none;font-size:.9rem;padding:.4rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#ffffff0d;transition:all .2s ease}.github-btn:hover{background:#ffffff1a;border-color:#0ff;color:#0ff;transform:translateY(-2px);box-shadow:0 4px 12px #00ffff1a}body.light-mode .project-footer{border-top-color:#0000001a}body.light-mode .github-btn{color:var(--text-primary);border-color:#0003;background:#0000000d}body.light-mode .github-btn:hover{background:#0000001a;border-color:#05c;color:#05c;box-shadow:0 4px 12px #0055cc1a}.event-image-container{position:relative;overflow:hidden;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:#0003;min-height:200px;max-height:400px;display:flex;flex-direction:column;flex-shrink:0}.event-card:not(.featured) .event-image-container{height:auto;max-height:300px}.event-image{width:100%;height:calc(100% - 82px);object-fit:contain;background:#0006;padding:8px;transition:opacity .3s ease}.image-gallery{display:flex;gap:.5rem;padding:.5rem;background:#0000004d;margin-top:auto;justify-content:center;height:82px;align-items:center}.gallery-thumb{width:60px;height:60px;border-radius:2px;border:2px solid rgba(255,255,255,.1);cursor:pointer;transition:all .3s ease;object-fit:cover;opacity:.7;background:#0003;padding:2px}.gallery-thumb.active{border-color:#fffc;opacity:1}.gallery-thumb:hover{border-color:#ffffff4d;transform:scale(1.05);box-shadow:0 2px 8px #0003;opacity:.9}body.light-mode .gallery-thumb.active{border-color:#000c}body.light-mode .event-image-container{border-color:#0000001a;background:#ffffff1a}body.light-mode .image-gallery{background:#0000000d}body.light-mode .gallery-thumb{border-color:#0000001a}body.light-mode .gallery-thumb:hover{border-color:#0003}.event-content{display:flex;flex-direction:column;gap:.8rem;flex:1;min-height:0}.event-description{font-size:.9rem;color:var(--text-accent);line-height:1.6;margin:1rem 0;opacity:.9}.event-achievement{color:#0f0;font-size:.9rem;margin-top:auto;opacity:.9}.event-title{font-size:1.2rem;color:var(--text-primary);margin-bottom:1rem;font-family:Fira Code,monospace}.event-details{font-size:.9rem;color:var(--text-accent);margin-bottom:.5rem}.event-status{position:absolute;bottom:1rem;right:1rem;font-size:.8rem;color:#0f0;opacity:.8}body.light-mode .event-card{background:#aaac;border-color:#0003}body.light-mode .event-card:hover{border-color:#0000004d;background:#bbbbbbe6}@media (max-width: 768px){.event-card.featured{grid-template-columns:1fr}.event-image-container{min-height:300px;height:400px}.event-image{height:calc(100% - 82px)}}@media (max-width: 768px){.events-grid{grid-template-columns:1fr;padding:.5rem}}.about-content::-webkit-scrollbar{width:6px}.about-content::-webkit-scrollbar-track{background:transparent}.about-content::-webkit-scrollbar-thumb{background-color:var(--text-accent);border-radius:3px}.about-content#personal-content{padding-right:1.5rem}.about-content .code-line{display:flex;gap:1rem;margin-bottom:.5rem;opacity:0;transform:translateY(20px);animation:fadeUpIn .6s cubic-bezier(.4,0,.2,1) forwards;position:relative;padding:.2rem 0}@keyframes fadeUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.about-content .code-line:nth-child(1){animation-delay:.1s}.about-content .code-line:nth-child(2){animation-delay:.15s}.about-content .code-line:nth-child(3){animation-delay:.2s}.about-content .code-line:nth-child(4){animation-delay:.25s}.about-content .code-line:nth-child(5){animation-delay:.3s}.about-content .code-line:nth-child(6){animation-delay:.35s}.about-content .code-line:nth-child(7){animation-delay:.4s}.about-content .code-line:nth-child(8){animation-delay:.45s}.about-content .code-line:nth-child(9){animation-delay:.5s}.about-content .code-line:nth-child(10){animation-delay:.55s}.about-content .code-line:nth-child(11){animation-delay:.6s}.about-content .line-number{color:#666;min-width:2.5ch;text-align:right;-webkit-user-select:none;user-select:none;opacity:.7;font-size:.9em}.about-content .code-text{color:#fff;position:relative;padding-left:1rem}.about-content .code-text:before{content:"";position:absolute;left:0;top:0;width:2px;height:100%;background:#ffffff1a;transform:scaleY(0);transition:transform .3s ease;transform-origin:top}.about-content .code-line:hover .code-text:before{transform:scaleY(1)}.about-content .keyword{color:#ccc;font-weight:500}.about-content .string{color:#fff;opacity:.9}body.light-mode .about-content .code-text:before{background:#0000000d}body.light-mode .about-content .code-text{color:#2b2b2b}body.light-mode .about-content .keyword{color:#05c;font-weight:500}body.light-mode .about-content .string{color:#007a4d}body.light-mode .about-content .line-number{color:#999}.name{font-family:monospace;font-size:1.2rem;font-weight:400;color:#e0e0e0;text-shadow:none;margin-bottom:1.5rem;letter-spacing:0;display:block;white-space:pre;line-height:1;text-transform:none;border:none;animation:none}.ascii-art{display:block;margin:0 auto 1.5rem;font-family:monospace;white-space:pre;line-height:1;color:#fff;font-size:14px;text-align:center;opacity:1}.tagline{font-size:1.3rem;max-width:80%;margin:0 auto 1.5rem;color:#ccc;line-height:1.6;text-align:left;min-height:100px;position:relative;overflow:hidden;opacity:.8}.typewriter-container{position:relative;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;gap:1rem}.typewriter{display:block;width:100%;margin:0;white-space:pre-wrap;overflow-wrap:break-word}.tw-rest{visibility:hidden}.tw-caret{display:inline-block;width:.55em;height:1.05em;margin:0 1px 0 2px;vertical-align:-.15em;background:var(--tw-caret, #3dffb8);box-shadow:0 0 8px color-mix(in srgb,var(--tw-caret, #3dffb8) 60%,transparent)}.tw-caret-idle{animation:twCaretBlink 1.05s steps(1) infinite}body.light-mode{--tw-caret: #0f6e56}@keyframes twCaretBlink{0%,50%{opacity:1}50.01%,to{opacity:0}}.line-wrapper{position:relative;display:inline-block;width:100%}.cursor{position:absolute;width:2px;height:1.4em;background-color:#fff;animation:blink .75s step-end infinite;z-index:2;top:50%;transform:translateY(-50%)}@keyframes typing{to{clip-path:inset(0 0 0 0)}}@keyframes blink{0%,to{opacity:0}50%{opacity:1}}.nav{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-wrap:wrap;gap:.3rem;z-index:10;background:#000000f2;padding:.4rem;border-radius:0;width:auto;justify-content:center;border:1px solid rgba(255,255,255,.1)}.nav a{text-decoration:none;color:#ccc;font-size:.85rem;padding:.2rem .4rem;transition:all .3s ease;position:relative;text-transform:lowercase;white-space:nowrap;opacity:.7}.nav a.active,.nav a:hover,.nav a:first-child{background:#ffffff1a;color:#fff;opacity:1}.stats{position:absolute;bottom:1rem;right:1.5rem;font-size:.9rem;color:#ccc;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;z-index:10;opacity:.8}.stats-message{width:100%;text-align:center;margin-top:.5rem;font-size:.85rem;letter-spacing:.03em;color:var(--text-accent)}body.light-mode .stats-message{color:var(--text-dark)}.stats-text{display:flex;gap:1rem;font-family:Fira Code,monospace;font-size:.8rem}@media (max-width: 480px){.terminal-content{padding:.8rem .5rem}.stats{display:none}.ascii-art{font-size:10px;margin-bottom:2rem;transform:scale(.9)}.tagline{font-size:.9rem;line-height:1.6;margin:0 auto 1rem;padding:0 .5rem;max-width:100%;text-align:center;min-height:auto}.typewriter-container{gap:.8rem}.typewriter.first-line{font-size:1.1rem;font-weight:500}.typewriter.second-line{font-size:.85rem;line-height:1.5}.about-content{max-height:calc(85vh - 140px);margin-top:2.5rem}.about-content .code-line{gap:.8rem;margin-bottom:.4rem;padding:.2rem 0}.about-content .line-number{min-width:2.2ch;font-size:.8em;opacity:.7}.about-content .code-text{padding-left:.8rem;line-height:1.4}.nav{flex-wrap:wrap;justify-content:center;max-width:96%;padding:.5rem;left:0;right:0;transform:none;margin:0 auto;gap:.5rem}.nav::-webkit-scrollbar{display:none}.nav a{font-size:.8rem;padding:.3rem .6rem;opacity:.8;flex-shrink:0}.terminal{width:95%;height:80vh}}@media (max-width: 360px){.ascii-art{font-size:8px;transform:scale(.85)}.typewriter.first-line{font-size:1rem}.typewriter.second-line{font-size:.8rem}.about-content{font-size:.8rem;padding:.25rem}.nav{padding:.3rem;gap:.3rem}.nav a{font-size:.75rem;padding:.12rem .3rem}}@media (max-width: 480px) and (orientation: portrait){.terminal{height:85vh}.about-content{margin-top:2rem}.typewriter-container{margin-top:1rem}}@media (max-width: 480px) and (orientation: landscape){.terminal{height:90vh}.ascii-art{margin-bottom:1rem;transform:scale(.8)}.about-content{margin-top:.5rem}.typewriter-container{gap:.5rem}.about-content .code-line{margin-bottom:.2rem}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;padding:1rem;width:100%}.project-card{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:1.5rem;transition:all .3s ease;position:relative;overflow:hidden;cursor:pointer;min-height:250px;display:flex;flex-direction:column}.project-tech{color:#fff;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.project-links{display:flex;gap:1rem;margin-top:auto}.project-link{color:var(--text-accent);text-decoration:none;font-size:.9rem;opacity:.8;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;padding:.3rem 0}.project-link i{font-size:1.1rem;width:20px;text-align:center}.project-link:hover{opacity:1;color:var(--text-primary);transform:translate(5px)}.project-link:hover i{transform:scale(1.1)}.project-status{position:absolute;top:1rem;right:1rem;font-size:.8rem;color:#0f0;opacity:.8}.project-card.featured{grid-column:1 / -1;display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;padding:2rem}.project-preview{background:#0003;border-radius:4px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.project-preview img{max-width:100%;height:auto;border-radius:2px}body.light-mode .project-card{background:#aaac;border-color:#0003}body.light-mode .project-card:hover{border-color:#0000004d;background:#bbbbbbe6}body.light-mode .tech-tag{background:#0000000d}@media (max-width: 768px){.project-card.featured{grid-template-columns:1fr}.projects-grid{grid-template-columns:1fr;padding:.5rem}}.project-preview{height:auto;margin:1rem 0;border-radius:4px;overflow:hidden;position:relative;background:#0003}.preview-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .preview-image{transform:scale(1.05)}.preview-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.project-card:hover .preview-overlay{opacity:1}.terminal-line{color:#0f0;font-family:Fira Code,monospace;border-right:2px solid #00ff00;padding-right:8px;animation:blink 1s step-end infinite}body.light-mode .project-preview,body.light-mode .preview-placeholder{background:#0000000d}.links-container{width:100%;max-width:1200px;margin:0 auto;padding:20px;max-height:calc(75vh - 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--text-accent) transparent}.links-container::-webkit-scrollbar{width:6px}.links-container::-webkit-scrollbar-track{background:transparent}.links-container::-webkit-scrollbar-thumb{background-color:var(--text-accent);border-radius:3px}.links-container{padding-right:1.5rem}body.light-mode .links-container{scrollbar-color:rgba(0,0,0,.2) transparent}body.light-mode .links-container::-webkit-scrollbar-thumb{background-color:#0003}.links-section{margin-bottom:40px}.terminal-header-text{font-family:Fira Code,monospace;font-size:1.2rem;color:var(--text-primary);margin-bottom:20px;padding-left:10px;border-left:3px solid #00ff00;opacity:0;transform:translateY(20px);animation:fadeInUp .5s ease forwards}.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:40px}.social-card{position:relative;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:20px;color:var(--text-primary);text-decoration:none;overflow:hidden;transition:all .3s ease;opacity:0;transform:translateY(20px);animation:fadeInUp .5s ease forwards}.social-card:hover{transform:translateY(-5px);border-color:#ffffff4d}.card-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:10px}.card-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,rgba(0,0,0,.2),transparent);opacity:0;transition:opacity .3s ease}.social-card:hover .card-bg{opacity:1}.social-card i{font-size:2rem;margin-bottom:10px;transition:transform .3s ease}.social-card:hover i{transform:scale(1.1)}.platform-name{font-size:1.1rem;font-weight:500}.username{font-size:.9rem;opacity:.8}.card-footer{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:.8rem;opacity:.8}.status-dot{width:8px;height:8px;background:#0f0;border-radius:50%;animation:pulse 2s infinite}.arrow{margin-left:auto;transition:transform .3s ease}.social-card:hover .arrow{transform:translate(5px)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.contact-card{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;opacity:0;transform:translateY(20px);animation:fadeInUp .5s ease forwards}.contact-card a{text-decoration:none;color:var(--text-primary);display:flex;padding:20px;gap:20px;transition:all .3s ease}.contact-card:hover{transform:translateY(-5px);border-color:#ffffff4d}.icon-container{width:50px;height:50px;background:#ffffff1a;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.contact-card:hover .icon-container{transform:scale(1.1);background:#fff3}.icon-container i{font-size:1.5rem}.contact-details{flex-grow:1;display:flex;flex-direction:column;gap:5px}.contact-type{font-size:1.1rem;font-weight:500}.contact-value{font-size:.9rem;opacity:.8}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}to{transform:scale(1);opacity:1}}.github:hover{border-color:#6e5494}.linkedin:hover{border-color:#0077b5}.twitter:hover{border-color:#1da1f2}.facebook:hover{border-color:#4267b2}.discord:hover{border-color:#7289da}.email:hover{border-color:#ea4335}.phone:hover{border-color:#0f0}.reddit:hover{border-color:#ff4500}body.light-mode .social-card,body.light-mode .contact-card{background:#aaac;border-color:#0003}body.light-mode .social-card:hover,body.light-mode .contact-card:hover{background:#bbbbbbe6;border-color:#0000004d}body.light-mode .icon-container{background:#0000000d}body.light-mode .contact-card:hover .icon-container{background:#0000001a}.social-card:nth-child(1){animation-delay:.1s}.social-card:nth-child(2){animation-delay:.2s}.social-card:nth-child(3){animation-delay:.3s}.social-card:nth-child(4){animation-delay:.4s}.social-card:nth-child(5){animation-delay:.5s}.contact-card:nth-child(1){animation-delay:.5s}.contact-card:nth-child(2){animation-delay:.6s}.contact-card:nth-child(3){animation-delay:.7s}@media (max-width: 768px){.links-grid,.contact-grid{grid-template-columns:1fr}.social-card,.contact-card{margin-bottom:15px}.terminal-header-text{font-size:1rem}}.project-preview{position:relative;height:auto;margin:1rem 0;border-radius:4px;overflow:hidden;background:#0003}body.light-mode .project-preview{background:#0000000d}.milestones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding:1rem}.milestone-box{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);padding:1.2rem;border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;color:var(--text-primary);transition:transform .3s ease}.milestone-box:hover{transform:translateY(-4px)}.milestone-title{font-size:1rem;font-weight:700;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.big-number{font-size:2.2rem;font-weight:700;margin:.4rem 0}.milestone-comment{font-size:.85rem;opacity:.8;margin-top:.6rem}.milestone-progress{display:flex;flex-direction:column}.milestone-numbers{font-size:1.1rem;margin-bottom:.3rem}.progress-bar{background:#ffffff14;height:10px;border-radius:20px;overflow:hidden}#leetcode-bar{height:100%;width:0;background-color:#00e676;transition:width 1.5s ease-in-out}.progress-bar .fill{background:#f7c32e;height:100%;width:0;transition:width 1s ease-in-out}.badge-list{display:flex;flex-wrap:wrap;gap:.4rem}.badge{background:#1e7f3c;color:#fff;font-size:.75rem;padding:.25rem .6rem;border-radius:12px}.hackathon-list{display:flex;flex-direction:column;gap:.8rem;margin:.8rem 0}.hackathon-entry{background:#ffffff08;padding:.8rem;border-radius:6px;border:1px solid rgba(255,255,255,.05);transition:all .3s ease}.hackathon-entry:hover{background:#ffffff0d;border-color:#ffffff1a}.hackathon-name{font-size:.95rem;font-weight:600;color:var(--text-primary);margin-bottom:.4rem}.hackathon-achievement{font-size:.85rem;color:#0f0;font-weight:500;margin-bottom:.5rem}.hackathon-details{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;opacity:.85}.hackathon-project{color:var(--text-accent)}.hackathon-venue{color:var(--text-accent);font-size:.75rem}body.light-mode .hackathon-entry{background:#00000008;border-color:#00000014}body.light-mode .hackathon-entry:hover{background:#0000000d;border-color:#0000001f}body.light-mode .hackathon-achievement{color:#007a4d}.event-list{list-style:disc inside;font-size:.9rem;padding-left:1rem;margin:.5rem 0}.report-card{background:#00ffff0d;padding:.5rem;text-align:center;border-radius:8px}.grade{font-size:2rem;font-weight:700;color:#0ff}.label{font-size:.85rem;opacity:.7}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;padding:1rem}.skill-cert-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;transition:transform .3s ease}.skill-cert-card:hover{transform:translateY(-5px);box-shadow:0 0 12px #00ffff26}body.light-mode .skill-cert-card{background:#aaac;border-color:#0003}body.light-mode .skill-cert-card:hover{background:#bbbbbbe6;box-shadow:0 0 12px #0003}.skill-cert-title{font-size:1.3rem;font-weight:600;color:var(--text-accent)}.certification-entry{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;padding:4px 0}.certification-entry span{flex:1;padding-right:10px}.certification-entry button{background-color:#0ff;color:#000;border:none;padding:4px 10px;font-size:.8rem;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.certification-entry button:hover{background-color:#0dd}.cert-logo{width:18px;height:18px;vertical-align:middle;margin-right:8px;border-radius:3px;object-fit:contain}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;padding:1rem;width:100%;max-height:calc(75vh - 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--text-accent) transparent}.projects-grid::-webkit-scrollbar{width:6px}.projects-grid::-webkit-scrollbar-track{background:transparent}.projects-grid::-webkit-scrollbar-thumb{background-color:var(--text-accent);border-radius:3px}.projects-grid{padding-right:1.5rem}.project-card{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:1.5rem;transition:all .3s ease;position:relative;overflow:visible;cursor:pointer;min-height:auto;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-5px);box-shadow:0 5px 15px #0000004d;border-color:#fff3}.animate-card{opacity:0;transform:translateY(20px);animation:fadeInUp .6s ease forwards}.animate-card:nth-child(1){animation-delay:.2s}.animate-card:nth-child(2){animation-delay:.4s}.animate-card:nth-child(3){animation-delay:.6s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-title{font-size:1.2rem;color:#fff;margin-bottom:1rem;font-family:Fira Code,monospace;display:flex;align-items:center;gap:.5rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-tag{background:#ffffff1a;padding:.2rem .5rem;border-radius:2px;font-size:.8rem;color:var(--text-accent)}.project-preview{margin:1rem 0;border-radius:4px;overflow:hidden;position:relative;background:#0003;display:flex;align-items:center;justify-content:center}.preview-video{width:100%;height:auto;object-fit:contain;border-radius:4px;transition:transform .3s ease}.project-card:hover .preview-video{transform:scale(1.05)}.preview-placeholder{height:100%;display:flex;align-items:center;justify-content:center;background:#0000004d}.terminal-animation{display:flex;flex-direction:column;align-items:center;gap:.5rem}.terminal-animation .line{color:#0f0;font-family:Fira Code,monospace;opacity:0;animation:typingAnimation 2s ease-out forwards}.terminal-animation .line:nth-child(1){animation-delay:.5s}.terminal-animation .line:nth-child(2){animation-delay:1.5s}.terminal-animation .line:nth-child(3){animation-delay:2.5s}@keyframes typingAnimation{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.future-animation{position:relative;height:100%;overflow:hidden}.code-rain{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,255,0,.1) 0%,rgba(0,255,0,.05) 50%,transparent 100%);animation:rainAnimation 20s linear infinite}.future-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#0f0;font-family:Fira Code,monospace;font-size:1.2rem;text-shadow:0 0 10px rgba(0,255,0,.5);animation:pulseAnimation 2s ease-in-out infinite}@keyframes rainAnimation{0%{background-position:0 0}to{background-position:0 1000px}}@keyframes pulseAnimation{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.project-description{font-size:.9rem;color:#fff;line-height:1.6;margin:1rem 0;flex-grow:1}.feature-list{margin:.5rem 0;padding-left:1.2rem;font-size:.9rem}.feature-list li::marker{color:#0ff}body.light-mode .project-card{background:#ffffffe6;border-color:#0000001a}body.light-mode .project-card:hover{border-color:#0003;background:#fff}body.light-mode .tech-tag,body.light-mode .project-preview,body.light-mode .preview-placeholder{background:#0000000d}body.light-mode .terminal-line,body.light-mode .terminal-animation .line,body.light-mode .future-text{color:#007a4d}body.light-mode .code-rain{background:linear-gradient(180deg,rgba(0,122,77,.1) 0%,rgba(0,122,77,.05) 50%,transparent 100%)}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr;padding:.5rem 1rem .5rem .5rem}}body.light-mode .projects-grid{scrollbar-color:rgba(0,0,0,.2) transparent}body.light-mode .projects-grid::-webkit-scrollbar-thumb{background-color:#0003}.projects-grid{grid-template-columns:1fr;max-width:1100px;margin:0 auto;gap:3rem}.project-card{display:flex!important;flex-direction:row;align-items:flex-start;gap:3rem;padding:2.5rem;min-height:auto!important;overflow:visible!important;background:#0a0a0a99;border:1px solid rgba(255,255,255,.08)}body.light-mode .project-card{background:#fffc;border-color:#0000001a}.project-media{flex:0 0 45%;min-width:0;position:relative}.project-content-col{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1rem;padding-top:.5rem}.project-preview{width:100%;height:auto!important;min-height:300px;max-height:650px!important;background:transparent;border-radius:12px;overflow:hidden;position:relative;box-shadow:0 20px 40px #0006;display:flex;align-items:center;justify-content:center;margin:0;transition:transform .3s ease,box-shadow .3s ease;border:1px solid rgba(255,255,255,.1)}.project-card:hover .project-preview{transform:translateY(-8px);box-shadow:0 30px 60px #00c8ff26;border-color:#00ffff4d}.preview-video,.preview-image{width:100%!important;height:100%!important;object-fit:contain!important;max-height:650px;background:#000}.project-title{font-size:2.2rem;margin-bottom:.5rem;font-weight:700;background:linear-gradient(90deg,#fff,#ccc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}body.light-mode .project-title{background:linear-gradient(90deg,#222,#444);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.project-description{font-size:1rem;line-height:1.7;opacity:.9;color:var(--text-primary)}.project-tech{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1.5rem}.tech-tag{padding:.4rem .8rem;font-size:.85rem;border-radius:4px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#0ff}body.light-mode .tech-tag{background:#0000000d;border-color:#0000001a;color:#007a4d}.project-footer{margin-top:auto;padding-top:1rem}.project-status{display:inline-block;padding:.3rem .8rem;border-radius:20px;font-size:.8rem;background:#00ff001a;color:#0f0;border:1px solid rgba(0,255,0,.2)}@media (max-width: 900px){.project-card{flex-direction:column;gap:2rem;padding:1.5rem}.project-media{width:100%;flex:none}.project-preview{max-height:500px;min-height:auto}.project-content-col{width:100%}}.animate-fade-in{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.terminal-bot{--bot-accent: #3dffb8;--bot-shell-hi: #c9d1dc;--bot-shell-lo: #6b7482;--bot-edge: color-mix(in srgb, var(--bot-accent) 55%, rgba(255, 255, 255, .35));--bot-visor: #04070a;--look-x: 0px;--look-y: 0px;--bot-tilt: 0deg;position:absolute;left:0;top:0;z-index:50;will-change:transform;display:flex;flex-direction:column;align-items:center;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none}body.light-mode .terminal-bot{--bot-shell-hi: #ffffff;--bot-shell-lo: #d3d8df;--bot-edge: rgba(0, 0, 0, .14)}.terminal-bot.dragging{cursor:grabbing}.bot-float{animation:botHover 3.2s ease-in-out infinite}.bot-character{transform:rotate(var(--bot-tilt, 0deg));transition:filter .3s ease;filter:drop-shadow(0 0 1px color-mix(in srgb,var(--bot-accent) 70%,transparent)) drop-shadow(0 0 12px color-mix(in srgb,var(--bot-accent) 45%,transparent)) drop-shadow(0 10px 14px rgba(0,0,0,.6))}body.light-mode .bot-character{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--bot-accent) 45%,transparent)) drop-shadow(0 10px 12px rgba(40,40,60,.22))}.terminal-bot:hover .bot-character{filter:drop-shadow(0 0 1px color-mix(in srgb,var(--bot-accent) 80%,transparent)) drop-shadow(0 0 18px color-mix(in srgb,var(--bot-accent) 65%,transparent)) drop-shadow(0 10px 14px rgba(0,0,0,.6))}.terminal-bot.dragging .bot-float{animation:none}.terminal-bot.dragging .bot-character{animation:botSwing .6s ease-in-out infinite}.terminal-bot.dancing .bot-character{animation:botDance .55s ease-in-out infinite}.terminal-bot.exploding .bot-character{animation:botPop 2.2s ease-in-out forwards}.bot-svg{display:block;overflow:visible}.bot-shell-hi{stop-color:var(--bot-shell-hi)}.bot-shell-lo{stop-color:var(--bot-shell-lo)}.bot-shell{stroke:var(--bot-edge);stroke-width:1}.bot-ear,.bot-neck{fill:var(--bot-shell-lo);stroke:var(--bot-edge);stroke-width:.6}.bot-arm{stroke:var(--bot-edge);stroke-width:.6;transform-box:fill-box;transform-origin:50% 12%}.bot-visor{fill:var(--bot-visor);stroke:color-mix(in srgb,var(--bot-accent) 35%,transparent);stroke-width:.8}.bot-visor-glare{fill:none;stroke:#ffffff38;stroke-width:1.6;stroke-linecap:round}.bot-antenna{stroke:var(--bot-shell-lo);stroke-width:2;stroke-linecap:round}.bot-antenna-tip{fill:var(--bot-accent);filter:drop-shadow(0 0 3px var(--bot-accent));animation:botPulse 2.4s ease-in-out infinite}.bot-core{fill:var(--bot-accent);filter:drop-shadow(0 0 2.5px var(--bot-accent));animation:botPulse 2.4s ease-in-out infinite .6s}.bot-thrust{transform-box:fill-box;transform-origin:50% 0%;animation:botThrust .18s ease-in-out infinite alternate;opacity:.55}.terminal-bot[data-running="1"] .bot-thrust{opacity:1;animation-name:botThrustHard}.bot-face{transition:transform .12s linear}.bot-look{transform:translate(var(--look-x),var(--look-y))}.bot-fill{fill:var(--bot-accent);filter:drop-shadow(0 0 2px var(--bot-accent))}.bot-stroke{fill:none;stroke:var(--bot-accent);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px var(--bot-accent))}.bot-stroke.thin{stroke-width:1.8}.bot-blush{fill:var(--bot-accent);opacity:.28}.bot-blink{transform-box:fill-box;transform-origin:center;animation:botBlink 4.6s infinite}.bot-spin{stroke-dasharray:16 9;transform-box:fill-box;transform-origin:center;animation:botSpin .9s linear infinite}.terminal-bot.dancing .bot-arm-l{animation:botWaveL .55s ease-in-out infinite}.terminal-bot.dancing .bot-arm-r{animation:botWaveR .55s ease-in-out infinite}.terminal-bot.dragging .bot-arm-l{transform:rotate(35deg)}.terminal-bot.dragging .bot-arm-r{transform:rotate(-35deg)}.bot-bubble{position:absolute;bottom:calc(100% + 6px);left:18px;width:max-content;max-width:240px;padding:.55rem .75rem;border-radius:12px 12px 12px 3px;background:#080c0ec7;-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);border:1px solid color-mix(in srgb,var(--bot-accent) 45%,transparent);box-shadow:0 0 0 1px #ffffff08 inset,0 8px 24px #00000073,0 0 18px color-mix(in srgb,var(--bot-accent) 18%,transparent);color:#e9f3f0;font-family:Fira Code,monospace;font-size:.74rem;line-height:1.45;white-space:normal;pointer-events:none;transform-origin:0% 100%;animation:botBubbleIn .35s cubic-bezier(.2,1.3,.4,1) both}.terminal-bot[data-side=left] .bot-bubble{left:auto;right:18px;border-radius:12px 12px 3px;transform-origin:100% 100%}body.light-mode .bot-bubble{background:#ffffffd1;color:#1b1f24;box-shadow:0 8px 24px #1e1e3224,0 0 14px color-mix(in srgb,var(--bot-accent) 22%,transparent)}.bot-bubble-prompt{color:var(--bot-accent);margin-right:.35rem;font-weight:700}.bot-bubble-caret{display:inline-block;width:.45em;height:1em;margin-left:2px;vertical-align:-.15em;background:var(--bot-accent);animation:botCaret .7s steps(1) infinite}.terminal-bot .bot-particle{position:absolute;left:50%;top:45%;font-family:Fira Code,monospace;font-size:.8rem;font-weight:700;pointer-events:none;text-shadow:0 0 6px currentColor;animation:botShard 2s cubic-bezier(.1,.8,.3,1) forwards}@keyframes botHover{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes botPulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes botThrust{0%{transform:scaleY(.85) scaleX(.95)}to{transform:scaleY(1.15) scaleX(1.05)}}@keyframes botThrustHard{0%{transform:scaleY(1.35)}to{transform:scaleY(1.75)}}@keyframes botBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes botSpin{to{transform:rotate(360deg)}}@keyframes botDance{0%,to{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(10deg) translateY(-7px)}}@keyframes botSwing{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}@keyframes botWaveL{0%,to{transform:rotate(20deg)}50%{transform:rotate(150deg)}}@keyframes botWaveR{0%,to{transform:rotate(-150deg)}50%{transform:rotate(-20deg)}}@keyframes botPop{0%{transform:scale(1);opacity:1}8%{transform:scale(1.25);opacity:1}14%{transform:scale(.2);opacity:0}80%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes botShard{0%{opacity:1;transform:translate(-50%,-50%) scale(1.4)}60%{opacity:.9}to{opacity:0;transform:translate(calc(-50% + var(--px) * 1.6),calc(-50% + var(--py) * 1.6)) rotate(200deg) scale(.6)}}@keyframes botBubbleIn{0%{opacity:0;transform:scale(.6) translateY(6px)}to{opacity:1;transform:none}}@keyframes botCaret{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.bot-float,.bot-thrust,.bot-antenna-tip,.bot-core,.bot-spin,.terminal-bot .bot-character{animation:none}}.about-container{width:100%;max-width:1000px;margin:0 auto;padding:2rem;height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--text-accent) transparent;justify-content:flex-start;align-items:stretch}.about-container::-webkit-scrollbar{width:6px}.about-container::-webkit-scrollbar-track{background:transparent}.about-container::-webkit-scrollbar-thumb{background-color:var(--text-accent);border-radius:3px}.about-wrapper{display:flex;flex-direction:column;gap:3rem;padding-bottom:4rem;width:100%}.about-header{display:flex;gap:2rem;align-items:center;flex-wrap:wrap}.ascii-face pre{font-size:.8rem;color:var(--text-accent);line-height:1.2;font-weight:700}.header-info h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--text-primary)}.header-info .subtitle{font-size:1.2rem;color:var(--text-accent);margin-bottom:1rem;opacity:.9}.meta-info{display:flex;gap:1.5rem;font-size:.9rem;opacity:.8}.divider{border:0;height:1px;background:#ffffff2e;width:100%}body.light-mode .divider{background:#0000002e}.section-title{font-family:Fira Code,monospace;font-size:1.3rem;color:var(--text-primary);margin-bottom:1.5rem;background:#ffffff0d;padding:.5rem 1rem;border-radius:4px;display:block}body.light-mode .section-title{background:#0000000f}.prompt{color:var(--text-accent);margin-right:.8rem}.section-content p{line-height:1.7;margin-bottom:1rem;font-size:1.05rem;color:#ffffffe6;max-width:800px}body.light-mode .section-content p{color:var(--text-dark)}.timeline{border-left:2px solid rgba(255,255,255,.25);padding-left:2rem;margin-left:1rem}body.light-mode .timeline{border-left-color:#0003}.timeline-item{position:relative;margin-bottom:2rem}.timeline-marker{position:absolute;left:-2.4rem;top:5px;width:12px;height:12px;background:var(--text-accent);border-radius:50%;box-shadow:0 0 10px var(--text-accent)}.timeline-title{font-size:1.2rem;color:var(--text-primary);margin-bottom:.3rem}.timeline-date{font-family:Fira Code,monospace;font-size:.85rem;color:var(--text-accent);margin-bottom:.8rem}.timeline-desc{opacity:.8;line-height:1.5}.skills-layout-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.skill-category-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);padding:1.2rem;border-radius:8px;transition:transform .2s ease,border-color .2s ease}body.light-mode .skill-category-card{background:#0000000a;border-color:#0000001f}.skill-category-card:hover{transform:translateY(-3px);border-color:#ffffff40}body.light-mode .skill-category-card:hover{border-color:#00000038}.category-header{font-family:Fira Code,monospace;font-size:1rem;color:var(--text-accent);margin-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:.5rem}body.light-mode .category-header{border-bottom-color:#0000001f}.skill-tags{display:flex;flex-wrap:wrap;gap:.6rem}.skill-badge{background:#ffffff14;padding:.4rem .8rem;border-radius:4px;font-size:.9rem;display:flex;align-items:center;gap:.5rem;transition:background .2s}body.light-mode .skill-badge{background:#0000000f}.skill-badge:hover{background:#ffffff26}body.light-mode .skill-badge:hover{background:#0000001f}.skill-icon{width:16px;height:16px;object-fit:contain}.security-badges{display:flex;gap:1.5rem;flex-wrap:wrap}.security-item{display:flex;align-items:center;gap:.8rem;background:linear-gradient(90deg,rgba(0,200,100,.12),transparent);padding:.8rem 1.2rem;border-radius:6px;border-left:3px solid #00cc66}body.light-mode .security-item{background:linear-gradient(90deg,rgba(0,130,60,.1),transparent);border-left-color:#007a38}.sec-icon{font-size:1.2rem}@media (max-width: 768px){.about-container{padding:1.2rem}.about-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-info h1{font-size:1.8rem}.section-title{font-size:1.1rem}.skills-layout-grid{grid-template-columns:1fr}.timeline{padding-left:1.5rem}.timeline-marker{left:-1.9rem}.security-badges{flex-direction:column}}.page-outlet{position:absolute;inset:0}.page-outlet.is-contained{bottom:var(--nav-space, 72px);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 14px),transparent)}.page-outlet.is-contained>.page{min-height:0}.page-outlet.is-contained .about-content,.page-outlet.is-contained .links-container,.page-outlet.is-contained .projects-grid{max-height:none;min-height:0;flex:0 1 auto}.page.active{animation:pageEnter .45s cubic-bezier(.22,1,.36,1)}@keyframes pageEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}body.light-mode{background:#f8f8f6!important;--bg-body: #f8f8f6;--bg-terminal: #ffffff;--text-primary: #0a0a0a;--text-accent: #525252;--text-dark: #0a0a0a}body.light-mode .terminal{background:#fff!important;border:1px solid rgba(0,0,0,.09)!important;box-shadow:0 8px 48px #0000001a!important}body.light-mode .terminal-header{background:#f0f0ee!important;border-bottom:1px solid rgba(0,0,0,.08)!important}body.light-mode .terminal-header .title{color:#0a0a0a!important}body.light-mode .terminal-content{background:#fafaf8!important}body.light-mode .terminal-header .window-buttons .wb-close{background:#ff5f56!important;border-color:#e0443e!important}body.light-mode .terminal-header .window-buttons .wb-minimise{background:#ffbd2e!important;border-color:#dea123!important}body.light-mode .terminal-header .window-buttons .wb-maximise{background:#27c93f!important;border-color:#1aab29!important}body.light-mode .nav{background:#f0f0eef5!important;border:1px solid rgba(0,0,0,.09)!important}body.light-mode .nav a{color:#525252!important}body.light-mode .nav a.active,body.light-mode .nav a:hover{color:#0f6e56!important;background:#0f6e5614!important}body.light-mode .nav a:first-child{background:transparent!important}body.light-mode .nav a:first-child:hover{color:#0f6e56!important;background:#0f6e5614!important}body.light-mode .prompt-prefix,body.light-mode .alert-link{color:#0f6e56!important}body.light-mode .ascii-art{color:#0a0a0a!important}#home{justify-content:center;align-items:center;overflow:visible}.home-content{display:flex;flex-direction:column;align-items:center;gap:.6rem;position:relative;z-index:1;max-width:100%;padding-bottom:1rem}.hero-ctas{display:flex;gap:.8rem;margin-top:.4rem;flex-wrap:wrap;justify-content:center}.cta-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem 1rem;font-family:Fira Code,monospace;font-size:.88rem;text-decoration:none;border:1px solid rgba(255,255,255,.22);border-radius:3px;transition:all .2s ease;cursor:pointer;letter-spacing:.2px}.cta-secondary{color:var(--text-accent);background:#ffffff08}.cta-secondary:hover{color:var(--text-primary);border-color:#ffffff73;background:#ffffff12}.cta-primary{color:#0ff;border-color:#00ffff59;background:#00ffff0a}.cta-primary:hover{background:#00ffff1a;border-color:#0ff;box-shadow:0 0 20px #00ffff2e}body.light-mode .cta-secondary{color:#525252;border-color:#0000002e;background:#00000005}body.light-mode .cta-secondary:hover{color:#0a0a0a;border-color:#00000059}body.light-mode .cta-primary{color:#0f6e56;border-color:#0f6e5659;background:#0f6e560a}body.light-mode .cta-primary:hover{background:#0f6e561a;border-color:#0f6e56;box-shadow:0 0 16px #0f6e562e}.cta-bracket{opacity:.55;transition:opacity .15s,transform .15s}.cta-btn:hover .cta-bracket:first-child{transform:translate(-2px);opacity:1}.cta-btn:hover .cta-bracket:last-child{transform:translate(2px);opacity:1}.cta-arrow{transition:transform .15s}.cta-btn:hover .cta-arrow{transform:translate(3px)}.availability-alert{display:flex;align-items:center;gap:.7rem;background:#00ffff08;border:1px solid rgba(0,255,255,.18);border-radius:3px;padding:.45rem .75rem;margin-top:.3rem;font-size:.8rem;color:#ffffffb3;max-width:580px;width:100%}body.light-mode .availability-alert{background:#0f6e560a;border-color:#0f6e5633;color:#525252}.alert-text{flex:1;font-family:Fira Code,monospace}.alert-link{color:#0ff;text-decoration:underline;transition:opacity .15s}.alert-link:hover{opacity:.8}.alert-dismiss{background:none;border:none;color:var(--text-accent);cursor:pointer;font-size:1rem;padding:0;line-height:1;opacity:.55;transition:opacity .15s;flex-shrink:0}.alert-dismiss:hover{opacity:1}.availability-badge{position:absolute;bottom:10px;left:14px;display:flex;align-items:center;gap:.45rem;background:#0000008c;border:1px solid rgba(0,220,80,.28);border-radius:20px;padding:.28rem .72rem;font-size:.73rem;color:#ffffffb8;text-decoration:none;font-family:Fira Code,monospace;transition:all .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20}.availability-badge:hover{border-color:#00dc508c;color:#fff;background:#00dc5012}body.light-mode .availability-badge{background:#ffffffb3;border-color:#0f6e5659;color:#0a0a0a}.avail-dot{width:6px;height:6px;border-radius:50%;background:#00e060;box-shadow:0 0 5px #00e060;animation:pulseDot 2s ease-in-out infinite;flex-shrink:0}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.terminal-input-area{position:absolute;bottom:70px;left:14px;right:14px;max-height:180px;max-width:1200px;display:flex;flex-direction:column;font-family:Fira Code,monospace;font-size:.8rem;z-index:15}.terminal-output{overflow-y:auto;max-height:110px;scrollbar-width:thin;scrollbar-color:rgba(0,255,255,.25) transparent;margin-bottom:3px}.output-line{padding:1px 0;line-height:1.5;white-space:pre-wrap;word-break:break-word}.output-prompt{color:#ffffff6b}.output-success{color:#00ffbed1}.output-error{color:#ff4b4be0}.output-info{color:#fff9}body.light-mode .output-prompt{color:#aaa}body.light-mode .output-success{color:#0f6e56}body.light-mode .output-error{color:#c33}body.light-mode .output-info{color:#555}.terminal-prompt-row{display:flex;align-items:center;gap:.4rem;border-top:1px solid rgba(255,255,255,.07);padding-top:4px}body.light-mode .terminal-prompt-row{border-top-color:#00000017}.prompt-prefix{color:#0ff;white-space:nowrap;flex-shrink:0;font-size:.77rem;opacity:.85}.prompt-field{position:relative;flex:1;min-width:0;display:flex;align-items:center;cursor:text}.terminal-prompt-input{position:absolute;inset:0;width:100%;background:none;border:none;outline:none;padding:0;color:transparent;caret-color:transparent;font-family:Fira Code,monospace;font-size:.8rem;letter-spacing:normal;z-index:1}.terminal-prompt-input::selection{background:#00ffff40;color:transparent}.prompt-display{display:block;width:100%;overflow:hidden;white-space:pre;color:var(--text-primary);font-family:Fira Code,monospace;font-size:.8rem;line-height:1.5;pointer-events:none}.prompt-cursor{display:inline-block;min-width:.6em;background:transparent;color:inherit;box-shadow:inset 0 0 0 1px #00ffff8c}.prompt-field.is-focused .prompt-cursor{background:#0ff;color:#001414;box-shadow:0 0 8px #00ffff73;animation:blinkCursor 1.1s steps(1) .5s infinite}body.light-mode .prompt-cursor{box-shadow:inset 0 0 0 1px #0f6e5699}body.light-mode .prompt-field.is-focused .prompt-cursor{background:#0f6e56;color:#fff;box-shadow:none}.terminal-prompt-input:focus,.terminal-prompt-input:focus-visible{outline:none}@media (min-width: 481px){.terminal-input-area{right:150px}}@keyframes blinkCursor{0%,50%{opacity:1}50.01%,to{opacity:.15}}.matrix-rain{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;pointer-events:none}.skeleton-box{opacity:1}.skeleton-line{border-radius:4px;height:14px;margin-bottom:10px;background:linear-gradient(90deg,#00ffff14,#00ffff2e,#00ffff14);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}body.light-mode .skeleton-line{background:linear-gradient(90deg,#0f6e5612,#0f6e5629,#0f6e5612);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{width:55%;height:13px}.skeleton-number{width:38%;height:30px;margin:8px 0}.skeleton-comment{width:75%;height:11px}.not-found-page{justify-content:center!important;align-items:center!important;cursor:text}.not-found-content{max-width:600px;width:100%;font-family:Fira Code,monospace;display:flex;flex-direction:column;align-items:center}.glitch-404{font-size:6rem;font-weight:700;color:var(--text-primary);position:relative;margin-bottom:0;text-shadow:.05em 0 0 rgba(255,0,0,.75),-.025em -.05em 0 rgba(0,255,0,.75),.025em .05em 0 rgba(0,0,255,.75);animation:glitch .5s infinite;letter-spacing:4px}.glitch-404 span{position:absolute;top:0;left:0}.glitch-404:before,.glitch-404:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-404:before{left:2px;text-shadow:-2px 0 red;clip:rect(24px,550px,90px,0);animation:glitch-anim-2 3s infinite linear alternate-reverse}.glitch-404:after{left:-2px;text-shadow:-2px 0 blue;clip:rect(85px,550px,140px,0);animation:glitch-anim 2.5s infinite linear alternate-reverse}@keyframes glitch{0%{text-shadow:.05em 0 0 rgba(255,0,0,.75),-.05em -.025em 0 rgba(0,255,0,.75),-.025em .05em 0 rgba(0,0,255,.75)}14%{text-shadow:.05em 0 0 rgba(255,0,0,.75),-.05em -.025em 0 rgba(0,255,0,.75),-.025em .05em 0 rgba(0,0,255,.75)}15%{text-shadow:-.05em -.025em 0 rgba(255,0,0,.75),.025em .025em 0 rgba(0,255,0,.75),-.05em -.05em 0 rgba(0,0,255,.75)}49%{text-shadow:-.05em -.025em 0 rgba(255,0,0,.75),.025em .025em 0 rgba(0,255,0,.75),-.05em -.05em 0 rgba(0,0,255,.75)}50%{text-shadow:.025em .05em 0 rgba(255,0,0,.75),.05em 0 0 rgba(0,255,0,.75),0 -.05em 0 rgba(0,0,255,.75)}99%{text-shadow:.025em .05em 0 rgba(255,0,0,.75),.05em 0 0 rgba(0,255,0,.75),0 -.05em 0 rgba(0,0,255,.75)}to{text-shadow:-.025em 0 0 rgba(255,0,0,.75),-.025em -.025em 0 rgba(0,255,0,.75),-.025em -.05em 0 rgba(0,0,255,.75)}}@keyframes glitch-anim{0%{clip:rect(74px,9999px,86px,0)}20%{clip:rect(31px,9999px,46px,0)}40%{clip:rect(104px,9999px,5px,0)}60%{clip:rect(18px,9999px,98px,0)}80%{clip:rect(58px,9999px,52px,0)}to{clip:rect(122px,9999px,35px,0)}}@keyframes glitch-anim-2{0%{clip:rect(126px,9999px,60px,0)}20%{clip:rect(100px,9999px,78px,0)}40%{clip:rect(8px,9999px,20px,0)}60%{clip:rect(50px,9999px,95px,0)}80%{clip:rect(138px,9999px,120px,0)}to{clip:rect(32px,9999px,10px,0)}}.not-found-subtitle{color:var(--text-accent);margin-bottom:2rem;letter-spacing:2px}.not-found-interactive-terminal{width:100%;background:#00000080;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:1.5rem;margin-bottom:2rem;text-align:left;box-shadow:inset 0 0 10px #000c;min-height:200px;max-height:300px;overflow-y:auto;position:relative;scrollbar-width:thin;scrollbar-color:rgba(0,255,255,.5) rgba(0,0,0,.2)}.not-found-interactive-terminal::-webkit-scrollbar{width:6px}.not-found-interactive-terminal::-webkit-scrollbar-track{background:#0003}.not-found-interactive-terminal::-webkit-scrollbar-thumb{background:#00ffff80;border-radius:3px}.terminal-history{margin-bottom:.5rem}.history-line{margin-bottom:.3rem;word-break:break-all;line-height:1.5}.history-line.error{color:#ff5050e6}.history-line.info{color:#0ff}.history-line.input{color:var(--text-primary)}body.light-mode .history-line.error{color:#c33}body.light-mode .history-line.info{color:#05c}.terminal-input-line{display:flex;align-items:center;position:relative;width:100%;flex-wrap:wrap}.typed-text{white-space:pre-wrap;word-break:break-all}.hidden-input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;cursor:text;z-index:10}.cursor-blink{animation:blink 1s step-end infinite;color:#0ff;margin-left:2px}body.light-mode .cursor-blink{color:#05c}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.not-found-quick-links{text-align:center}.links-title{color:var(--text-accent);margin-bottom:1rem;font-size:.9rem}.not-found-paths{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.not-found-paths a{color:var(--text-accent);text-decoration:none;transition:all .2s;font-size:1rem}.not-found-paths a:hover{color:#0ff;text-shadow:0 0 8px rgba(0,255,255,.4)}body.light-mode .not-found-paths a:hover{color:#05c;text-shadow:none}body.matrix-mode{background:#000!important}body.matrix-mode .terminal{background:#001400cc;border-color:#0f0;box-shadow:0 0 20px #0f03}body.matrix-mode *{color:#0f0!important;text-shadow:0 0 5px rgba(0,255,0,.5)}body.matrix-mode .history-line.error{color:red!important;text-shadow:0 0 5px rgba(255,0,0,.5)}body.matrix-mode .prompt,body.matrix-mode .cursor-blink{color:#fff!important;text-shadow:0 0 5px rgba(255,255,255,.5)}.terminal-header .window-buttons span{cursor:pointer}@keyframes terminalShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.terminal.terminal-shake{animation:terminalShake .5s ease}@keyframes terminalMinimise{0%{transform:scale(1)}35%{transform:scale(.6) translateY(10%)}60%{transform:scale(.65) translateY(8%)}to{transform:scale(1)}}.terminal.minimised{animation:terminalMinimise .7s cubic-bezier(.34,1.56,.64,1)}.terminal-flash{position:absolute;inset:0;background:#00ffff12;z-index:9998;pointer-events:none;animation:flashFade .4s ease forwards}@keyframes flashFade{0%{opacity:1}to{opacity:0}}.currently-learning{display:flex;flex-direction:column;gap:.7rem}.learning-item{display:flex;align-items:flex-start;gap:.8rem;padding:.65rem 1rem;background:#ffffff08;border-radius:5px;border-left:3px solid rgba(0,255,255,.25);font-size:.93rem;line-height:1.5;color:#ffffffc7}body.light-mode .learning-item{background:#00000005;border-left-color:#0f6e5659;color:#3a3a3a}.learning-icon{font-size:1.05rem;flex-shrink:0;margin-top:2px}.divider{position:relative;border:none;height:1px;margin:1.5rem 0;overflow:visible}.divider:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:1px;background:#ffffff2e;animation:dividerGrow .5s ease-out .1s forwards}body.light-mode .divider:before{background:#0000001f}@keyframes dividerGrow{to{width:100%}}.divider:after{content:"";position:absolute;top:-3px;left:50%;transform:translate(-50%);width:7px;height:7px;border-radius:50%;background:#00ffff73;animation:dotPulse 2.2s ease-in-out .6s infinite}body.light-mode .divider:after{background:#0f6e5673}@keyframes dotPulse{0%,to{opacity:.45;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.35)}}.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1)}.reveal.revealed{opacity:1;transform:none}:focus-visible{outline:2px solid #00ffff;outline-offset:2px;border-radius:2px}body.light-mode :focus-visible{outline-color:#0f6e56}.skip-to-content{position:absolute;top:-100px;left:8px;z-index:9999;background:#0ff;color:#000;padding:4px 12px;border-radius:4px;font-size:.9rem;text-decoration:none;font-family:Fira Code,monospace;transition:top .2s}.skip-to-content:focus{top:8px}.nav-external{display:inline-flex!important;align-items:center}@media (max-width: 768px){.hero-ctas{gap:.5rem}.cta-btn{font-size:.78rem;padding:.38rem .65rem}.availability-badge{font-size:.66rem;padding:.22rem .55rem;bottom:42px}.terminal-input-area{font-size:.74rem;bottom:42px}.home-content{gap:.5rem}.availability-alert{font-size:.75rem}}@media (prefers-reduced-motion: reduce){.page.active,.avail-dot,.skeleton-line{animation:none!important}.divider:before{animation:none!important;width:100%}.divider:after{animation:none!important}.terminal-bot .advanced{animation:none!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}}.project-detail-page{overflow-y:auto;padding:0;justify-content:flex-start;align-items:stretch}.project-detail-inner{max-width:960px;margin:0 auto;padding:1rem 1.25rem 3rem}.project-detail-back{background:none;border:none;color:#00ffffb3;font-family:Fira Code,monospace;font-size:.82rem;cursor:pointer;padding:.3rem 0;margin-bottom:1.2rem;display:inline-flex;align-items:center;gap:.4rem;transition:color .2s}.project-detail-back:hover{color:#0ff}body.light-mode .project-detail-back{color:#0f6e56b3}body.light-mode .project-detail-back:hover{color:#0f6e56}.project-detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2.5rem}@media (max-width: 700px){.project-detail-hero{grid-template-columns:1fr}}.project-detail-media{border-radius:6px;overflow:hidden;border:1px solid rgba(0,255,255,.15);aspect-ratio:16/9;background:#0a0a0a}body.light-mode .project-detail-media{border-color:#0f6e5633;background:#f0f0ee}.detail-video{width:100%;height:100%;object-fit:cover;display:block}.project-detail-hero-info{display:flex;flex-direction:column;gap:.6rem}.project-detail-status{font-size:.72rem;color:#0f0;font-family:Fira Code,monospace;text-transform:uppercase;letter-spacing:.08em}body.light-mode .project-detail-status{color:#0f6e56}.project-detail-title{font-size:1.25rem;font-family:Fira Code,monospace;color:#0ff;margin:0;line-height:1.3}body.light-mode .project-detail-title{color:#0a3a2e}.project-detail-tagline{font-size:.85rem;color:#ffffffb8;margin:0;line-height:1.5}body.light-mode .project-detail-tagline{color:#0a0a0aa6}.project-detail-meta{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:#ffffff80;font-family:Fira Code,monospace}body.light-mode .project-detail-meta{color:#0a0a0a73}.meta-label{color:#0ff9;margin-right:.25rem}body.light-mode .meta-label{color:#0f6e56b3}.project-detail-links{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.4rem}.detail-link{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:4px;font-family:Fira Code,monospace;font-size:.78rem;text-decoration:none;transition:opacity .2s}.detail-link:hover{opacity:.75}.detail-link-live{border:1px solid rgba(0,255,255,.45);color:#0ff}body.light-mode .detail-link-live{border-color:#0f6e5673;color:#0f6e56}.case-study-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem}@media (max-width: 700px){.case-study-grid{grid-template-columns:1fr}}.case-section{border:1px solid rgba(0,255,255,.12);border-radius:6px;padding:1rem 1.1rem 1.1rem;background:#00ffff06}body.light-mode .case-section{border-color:#0f6e5626;background:#0f6e5608}.case-impact{grid-column:1 / -1}.project-gallery{grid-column:1 / -1;margin-top:.5rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:1rem}.gallery-item{width:100%;height:220px;border-radius:6px;overflow:hidden;border:1px solid rgba(0,255,255,.15);background:#00ffff05;display:flex;justify-content:center;align-items:center}body.light-mode .gallery-item{border-color:#0f6e5633;background:#0f6e5608}.gallery-item video,.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-item:hover video,.gallery-item:hover img{transform:scale(1.03)}.case-label{font-size:.68rem;font-family:Fira Code,monospace;color:#00ffff80;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem}body.light-mode .case-label{color:#0f6e5699}.case-title{font-size:.95rem;font-family:Fira Code,monospace;color:#e0e0e0;margin:0 0 .6rem}body.light-mode .case-title{color:#1a1a1a}.case-body{font-size:.82rem;color:#ffffffa6;line-height:1.65;margin:0}body.light-mode .case-body{color:#0a0a0a9e}.impact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}.impact-item{display:flex;gap:.6rem;font-size:.82rem;color:#ffffffb3;line-height:1.5}body.light-mode .impact-item{color:#0a0a0aa6}.impact-dot{color:#0f0;flex-shrink:0;font-size:.72rem;margin-top:.18rem}body.light-mode .impact-dot{color:#0f6e56}.project-nav-footer{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(0,255,255,.1);padding-top:1.25rem}body.light-mode .project-nav-footer{border-color:#0f6e561f}.project-nav-btn{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;padding:.5rem .75rem;border:1px solid rgba(0,255,255,.15);border-radius:5px;transition:border-color .2s,background .2s;max-width:45%}.project-nav-btn:hover{border-color:#00ffff73;background:#00ffff0a}body.light-mode .project-nav-btn{border-color:#0f6e5626}body.light-mode .project-nav-btn:hover{border-color:#0f6e5673;background:#0f6e560a}.project-nav-next{align-items:flex-end;text-align:right}.nav-dir{font-size:.7rem;font-family:Fira Code,monospace;color:#00ffff80}body.light-mode .nav-dir{color:#0f6e5699}.nav-title{font-size:.8rem;font-family:Fira Code,monospace;color:#e0e0e0}body.light-mode .nav-title{color:#1a1a1a}.projects-filter-bar{padding:.65rem 1rem .5rem;display:flex;flex-direction:column;gap:.5rem;border-bottom:1px solid rgba(0,255,255,.08)}body.light-mode .projects-filter-bar{border-color:#0f6e561a}.projects-search{background:transparent;border:1px solid rgba(0,255,255,.2);border-radius:4px;color:#e0e0e0;font-family:Fira Code,monospace;font-size:.8rem;padding:.35rem .65rem;outline:none;width:100%;max-width:320px;transition:border-color .2s}.projects-search::placeholder{color:#ffffff4d}.projects-search:focus{border-color:#00ffff8c}body.light-mode .projects-search{border-color:#0f6e5640;color:#1a1a1a}body.light-mode .projects-search::placeholder{color:#0a0a0a4d}body.light-mode .projects-search:focus{border-color:#0f6e5699}.tech-filter-chips{display:flex;flex-wrap:wrap;gap:.35rem}.tech-chip{background:transparent;border:1px solid rgba(0,255,255,.2);color:#ffffff8c;font-family:Fira Code,monospace;font-size:.7rem;padding:.2rem .55rem;border-radius:3px;cursor:pointer;transition:all .15s}.tech-chip:hover{border-color:#00ffff80;color:#0ff}.tech-chip.active{background:#00ffff1f;border-color:#0ff;color:#0ff}.tech-chip-clear{border-color:#ff505066;color:#ff5050b3}.tech-chip-clear:hover{border-color:#ff5050;color:#ff5050}body.light-mode .tech-chip{border-color:#0f6e5633;color:#0a0a0a80}body.light-mode .tech-chip:hover{border-color:#0f6e5699;color:#0f6e56}body.light-mode .tech-chip.active{background:#0f6e561a;border-color:#0f6e56;color:#0f6e56}.projects-empty{padding:2rem 1rem;font-family:Fira Code,monospace;font-size:.82rem}.project-tagline{font-size:.78rem;color:#ffffff8c;margin-top:.15rem;line-height:1.4;font-style:italic}body.light-mode .project-tagline{color:#0a0a0a80}.project-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.case-study-btn{display:inline-flex;align-items:center;padding:.28rem .6rem;border:1px solid rgba(0,255,255,.35);border-radius:4px;color:#0ff;font-family:Fira Code,monospace;font-size:.75rem;text-decoration:none;transition:background .2s,border-color .2s}.case-study-btn:hover{background:#00ffff14;border-color:#00ffffb3}body.light-mode .case-study-btn{border-color:#0f6e5666;color:#0f6e56}body.light-mode .case-study-btn:hover{background:#0f6e560f;border-color:#0f6e56bf}.open-to-work-banner{display:flex;align-items:center;gap:.65rem;border:1px solid rgba(0,255,0,.3);border-radius:6px;background:#00ff000a;padding:.65rem 1rem;margin-bottom:1rem;font-family:Fira Code,monospace;font-size:.8rem;color:#fffc}body.light-mode .open-to-work-banner{border-color:#008c004d;background:#008c000a;color:#0a0a0abf}.otw-dot{width:9px;height:9px;border-radius:50%;background:#0f0;flex-shrink:0;box-shadow:0 0 6px #0f0;animation:pulse 2s ease-in-out infinite}body.light-mode .otw-dot{background:#0f6e56;box-shadow:0 0 6px #0f6e5699}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.25)}}.contact-form{display:flex;flex-direction:column;gap:.85rem;max-width:520px}.form-row{display:flex;flex-direction:column;gap:.3rem}.form-label{font-family:Fira Code,monospace;font-size:.76rem;color:#00ffffb3;display:flex;align-items:center;gap:.35rem}body.light-mode .form-label{color:#0f6e56cc}.form-prompt{color:#0f0}body.light-mode .form-prompt{color:#0f6e56}.form-input{background:#00ffff08;border:1px solid rgba(0,255,255,.18);border-radius:4px;color:#e0e0e0;font-family:Fira Code,monospace;font-size:.82rem;padding:.45rem .7rem;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}.form-input::placeholder{color:#ffffff40}.form-input:focus{border-color:#00ffff8c;background:#00ffff0d}body.light-mode .form-input{background:#0f6e5605;border-color:#0f6e5638;color:#1a1a1a}body.light-mode .form-input::placeholder{color:#0a0a0a47}body.light-mode .form-input:focus{border-color:#0f6e568c;background:#0f6e560a}.form-textarea{resize:vertical;min-height:90px}.form-submit{align-self:flex-start;background:transparent;border:1px solid rgba(0,255,255,.45);color:#0ff;font-family:Fira Code,monospace;font-size:.82rem;padding:.45rem 1rem;cursor:pointer;border-radius:4px;transition:background .2s,border-color .2s}.form-submit:hover:not(:disabled){background:#00ffff14;border-color:#0ff}.form-submit:disabled{opacity:.55;cursor:default}body.light-mode .form-submit{border-color:#0f6e5680;color:#0f6e56}body.light-mode .form-submit:hover:not(:disabled){background:#0f6e5612;border-color:#0f6e56}.form-error{font-family:Fira Code,monospace;font-size:.76rem;color:#f55}.contact-form-success{display:flex;align-items:center;gap:.65rem;border:1px solid rgba(0,255,0,.35);border-radius:5px;background:#00ff000a;padding:.75rem 1rem;font-family:Fira Code,monospace;font-size:.82rem;color:#0f0;max-width:520px}body.light-mode .contact-form-success{border-color:#0f6e5659;color:#0f6e56}.success-icon{font-size:1.1rem;flex-shrink:0}@media (pointer: fine){.cursor-dot{position:fixed;top:-3px;left:-3px;width:6px;height:6px;border-radius:50%;background:#0ff;pointer-events:none;z-index:99999;will-change:transform;transition:opacity .2s}.cursor-ring{position:fixed;top:-16px;left:-16px;width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(0,255,255,.55);pointer-events:none;z-index:99998;will-change:transform;transition:width .2s,height .2s,top .2s,left .2s,border-color .2s}.cursor-dot.cursor-hover{background:#fff;opacity:0}.cursor-ring.cursor-hover{width:48px;height:48px;top:-24px;left:-24px;border-color:#00ffffd9;background:#00ffff0f}body.light-mode .cursor-dot{background:#0f6e56}body.light-mode .cursor-ring{border-color:#0f6e568c}body.light-mode .cursor-ring.cursor-hover{border-color:#0f6e56d9;background:#0f6e560d}}.gh-activity-list{display:flex;flex-direction:column;gap:.35rem;padding:.5rem 0}.gh-activity-error{padding:1rem;font-family:Fira Code,monospace;font-size:.8rem}.gh-event-row{display:flex;align-items:center;gap:.7rem;padding:.5rem .75rem;border-radius:5px;border:1px solid transparent;text-decoration:none;transition:border-color .15s,background .15s}.gh-event-row:hover{border-color:#00ffff2e;background:#00ffff08}body.light-mode .gh-event-row:hover{border-color:#0f6e562e;background:#0f6e5608}.gh-event-icon{font-family:Fira Code,monospace;font-size:.85rem;color:#0f0;min-width:1.2rem;text-align:center}body.light-mode .gh-event-icon{color:#0f6e56}.gh-event-text{flex:1;font-family:Fira Code,monospace;font-size:.78rem;color:#ffffffb8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.light-mode .gh-event-text{color:#0a0a0aa6}.gh-event-time{font-family:Fira Code,monospace;font-size:.7rem;color:#ffffff59;flex-shrink:0}body.light-mode .gh-event-time{color:#0a0a0a59}.hackathon-badge{cursor:pointer;position:relative;transition:transform .2s,text-shadow .2s}.hackathon-badge:hover{transform:scale(1.04);text-shadow:0 0 12px rgba(255,215,0,.6)}.magnetic{display:inline-block;transition:transform .3s cubic-bezier(.22,1,.36,1)}.ascii-face pre{transition:color .3s}@media (prefers-reduced-motion: reduce){.cursor-dot,.cursor-ring{display:none!important}.hackathon-badge:hover{transform:none}}.boot-loader{position:fixed;inset:0;background:#0a0a0a;display:flex;align-items:center;justify-content:center;z-index:99999;transition:opacity .5s ease}.boot-fading{opacity:0;pointer-events:none}.boot-lines{font-family:Fira Code,monospace;font-size:.82rem;color:#0f0;line-height:1.75;max-width:560px;width:90%}.boot-line{opacity:0;animation:bootLineIn .15s ease forwards}@keyframes bootLineIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}.boot-special{color:#0ff;font-weight:700;margin-top:.5rem}.boot-cursor{display:inline-block;width:8px;height:14px;background:#0f0;vertical-align:middle;animation:blink .8s step-end infinite}.sudo-flash{position:fixed;bottom:3rem;left:50%;transform:translate(-50%);background:#001400eb;border:1px solid #00ff00;color:#0f0;font-family:Fira Code,monospace;font-size:.8rem;padding:.4rem 1.1rem;border-radius:4px;z-index:99990;animation:sudoIn .3s ease,sudoOut .5s ease 1.3s forwards;pointer-events:none}@keyframes sudoIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes sudoOut{to{opacity:0;transform:translate(-50%) translateY(-8px)}}@media (prefers-reduced-motion: reduce){.boot-loader{transition:none}.boot-line,.boot-cursor{animation:none;opacity:1}}.resume-view-page{min-height:100vh;background:#0a0a0a;padding:1.5rem 1rem 3rem;font-family:Fira Code,monospace}body.light-mode .resume-view-page{background:#f8f8f6}.resume-toolbar{display:flex;justify-content:space-between;align-items:center;max-width:780px;margin:0 auto 1.5rem}.resume-back{color:#00ffffb3;text-decoration:none;font-size:.8rem;transition:color .2s}.resume-back:hover{color:#0ff}body.light-mode .resume-back{color:#0f6e56b3}body.light-mode .resume-back:hover{color:#0f6e56}.resume-print-btn{background:transparent;border:1px solid rgba(0,255,255,.35);color:#0ff;font-family:Fira Code,monospace;font-size:.78rem;padding:.35rem .85rem;border-radius:4px;cursor:pointer;transition:background .2s,border-color .2s}.resume-print-btn:hover{background:#00ffff12;border-color:#0ff}body.light-mode .resume-print-btn{border-color:#0f6e5666;color:#0f6e56}body.light-mode .resume-print-btn:hover{background:#0f6e560f}.resume-document{max-width:780px;margin:0 auto;background:#111;border:1px solid rgba(0,255,255,.1);border-radius:6px;padding:2.5rem 2.5rem 3rem;color:#e0e0e0}body.light-mode .resume-document{background:#fff;border-color:#0f6e561f;color:#1a1a1a}.rv-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.rv-name{font-size:1.6rem;color:#0ff;margin:0 0 .25rem}body.light-mode .rv-name{color:#0a3a2e}.rv-title{font-size:.82rem;color:#ffffffa6;margin:0}body.light-mode .rv-title{color:#0a0a0a99}.rv-contact{display:flex;flex-direction:column;gap:.2rem;text-align:right;font-size:.74rem;color:#ffffff80}body.light-mode .rv-contact{color:#0a0a0a80}.rv-divider{border:none;border-top:1px solid rgba(0,255,255,.15);margin:1rem 0}body.light-mode .rv-divider{border-color:#0f6e562e}.rv-section{margin-bottom:1.5rem}.rv-section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:#0ff;border-bottom:1px solid rgba(0,255,255,.15);padding-bottom:.3rem;margin:0 0 .75rem}body.light-mode .rv-section-title{color:#0f6e56;border-color:#0f6e5626}.rv-body{font-size:.79rem;color:#ffffffb8;line-height:1.65;margin:0}body.light-mode .rv-body{color:#0a0a0aa6}.rv-edu-item{margin-bottom:.5rem}.rv-edu-main{display:flex;justify-content:space-between;font-size:.82rem}.rv-edu-sub{font-size:.76rem;color:#ffffff80;margin-top:.15rem}body.light-mode .rv-edu-sub{color:#0a0a0a73}.rv-date{font-size:.74rem;color:#fff6}body.light-mode .rv-date{color:#0a0a0a66}.rv-project-item{margin-bottom:.85rem}.rv-proj-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.4rem;margin-bottom:.25rem}.rv-proj-header strong{font-size:.82rem}.rv-proj-tech{font-size:.7rem;color:#0ff9}body.light-mode .rv-proj-tech{color:#0f6e56b3}.rv-achievement{margin-bottom:.5rem}.rv-achievement strong{font-size:.82rem;display:block;margin-bottom:.15rem}.rv-skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.rv-skill-cat{font-size:.72rem;color:#00ffffb3;margin-bottom:.25rem}body.light-mode .rv-skill-cat{color:#0f6e56bf}.rv-skill-tags{display:flex;flex-wrap:wrap;gap:.25rem}.rv-skill-tag{font-size:.68rem;background:#00ffff0f;border:1px solid rgba(0,255,255,.15);border-radius:3px;padding:.1rem .4rem;color:#ffffffa6}body.light-mode .rv-skill-tag{background:#0f6e560d;border-color:#0f6e562e;color:#0a0a0a99}.rv-cert-list{margin:0;padding:0 0 0 1rem;list-style:disc;font-size:.79rem;color:#ffffffb8;line-height:1.8}body.light-mode .rv-cert-list{color:#0a0a0aa6}@media print{.no-print{display:none!important}.resume-view-page{background:#fff!important;padding:0}.resume-document{background:#fff!important;border:none!important;border-radius:0!important;padding:0!important;color:#000!important;max-width:100%!important}.rv-name{color:#000!important}.rv-section-title{color:#000!important;border-color:#aaa!important}.rv-proj-tech,.rv-skill-cat{color:#555!important}.rv-skill-tag{background:#f5f5f5!important;border-color:#ddd!important;color:#333!important}.rv-body,.rv-title,.rv-contact,.rv-edu-sub,.rv-cert-list{color:#333!important}.rv-date{color:#666!important}.rv-divider{border-color:#ccc!important}}@keyframes particleFly{0%{opacity:1;transform:translate(0) scale(1.5)}60%{opacity:.8}to{opacity:0}}.bot-particle{-webkit-user-select:none;user-select:none;z-index:55}.heatmap-milestone-box{grid-column:1 / -1!important}.heatmap-wrapper{font-family:Fira Code,monospace;font-size:.7rem}.heatmap-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.35rem}.heatmap-total{color:#fff9;font-size:.74rem}body.light-mode .heatmap-total{color:#0a0a0a8c}.heatmap-legend{display:flex;align-items:center;gap:.25rem;font-size:.68rem;color:#ffffff73}body.light-mode .heatmap-legend{color:#0a0a0a66}.heatmap-legend-cell{width:10px;height:10px;border-radius:2px}.heatmap-scroll{overflow-x:auto;padding-bottom:.25rem}.heatmap-grid-wrapper{display:flex;gap:.25rem;min-width:660px}.heatmap-day-labels{display:flex;flex-direction:column;gap:2px;padding-top:1px}.heatmap-day-label{height:11px;font-size:.6rem;color:#ffffff59;line-height:11px}body.light-mode .heatmap-day-label{color:#0a0a0a4d}.heatmap-grid{display:flex;gap:2px}.heatmap-col{display:flex;flex-direction:column;gap:2px}.heatmap-cell{width:11px;height:11px;border-radius:2px;cursor:pointer;transition:opacity .15s}.heatmap-cell:hover{opacity:.75}.skeleton-cell{background:#ffffff0f!important;animation:shimmer 1.5s ease-in-out infinite}body.light-mode .skeleton-cell{background:#0a0a0a12!important}.heatmap-tooltip{background:#000000d9;border:1px solid rgba(0,255,255,.3);color:#e0e0e0;font-family:Fira Code,monospace;font-size:.68rem;padding:.25rem .55rem;border-radius:4px;pointer-events:none;z-index:9999;white-space:nowrap}body.light-mode .heatmap-tooltip{background:#ffffffeb;border-color:#0f6e564d;color:#1a1a1a}.heatmap-skeleton{display:flex;gap:2px;overflow:hidden;height:88px}.heatmap-error{padding:.5rem 0;font-family:Fira Code,monospace;font-size:.78rem}.page-sweep{position:absolute;inset:0;z-index:200;pointer-events:none;overflow:hidden}.page-sweep:before{content:"";position:absolute;top:0;left:-5px;width:5px;height:100%;background:#00ffffb3;box-shadow:0 0 18px #00ffff80,0 0 40px #0ff3;animation:sweepLine .65s cubic-bezier(.77,0,.175,1) forwards}body.light-mode .page-sweep:before{background:#0f6e56b3;box-shadow:0 0 18px #0f6e5666}@keyframes sweepLine{0%{left:-5px}to{left:100%}}@media (prefers-reduced-motion: reduce){.page-sweep:before{animation:none;display:none}}.hack-timeline{display:flex;flex-direction:column;gap:0;padding:.5rem 0 1rem;position:relative}.hack-timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:#00ffff2e}body.light-mode .hack-timeline:before{background:#0f6e562e}.hack-tl-item{display:flex;gap:1rem;padding:.65rem 0 .65rem .25rem}.hack-tl-dot{width:17px;height:17px;border-radius:50%;border:2px solid #00ffff;background:#0a0a0a;flex-shrink:0;margin-top:2px;box-shadow:0 0 8px #0ff6;z-index:1}body.light-mode .hack-tl-dot{border-color:#0f6e56;background:#f8f8f6;box-shadow:0 0 8px #0f6e564d}.hack-tl-content{flex:1}.hack-tl-title{font-family:Fira Code,monospace;font-size:.88rem;color:#e0e0e0;font-weight:600;margin-bottom:.2rem}body.light-mode .hack-tl-title{color:#1a1a1a}.hack-tl-meta{font-family:Fira Code,monospace;font-size:.72rem;color:#ffffff73;margin-bottom:.25rem;display:flex;flex-wrap:wrap;gap:.25rem}body.light-mode .hack-tl-meta{color:#0a0a0a73}.hack-tl-sep{color:#00ffff4d}body.light-mode .hack-tl-sep{color:#0f6e564d}.hack-tl-project{font-family:Fira Code,monospace;font-size:.78rem;color:#00ffffb3;margin-bottom:.2rem}body.light-mode .hack-tl-project{color:#0f6e56bf}.hack-tl-achievement{display:inline-block;font-family:Fira Code,monospace;font-size:.75rem;background:#ffd7001a;border:1px solid rgba(255,215,0,.3);color:gold;border-radius:4px;padding:.15rem .55rem}body.light-mode .hack-tl-achievement{background:#b4820014;border-color:#b482004d;color:#8a6500}.lc-grid-wrapper{margin:.75rem 0 .5rem}.lc-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;margin-bottom:.45rem}.lc-cell{aspect-ratio:1;border-radius:2px;transition:transform .15s}.lc-cell:hover{transform:scale(1.3)}.lc-easy{background:#00b8a3}.lc-medium{background:#ffa116}.lc-hard{background:#ef4743}.lc-empty{background:#ffffff12}body.light-mode .lc-empty{background:#00000014}.lc-legend{display:flex;gap:1rem;font-family:Fira Code,monospace;font-size:.7rem;color:#ffffff8c}body.light-mode .lc-legend{color:#00000080}.lc-legend span{display:flex;align-items:center;gap:.3rem}.lc-dot{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.lc-easy-dot{background:#00b8a3}.lc-medium-dot{background:#ffa116}.lc-hard-dot{background:#ef4743}.radar-wrapper{background:#00ffff05;border:1px solid rgba(0,255,255,.1);border-radius:6px;padding:1.2rem;margin-bottom:1.5rem}body.light-mode .radar-wrapper{background:#0f6e5605;border-color:#0f6e561f}.radar-title{font-family:Fira Code,monospace;font-size:.72rem;color:#00ffff80;margin-bottom:1rem}body.light-mode .radar-title{color:#0f6e5680}.radar-inner{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.radar-svg{width:260px;height:270px;flex-shrink:0}.radar-grid{fill:none;stroke:#00ffff1f;stroke-width:1}body.light-mode .radar-grid{stroke:#0f6e5626}.radar-axis{stroke:#00ffff26;stroke-width:1}body.light-mode .radar-axis{stroke:#0f6e562e}.radar-data{fill:#00ffff1f;stroke:#0ff9;stroke-width:1.5}body.light-mode .radar-data{fill:#0f6e561a;stroke:#0f6e5699}.radar-dot{fill:#0ff;stroke:#0006;stroke-width:1}body.light-mode .radar-dot{fill:#0f6e56}.radar-label{font-family:Fira Code,monospace;font-size:.7rem;fill:#00ffffbf}body.light-mode .radar-label{fill:#0f6e56cc}.radar-grid-label{font-family:Fira Code,monospace;font-size:.55rem;fill:#ffffff40}body.light-mode .radar-grid-label{fill:#00000040}.radar-legend{flex:1;min-width:180px;display:flex;flex-direction:column;gap:.55rem}.radar-legend-row{display:flex;align-items:center;gap:.6rem;font-family:Fira Code,monospace;font-size:.72rem}.radar-legend-label{width:72px;color:#ffffffa6;flex-shrink:0}body.light-mode .radar-legend-label{color:#0009}.radar-bar-track{flex:1;height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}body.light-mode .radar-bar-track{background:#00000014}.radar-bar-fill{height:100%;background:linear-gradient(90deg,#0ff9,#00ffffe6);border-radius:2px;transition:width .8s ease}body.light-mode .radar-bar-fill{background:linear-gradient(90deg,#0f6e5699,#0f6e56e6)}.radar-legend-pct{width:32px;text-align:right;color:#00ffffb3;font-size:.68rem}body.light-mode .radar-legend-pct{color:#0f6e56b3}@media (max-width: 600px){.radar-inner{flex-direction:column;align-items:flex-start}.radar-svg{width:220px;height:230px}}@keyframes hintFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.terminal-hint{position:absolute;top:1rem;left:1rem;z-index:20;background:#000e0ee0;border:1px solid rgba(0,255,255,.18);border-radius:5px;padding:.55rem .8rem .6rem;font-family:Fira Code,monospace;max-width:190px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:hintFadeIn .5s ease .4s both;box-shadow:0 4px 18px #00000073}body.light-mode .terminal-hint{background:#f0f8f5eb;border-color:#0f6e5633;box-shadow:0 4px 18px #0000001f}.hint-close{position:absolute;top:.25rem;right:.35rem;background:none;border:none;color:#ffffff47;cursor:pointer;font-size:.85rem;line-height:1;padding:0;transition:color .15s}.hint-close:hover{color:#00ffffbf}body.light-mode .hint-close{color:#00000040}body.light-mode .hint-close:hover{color:#0f6e56cc}.hint-header{font-size:.62rem;color:#00ffff73;margin-bottom:.4rem;letter-spacing:.02em}body.light-mode .hint-header{color:#0f6e5680}.hint-cmds{display:flex;flex-direction:column;gap:.22rem;margin-bottom:.4rem}.hint-cmd{display:block;font-size:.7rem;color:#0ff;background:#00ffff12;border:1px solid rgba(0,255,255,.12);border-radius:3px;padding:.1rem .4rem;letter-spacing:.03em}body.light-mode .hint-cmd{color:#0a6b50;background:#0f6e5612;border-color:#0f6e5626}.hint-sub{font-size:.6rem;color:#ffffff47;letter-spacing:.02em}body.light-mode .hint-sub{color:#0000004d}@media (max-width: 480px){.terminal-hint{top:.5rem;left:.5rem;max-width:160px}}.resume-pdf-iframe{width:80%;margin:0 auto}@media (max-width: 768px){.resume-pdf-iframe{width:100%}}@keyframes intenseShake{0%,to{transform:translate(0) rotate(0)}10%,30%,50%,70%,90%{transform:translate(-10px,-10px) rotate(-2deg)}20%,40%,60%,80%{transform:translate(10px,10px) rotate(2deg)}}.shake-intense{animation:intenseShake .5s ease-in-out}@keyframes spinMode{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.5)}to{transform:rotate(360deg) scale(1)}}body.spin-mode #root{animation:spinMode 3s cubic-bezier(.68,-.55,.265,1.55);overflow:hidden}.scene-backdrop{--scene-base: radial-gradient(ellipse 80% 60% at 50% 42%, #0a1413 0%, #050708 55%, #020203 100%);--scene-glow: radial-gradient(ellipse 50% 52% at 50% 50%, rgba(0, 255, 190, .16), rgba(0, 170, 255, .07) 55%, transparent 100%);--scene-line: rgba(0, 255, 190, .24);--scene-pool: radial-gradient(ellipse 50% 60% at 50% 0%, rgba(0, 255, 200, .16), transparent 70%);--scene-vignette: rgba(0, 0, 0, .7);--scene-grain-opacity: .07;position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--scene-base)}.scene-backdrop:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 75% 70% at 50% 45%,transparent 40%,var(--scene-vignette) 100%)}.scene-glow{position:absolute;left:50%;top:44%;width:120vw;height:85vh;transform:translate(-50%,-50%);background:var(--scene-glow);filter:blur(24px);animation:sceneGlowBreath 9s ease-in-out infinite}.scene-floor{--floor-tile: 72px;position:absolute;left:-60%;right:-60%;bottom:0;height:58vh;overflow:hidden;transform-origin:50% 100%;transform:perspective(420px) rotateX(64deg);-webkit-mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.6) 45%,transparent 90%);mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.6) 45%,transparent 90%)}.scene-floor:before{content:"";position:absolute;inset:calc(var(--floor-tile) * -1) 0 0 0;background-image:linear-gradient(var(--scene-line) 1px,transparent 1px),linear-gradient(90deg,var(--scene-line) 1px,transparent 1px);background-size:var(--floor-tile) var(--floor-tile);will-change:transform;animation:sceneFloorScroll 7s linear infinite}.scene-floor:after{content:"";position:absolute;inset:0;background:var(--scene-pool)}.scene-grain{position:absolute;inset:0;opacity:var(--scene-grain-opacity);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@keyframes sceneGlowBreath{0%,to{opacity:.85}50%{opacity:1}}@keyframes sceneFloorScroll{to{transform:translate3d(0,var(--floor-tile),0)}}.laptop{--rim: 3px;--bezel: clamp(8px, 1.1vw, 15px);--bezel-top: clamp(14px, 1.7vw, 24px);--shell: linear-gradient(180deg, #4b4f56 0%, #26292e 18%, #1b1d21 100%);--deck: linear-gradient(180deg, #121417 0%, #2a2d32 55%, #3d4148 100%);--front: linear-gradient(180deg, #62676f 0%, #2c2f34 45%, #131417 100%);--notch: linear-gradient(180deg, #0f1012, #2b2e33);--spill: rgba(0, 255, 200, .07);--halo: rgba(0, 255, 190, .12);--floor-shadow: rgba(0, 0, 0, .8);position:relative;z-index:1;width:min(88vw,1280px);margin:3vh auto 6vh;perspective:5200px;perspective-origin:50% 30%}.laptop-lid{position:relative;padding:var(--rim);border-radius:20px 20px 5px 5px;background:var(--shell);box-shadow:inset 0 1px #ffffff38,inset 0 -1px #0009,0 0 120px -10px var(--halo),0 40px 90px -30px #000000d9;transform-origin:50% 100%;animation:laptopLidOpen 1.5s cubic-bezier(.22,.8,.24,1) both}.laptop-bezel{position:relative;padding:var(--bezel-top) var(--bezel) var(--bezel);border-radius:17px 17px 3px 3px;background:#050506;box-shadow:inset 0 0 0 1px #ffffff0d,inset 0 3px 8px #000000e6}.laptop-camera{position:absolute;top:calc(var(--bezel-top) / 2 - 3px);left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#4b5f86 0 1px,#10131a 2px,#07080b);box-shadow:0 0 0 1.5px #121316}.laptop-screen{position:relative;height:min(74vh,800px);border-radius:5px 5px 1px 1px;overflow:hidden;background:#000;contain:layout paint;isolation:isolate}.laptop-screen>.terminal{width:100%;max-width:none;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}body.light-mode .laptop-screen>.terminal{border:0!important;box-shadow:none!important}.laptop-screen:after{content:"";position:absolute;inset:0;z-index:10000;background:#000;pointer-events:none;animation:oledPowerOn 1.9s ease both}.screen-glare{position:absolute;inset:0;z-index:9990;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(118deg,rgba(255,255,255,.055) 0%,rgba(255,255,255,.018) 36%,transparent 36.2%),radial-gradient(120% 55% at 50% -12%,rgba(255,255,255,.045),transparent 60%)}body.light-mode .screen-glare{mix-blend-mode:multiply;background:linear-gradient(118deg,rgba(0,0,0,.035) 0%,rgba(0,0,0,.012) 36%,transparent 36.2%),radial-gradient(140% 80% at 50% 50%,transparent 70%,rgba(0,0,0,.05) 100%)}.laptop-base{position:relative;width:107%;left:-3.5%}.laptop-deck{position:relative;height:clamp(9px,1.3vw,17px);background:var(--deck);clip-path:polygon(2% 0,98% 0,100% 100%,0 100%)}.laptop-deck:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--spill),transparent 80%)}.laptop-front{position:relative;height:clamp(6px,.75vw,10px);border-radius:0 0 14px 14px/0 0 10px 10px;background:var(--front);box-shadow:inset 0 1px #ffffff2e}.laptop-front:before{content:"";position:absolute;top:0;left:50%;width:11%;height:50%;transform:translate(-50%);border-radius:0 0 9px 9px;background:var(--notch)}.laptop-shadow{position:absolute;left:0;right:0;bottom:-28px;height:34px;z-index:-1;background:radial-gradient(ellipse at center,var(--floor-shadow),transparent 70%);filter:blur(6px)}@keyframes laptopLidOpen{0%{transform:rotateX(-82deg)}to{transform:none}}@keyframes oledPowerOn{0%,60%{opacity:1}to{opacity:0}}.laptop .terminal.terminal-shake{animation:none}.laptop:has(.terminal-shake){animation:terminalShake .5s ease}body.light-mode .scene-backdrop{--scene-base: radial-gradient(ellipse 80% 65% at 50% 40%, #ffffff 0%, #eeece6 55%, #dcd8cf 100%);--scene-glow: radial-gradient(ellipse 50% 52% at 50% 50%, rgba(255, 255, 255, .95), rgba(255, 250, 240, .4) 55%, transparent 100%);--scene-line: rgba(40, 36, 28, .12);--scene-pool: radial-gradient(ellipse 50% 60% at 50% 0%, rgba(255, 255, 255, .7), transparent 70%);--scene-vignette: rgba(120, 110, 90, .22);--scene-grain-opacity: .1}body.light-mode .laptop{--shell: linear-gradient(180deg, #f4f5f7 0%, #d6d8dc 22%, #c4c7cc 100%);--deck: linear-gradient(180deg, #a9acb2 0%, #d3d5d9 55%, #e7e8eb 100%);--front: linear-gradient(180deg, #f6f7f8 0%, #c5c8cd 45%, #9ea2a8 100%);--notch: linear-gradient(180deg, #9a9ea4, #c9ccd0);--spill: rgba(255, 255, 255, .35);--halo: rgba(255, 255, 255, .8);--floor-shadow: rgba(60, 50, 30, .35)}body.light-mode .laptop-lid{box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #0003,0 40px 90px -30px #3c321e73}@media (max-width: 768px){.laptop{--rim: 2px;--bezel: 5px;--bezel-top: 12px;width:92vw;margin:1.5vh auto 3vh}.laptop-lid{border-radius:12px 12px 4px 4px}.laptop-bezel{border-radius:10px 10px 2px 2px}.laptop-camera{width:4px;height:4px;margin-left:-2px;top:4px}.laptop-base{width:104%;left:-2%}.laptop-screen{height:80vh;height:80svh}.scene-floor{--floor-tile: 44px}}@media (max-height: 520px) and (orientation: landscape){.laptop-screen{height:76vh}}@media (prefers-reduced-motion: reduce){.laptop-lid,.laptop-screen:after,.scene-glow,.scene-floor:before,.laptop:has(.terminal-shake){animation:none}.laptop-screen:after{opacity:0}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.page-outlet #home{--hero-accent: #3dffb8;--hero-accent-2: #40d9ff;--hero-ink: #e9f3f0;--hero-muted: rgba(233, 243, 240, .52);--hero-line: rgba(61, 255, 184, .16);padding:0;justify-content:flex-start;align-items:stretch;overflow:hidden}body.light-mode .page-outlet #home{--hero-accent: #0f6e56;--hero-accent-2: #0b6e8a;--hero-ink: #0a0a0a;--hero-muted: rgba(10, 10, 10, .55);--hero-line: rgba(15, 110, 86, .18)}.hero{position:absolute;inset:0 0 44px;display:flex;overflow-y:auto;overflow-x:hidden;padding:1rem clamp(1rem,3vw,2.5rem);container-type:inline-size;scrollbar-width:thin;scrollbar-color:var(--hero-line) transparent}.hero-grid{margin:auto;width:100%;max-width:1100px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.5rem,4cqi,3.5rem);align-items:center}.hero-main{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;min-width:0}.hero-rise{animation:heroRise .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d, 0) * .11s + .15s)}@keyframes heroRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero-status{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .65rem;font-size:.72rem;letter-spacing:.03em;color:var(--hero-muted)}.status-live{display:inline-flex;align-items:center;gap:.45rem;padding:.22rem .6rem;border:1px solid var(--hero-line);border-radius:999px;color:var(--hero-accent);text-decoration:none;background:color-mix(in srgb,var(--hero-accent) 7%,transparent);transition:background .2s,border-color .2s}.status-live:hover{background:color-mix(in srgb,var(--hero-accent) 14%,transparent);border-color:color-mix(in srgb,var(--hero-accent) 45%,transparent)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--hero-accent);box-shadow:0 0 color-mix(in srgb,var(--hero-accent) 60%,transparent);animation:statusPing 2s ease-out infinite}@keyframes statusPing{0%{box-shadow:0 0 color-mix(in srgb,var(--hero-accent) 55%,transparent)}80%,to{box-shadow:0 0 0 7px transparent}}.status-sep{opacity:.35}.status-clock{font-variant-numeric:tabular-nums}.hero-name{margin:0;font-size:inherit;line-height:1;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--hero-accent) 22%,transparent))}body.light-mode .hero-name{filter:none}.hero-ascii{margin:0;text-align:left;font-size:clamp(9px,1.15cqi,14px);background:linear-gradient(100deg,var(--hero-ink) 0%,var(--hero-ink) 30%,var(--hero-accent) 65%,var(--hero-accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:asciiScan 1.1s cubic-bezier(.6,0,.3,1) .25s both}body.light-mode .hero-ascii{color:transparent!important}@keyframes asciiScan{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.hero-role{margin:0;font-size:clamp(.95rem,1.9cqi,1.2rem);color:var(--hero-ink);white-space:nowrap}.role-prompt{color:var(--hero-accent);font-weight:700}.role-slot{display:inline-block;vertical-align:bottom;white-space:nowrap;overflow:hidden}.role-word{color:var(--hero-accent);text-shadow:0 0 18px color-mix(in srgb,var(--hero-accent) 35%,transparent)}.hero-role .tw-caret{--tw-caret: var(--hero-accent)}.hero-stats{display:grid;grid-template-columns:repeat(4,auto);gap:.75rem 1.4rem;margin:.25rem 0}.hero-stat{display:flex;flex-direction:column;gap:.2rem;padding-left:.75rem;border-left:2px solid var(--hero-line)}.stat-value{display:inline-block;font-size:1.35rem;font-weight:700;line-height:1.1;color:var(--hero-ink);font-variant-numeric:tabular-nums}.stat-label{white-space:nowrap;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--hero-muted)}.hero-main .hero-ctas{justify-content:flex-start;margin-top:.2rem}.cta-ghost{color:var(--hero-muted);border-color:transparent;background:transparent}.cta-ghost:hover{color:var(--hero-ink);border-color:var(--hero-line)}.hero-tip{margin:0;font-size:.7rem;color:var(--hero-muted)}.hero-tip kbd{font-family:Fira Code,monospace;font-size:.68rem;padding:.05rem .4rem;border:1px solid var(--hero-line);border-bottom-width:2px;border-radius:4px;color:var(--hero-accent)}.profile-card{position:relative;min-width:0;border-radius:12px;border:1px solid var(--hero-line);background:linear-gradient(180deg,#ffffff09,#ffffff03),#04080899;box-shadow:0 0 0 1px #ffffff05 inset,0 24px 60px -24px #000c,0 0 40px -10px color-mix(in srgb,var(--hero-accent) 18%,transparent);overflow:hidden}body.light-mode .profile-card{background:#fff;box-shadow:0 20px 50px -24px #141e284d,0 0 0 1px #00000005 inset}.profile-card-bar{display:flex;align-items:center;gap:6px;padding:.55rem .8rem;border-bottom:1px solid var(--hero-line);background:#ffffff05}body.light-mode .profile-card-bar{background:#f4f5f4}.pc-dot{width:9px;height:9px;border-radius:50%;background:#ffffff24}.pc-dot:nth-child(1){background:#ff5f56}.pc-dot:nth-child(2){background:#ffbd2e}.pc-dot:nth-child(3){background:#27c93f}.pc-title{margin-left:auto;margin-right:auto;padding-right:27px;font-size:.66rem;color:var(--hero-muted)}.profile-code{margin:0;padding:.9rem 1rem 1rem;font-family:Fira Code,monospace;font-size:clamp(.68rem,1.35cqi,.8rem);line-height:1.75;white-space:pre;overflow-x:auto;scrollbar-width:none}.pc-line{display:block;min-height:1.75em}.pc-hidden{visibility:hidden}.tok-prompt{color:var(--hero-accent);font-weight:700}.tok-cmd{color:var(--hero-ink)}.tok-punct{color:#7b8794}.tok-key{color:#40d9ff}.tok-str{color:#3dffb8}.tok-num{color:#ffb347}.tok-ok{color:#3dffb8;text-shadow:0 0 12px rgba(61,255,184,.55)}body.light-mode .tok-punct{color:#6b7280}body.light-mode .tok-key{color:#0b6e8a}body.light-mode .tok-str{color:#0f6e56}body.light-mode .tok-num{color:#b45309}body.light-mode .tok-ok{color:#0f6e56;text-shadow:none;font-weight:700}.profile-code .tw-caret{--tw-caret: var(--hero-accent)}.page-outlet #home .terminal-input-area{bottom:6px}@container (max-width: 820px){.hero-grid{grid-template-columns:minmax(0,1fr);max-width:560px;gap:1.25rem}.hero-ascii{font-size:clamp(8px,2.2cqi,14px)}}@container (max-width: 520px){.hero-stats{grid-template-columns:repeat(2,auto)}.hero-tip{display:none}.hero-status>span:not(.status-clock):not(.status-sep){display:none}.hero-status .status-sep:first-of-type{display:none}}@media (prefers-reduced-motion: reduce){.hero-rise,.hero-ascii,.status-dot{animation:none}}.hero-name-compact{display:none}@media (max-height: 800px){.hero{padding-block:.5rem}.hero-main{gap:.75rem}.profile-code{line-height:1.6}.pc-line{min-height:1.6em}}@media (max-width: 480px){.hero-ascii{display:none}.hero-name-compact{display:block;font-size:1.9rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(100deg,var(--hero-ink) 0%,var(--hero-accent) 70%,var(--hero-accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}}.ab-page,.pj-page,.ac-page,.ct-page{--ui-accent: #3dffb8;--ui-accent-2: #40d9ff;--ui-warn: #ffb347;--ui-ink: #e9f3f0;--ui-body: rgba(233, 243, 240, .82);--ui-muted: rgba(233, 243, 240, .5);--ui-line: rgba(61, 255, 184, .14);--ui-line-soft: rgba(255, 255, 255, .07);--ui-panel: linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .012));padding:0;justify-content:flex-start;align-items:stretch}body.light-mode .ab-page,body.light-mode .pj-page,body.light-mode .ac-page,body.light-mode .ct-page{--ui-accent: #0f6e56;--ui-accent-2: #0b6e8a;--ui-warn: #b45309;--ui-ink: #0a0a0a;--ui-body: rgba(10, 10, 10, .78);--ui-muted: rgba(10, 10, 10, .52);--ui-line: rgba(15, 110, 86, .18);--ui-line-soft: rgba(0, 0, 0, .08);--ui-panel: linear-gradient(180deg, #ffffff, #fbfbfa)}.ab-page{container-type:inline-size}.ab-layout{display:grid;grid-template-columns:200px minmax(0,1fr);height:100%;min-height:0}.ab-tree{padding:1.6rem .75rem 1rem 1.25rem;border-right:1px solid var(--ui-line-soft);font-size:.76rem;overflow-y:auto}.ab-tree-root{color:var(--ui-accent);font-weight:700;margin-bottom:.5rem;padding-left:.4rem}.ab-tree ul{list-style:none;margin:0;padding:0}.ab-tree-item{display:flex;align-items:center;gap:.45rem;width:100%;padding:.32rem .4rem;border:0;border-radius:5px;background:none;color:var(--ui-muted);font:inherit;text-align:left;cursor:pointer;transition:color .2s,background .2s}.ab-tree-item:hover{color:var(--ui-ink)}.ab-tree-item.is-active{color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 9%,transparent)}.ab-tree-branch{color:var(--ui-line);letter-spacing:-.05em}.ab-tree-item.is-active .ab-tree-branch{color:color-mix(in srgb,var(--ui-accent) 60%,transparent)}.ab-scroll{position:relative;overflow-y:auto;padding:1.5rem clamp(1rem,4cqi,3rem) 3rem;scrollbar-width:thin;scrollbar-color:var(--ui-line) transparent}.ab-scroll>*{max-width:860px}.ab-title-prompt{color:color-mix(in srgb,var(--ui-accent) 75%,transparent);font-weight:600}.ab-neofetch-cmd{font-size:.8rem;color:var(--ui-ink);margin-bottom:1rem}.ab-neofetch-body{display:flex;gap:clamp(1.25rem,4cqi,2.75rem);align-items:flex-start;padding:1.25rem 1.4rem;border:1px solid var(--ui-line);border-radius:14px;background:var(--ui-panel);box-shadow:0 0 50px -20px color-mix(in srgb,var(--ui-accent) 25%,transparent)}.ab-avatar{margin:0;font-size:.95rem;line-height:1.3;color:var(--ui-accent);text-shadow:0 0 14px color-mix(in srgb,var(--ui-accent) 45%,transparent);flex-shrink:0}.ab-neofetch-info{flex:1;min-width:0}.ab-name{margin:0;font-size:clamp(1.35rem,3.2cqi,1.9rem);font-weight:700;letter-spacing:-.01em;background:linear-gradient(100deg,var(--ui-ink) 20%,var(--ui-accent) 75%,var(--ui-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.ab-rule{height:1px;margin:.6rem 0 .75rem;background:repeating-linear-gradient(90deg,var(--ui-line) 0 6px,transparent 6px 10px)}.ab-facts{margin:0;display:grid;gap:.3rem;font-size:.8rem}.ab-fact{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.75rem}.ab-fact dt{color:var(--ui-accent);font-weight:700}.ab-fact dd{margin:0;color:var(--ui-body)}.ab-fact dd.is-ok{color:var(--ui-accent)}.ab-swatches{display:flex;gap:4px;margin-top:.9rem}.ab-swatch{width:20px;height:12px;border-radius:2px}.ab-swatch.s0{background:#1b1f24}.ab-swatch.s1{background:#ff5c70}.ab-swatch.s2{background:#3dffb8}.ab-swatch.s3{background:#ffe45c}.ab-swatch.s4{background:#40a9ff}.ab-swatch.s5{background:#ff6fd8}.ab-swatch.s6{background:#40d9ff}.ab-swatch.s7{background:#e9f3f0}.ab-section{margin-top:2.6rem;scroll-margin-top:1rem}.ab-title{margin:0 0 1rem;font-size:.92rem;font-weight:600;color:var(--ui-ink);padding-bottom:.55rem;border-bottom:1px solid var(--ui-line-soft)}.ab-prose{font-size:.88rem;line-height:1.85;color:var(--ui-body)}.ab-prose p{margin:0 0 .9rem}.ab-prose strong{color:var(--ui-ink);font-weight:700}.ab-log{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:.82rem}.ab-log-row{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.75rem;color:var(--ui-body);line-height:1.6}.ab-log-tag{color:var(--ui-muted);font-weight:700}.ab-log-tag.tag-learning{color:var(--ui-accent-2)}.ab-log-tag.tag-relearning{color:var(--ui-warn)}.ab-log-tag.tag-building{color:var(--ui-accent)}.ab-log-live{color:var(--ui-muted)}.ab-dots:after{content:"";display:inline-block;width:1.5em;text-align:left;animation:abDots 1.4s steps(4) infinite}@keyframes abDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.ab-checklist{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-size:.84rem}.ab-checklist li{display:flex;gap:.7rem;color:var(--ui-body);line-height:1.6}.ab-check{color:var(--ui-accent);font-weight:700;flex-shrink:0}.ab-gitlog{list-style:none;margin:0;padding:0;position:relative}.ab-gitlog:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--ui-accent),var(--ui-line));border-radius:2px}.ab-commit{position:relative;padding:0 0 1.4rem 1.9rem}.ab-commit:last-child{padding-bottom:0}.ab-commit-node{position:absolute;left:0;top:4px;width:14px;height:14px;border-radius:50%;border:2px solid var(--ui-accent);background:#000;box-shadow:0 0 10px color-mix(in srgb,var(--ui-accent) 50%,transparent)}body.light-mode .ab-commit-node{background:#fff}.ab-commit-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;font-size:.72rem}.ab-hash{color:var(--ui-warn)}.ab-head{padding:.05rem .45rem;border:1px solid color-mix(in srgb,var(--ui-accent-2) 50%,transparent);border-radius:999px;color:var(--ui-accent-2)}.ab-when{color:var(--ui-muted)}.ab-commit-title{margin-top:.3rem;font-size:.92rem;font-weight:700;color:var(--ui-ink)}.ab-commit-body{margin:.25rem 0 0;font-size:.8rem;line-height:1.7;color:var(--ui-muted)}.ab-stack,.ab-certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem}.ab-stack-group,.ab-cert-group{padding:.85rem .9rem;border:1px solid var(--ui-line-soft);border-radius:12px;background:var(--ui-panel);transition:border-color .25s}.ab-stack-group:hover,.ab-cert-group:hover{border-color:var(--ui-line)}.ab-stack-dir{font-size:.74rem;font-weight:700;color:var(--ui-accent);margin-bottom:.55rem}.ab-chips{display:flex;flex-wrap:wrap;gap:.35rem}.ab-chip{padding:.18rem .55rem;border:1px solid var(--ui-line-soft);border-radius:999px;font-size:.72rem;color:var(--ui-body);background:#ffffff05}.ab-cert{display:flex;align-items:center;gap:.6rem;padding:.4rem .45rem;margin:0 -.45rem;border-radius:7px;font-size:.76rem;color:var(--ui-body);text-decoration:none;transition:background .2s,color .2s}.ab-cert:hover{background:color-mix(in srgb,var(--ui-accent) 8%,transparent);color:var(--ui-ink)}.ab-cert-logo{width:18px;height:18px;object-fit:contain;flex-shrink:0;border-radius:3px;background:#fff;padding:1px}.ab-cert-name{flex:1;min-width:0;line-height:1.4}.ab-cert-open{color:var(--ui-accent);opacity:0;transition:opacity .2s,transform .2s}.ab-cert:hover .ab-cert-open{opacity:1;transform:translate(2px,-2px)}.ab-hobbies .ab-chip{font-size:.78rem;padding:.3rem .75rem}.ab-signoff{margin-top:1rem;font-style:italic;color:var(--ui-muted)}@container (max-width: 640px){.ab-layout{grid-template-columns:minmax(0,1fr)}.ab-tree{display:none}.ab-neofetch-body{flex-direction:column}.ab-avatar{font-size:.8rem}.ab-log-row{grid-template-columns:minmax(0,1fr);gap:.1rem}}.pj-scroll{height:100%;overflow-y:auto;padding:1.5rem clamp(1rem,3cqi,2.5rem) 2.5rem;container-type:inline-size;scrollbar-width:thin;scrollbar-color:var(--ui-line) transparent}.pj-scroll>*{max-width:1120px;margin-inline:auto}.pj-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.2rem 2rem;margin-bottom:1.4rem}.pj-cmd{font-size:.76rem;color:var(--ui-muted)}.pj-prompt{color:color-mix(in srgb,var(--ui-accent) 75%,transparent);font-weight:600}.pj-h1{margin:.35rem 0 .4rem;font-size:clamp(1.4rem,3.2cqi,2rem);letter-spacing:-.01em;background:linear-gradient(100deg,var(--ui-ink) 25%,var(--ui-accent) 80%,var(--ui-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.pj-summary{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.76rem;color:var(--ui-muted)}.pj-summary strong{color:var(--ui-ink)}.pj-dot{opacity:.4}.pj-controls{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.pj-search{display:flex;align-items:center;border:1px solid var(--ui-line-soft);border-radius:9px;background:var(--ui-panel);overflow:hidden;transition:border-color .2s,box-shadow .2s}.pj-search:focus-within{border-color:color-mix(in srgb,var(--ui-accent) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-accent) 12%,transparent)}.pj-search-prefix{white-space:nowrap;padding:.45rem .6rem;font-size:.72rem;color:var(--ui-accent);border-right:1px solid var(--ui-line-soft)}.pj-search input{width:210px;padding:.45rem .65rem;border:0;outline:none;background:none;color:var(--ui-ink);font-family:Fira Code,monospace;font-size:.8rem}.pj-search input::placeholder{color:var(--ui-muted)}.pj-tabs{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.pj-tab{padding:.28rem .7rem;border:1px solid var(--ui-line-soft);border-radius:999px;background:none;color:var(--ui-muted);font-family:Fira Code,monospace;font-size:.72rem;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.pj-tab:hover{color:var(--ui-ink);border-color:var(--ui-line)}.pj-tab.is-active{color:var(--ui-accent);border-color:color-mix(in srgb,var(--ui-accent) 50%,transparent);background:color-mix(in srgb,var(--ui-accent) 10%,transparent)}.pj-tab-count{margin-left:.25rem;opacity:.55}.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.1rem;margin-top:1.1rem}.pj-card{display:flex;flex-direction:column;border:1px solid var(--ui-line-soft);border-radius:14px;background:var(--ui-panel);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s}.pj-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--ui-accent) 38%,transparent);box-shadow:0 18px 40px -22px #000c,0 0 36px -12px color-mix(in srgb,var(--ui-accent) 28%,transparent)}body.light-mode .pj-card:hover{box-shadow:0 18px 40px -22px #141e284d}.pj-media{position:relative;display:block;aspect-ratio:16 / 9;background:#050708;border-bottom:1px solid var(--ui-line-soft);overflow:hidden}.pj-video{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s;filter:saturate(.85) brightness(.9)}.pj-card:hover .pj-video{transform:scale(1.04);filter:none}.pj-media-hint{position:absolute;left:.6rem;bottom:.6rem;padding:.15rem .5rem;border-radius:999px;font-size:.62rem;color:#e9f3f0;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .3s}.pj-card:hover .pj-media-hint{opacity:0}@media (hover: none){.pj-media-hint{display:none}}.pj-body{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem 1.05rem;flex:1}.pj-meta{display:flex;align-items:center;gap:.6rem;font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-muted)}.pj-index{color:var(--ui-accent);font-weight:700}.pj-state{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;padding:.12rem .5rem;border-radius:999px;border:1px solid currentColor;letter-spacing:.05em}.pj-state-done{color:var(--ui-accent)}.pj-state-wip{color:var(--ui-warn)}.pj-state-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pj-state-wip .pj-state-dot{animation:statusPing 2s ease-out infinite;--hero-accent: var(--ui-warn)}.pj-title{margin:0;font-size:1.02rem;line-height:1.35}.pj-title a{color:var(--ui-ink);text-decoration:none;transition:color .2s}.pj-title a:hover{color:var(--ui-accent)}.pj-tagline{margin:0;font-size:.8rem;line-height:1.65;color:var(--ui-muted)}.pj-tags{display:flex;flex-wrap:wrap;gap:.32rem}.pj-tag{padding:.12rem .5rem;border-radius:5px;border:1px solid var(--ui-line-soft);font-size:.66rem;color:var(--ui-body)}.pj-tag-more{color:var(--ui-muted);border-style:dashed}.pj-actions{display:flex;align-items:center;gap:1rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--ui-line-soft)}.pj-link{display:inline-flex;align-items:center;gap:.35rem;padding:0;border:0;background:none;font-family:Fira Code,monospace;font-size:.74rem;color:var(--ui-muted);text-decoration:none;cursor:pointer;transition:color .2s}.pj-link:hover{color:var(--ui-ink)}.pj-link-primary{color:var(--ui-accent);font-weight:700}.pj-link-primary span{transition:transform .2s}.pj-link-primary:hover{color:var(--ui-accent)}.pj-link-primary:hover span{transform:translate(3px)}.pj-duration{margin-left:auto;font-size:.66rem;color:var(--ui-muted)}.pj-card-featured{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);border-color:var(--ui-line);box-shadow:0 0 60px -28px color-mix(in srgb,var(--ui-accent) 45%,transparent)}.pj-card-featured .pj-media{aspect-ratio:auto;min-height:320px;border-bottom:0;border-right:1px solid var(--ui-line-soft)}.pj-card-featured .pj-media:before{content:"★ featured";position:absolute;top:.7rem;left:.7rem;z-index:1;padding:.18rem .6rem;border-radius:999px;font-size:.64rem;font-weight:700;color:#001a12;background:#3dffb8;box-shadow:0 0 16px #3dffb880}.pj-card-featured .pj-body{padding:1.35rem 1.4rem;gap:.75rem}.pj-card-featured .pj-title{font-size:1.3rem}.pj-card-featured .pj-tagline{font-size:.86rem}.pj-impact{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.pj-impact li{position:relative;padding-left:1.1rem;font-size:.76rem;line-height:1.6;color:var(--ui-body)}.pj-impact li:before{content:"▸";position:absolute;left:0;color:var(--ui-accent)}.pj-empty{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:3rem 1rem;font-size:.82rem}@container (max-width: 760px){.pj-card-featured{grid-template-columns:minmax(0,1fr)}.pj-card-featured .pj-media{aspect-ratio:16 / 9;min-height:0;border-right:0;border-bottom:1px solid var(--ui-line-soft)}.pj-controls{align-items:stretch;width:100%}.pj-tabs{justify-content:flex-start}.pj-search input,.pj-search{width:100%}}.case-overview{grid-column:1 / -1}.case-overview-body p{margin:0 0 .6rem}.pj-video.is-portrait{object-fit:contain;background:radial-gradient(ellipse at center,rgba(61,255,184,.08),transparent 70%),#050708}.project-detail-page{scrollbar-width:thin;scrollbar-color:rgba(61,255,184,.2) transparent}body.light-mode .project-detail-page{scrollbar-color:rgba(15,110,86,.25) transparent}.ab-page,.pj-page,.ac-page,.ct-page{--font-read: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--ui-body: rgba(233, 243, 240, .9);--ui-muted: rgba(233, 243, 240, .62)}body.light-mode .ab-page,body.light-mode .pj-page,body.light-mode .ac-page,body.light-mode .ct-page{--ui-body: rgba(10, 10, 10, .84);--ui-muted: rgba(10, 10, 10, .6)}.ab-prose,.ab-log-row>span:last-child,.ab-checklist li>span:last-child,.ab-commit-body,.ab-fact dd,.pj-tagline,.pj-impact li,.case-body{font-family:var(--font-read)}.ab-prose{font-size:1rem;line-height:1.75;max-width:68ch}.ab-prose p{margin-bottom:1rem}.ab-log-row{font-size:.95rem}.ab-log-tag{font-size:.78rem;padding-top:.15rem}.ab-checklist{font-size:.97rem}.ab-checklist li{max-width:68ch}.ab-commit-title{font-size:1rem}.ab-commit-body{font-size:.92rem;line-height:1.65;max-width:68ch}.ab-fact{font-size:.86rem;align-items:baseline}.ab-fact dd{font-size:.93rem}.ab-signoff{font-family:var(--font-read);font-size:.98rem}.pj-tagline{font-size:.9rem;line-height:1.6}.pj-card-featured .pj-tagline{font-size:.98rem}.pj-impact li{font-size:.88rem}.ac-scroll,.ct-scroll{height:100%;overflow-y:auto;padding:1.5rem clamp(1rem,3cqi,2.5rem) 2.5rem;container-type:inline-size;scrollbar-width:thin;scrollbar-color:var(--ui-line) transparent}.ac-scroll>*{max-width:1120px;margin-inline:auto}.ac-cmd,.ct-cmd{font-size:.76rem;color:var(--ui-muted)}.ac-prompt,.ct-prompt{color:color-mix(in srgb,var(--ui-accent) 75%,transparent);font-weight:600}.ac-h1,.ct-h1{margin:.35rem 0 .5rem;font-size:clamp(1.5rem,3.4cqi,2.2rem);line-height:1.15;letter-spacing:-.01em;background:linear-gradient(100deg,var(--ui-ink) 25%,var(--ui-accent) 80%,var(--ui-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.ac-lede,.ct-lede{margin:0;max-width:62ch;font-family:var(--font-read);font-size:1rem;line-height:1.65;color:var(--ui-body)}.ac-section{margin-top:2.2rem}.ac-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:0 0 1rem;padding-bottom:.55rem;border-bottom:1px solid var(--ui-line-soft);font-size:.9rem;font-weight:600;color:var(--ui-ink)}.ac-title-note{margin-left:auto;font-size:.68rem;font-weight:400;color:var(--ui-muted)}.ac-card{position:relative;padding:1.1rem 1.15rem;border:1px solid var(--ui-line-soft);border-radius:14px;background:var(--ui-panel);min-width:0;transition:border-color .25s,box-shadow .25s}.ac-card:hover{border-color:var(--ui-line)}.ac-card-label{display:flex;align-items:center;gap:.45rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted)}.ac-card-label i{color:var(--ui-accent);font-size:.85rem}.ac-card-foot{margin-top:.6rem;font-family:var(--font-read);font-size:.8rem;color:var(--ui-muted)}.ac-big{margin-top:.55rem;font-size:clamp(1.8rem,4cqi,2.4rem);font-weight:700;line-height:1;color:var(--ui-ink);font-variant-numeric:tabular-nums}.ac-big-sub{font-size:.85rem;font-weight:400;color:var(--ui-muted)}.ac-live:after{content:"";display:inline-block;width:8px;height:8px;margin-left:.6rem;vertical-align:middle;border-radius:50%;background:var(--ui-accent);--hero-accent: var(--ui-accent);animation:statusPing 2s ease-out infinite}.ac-meter{height:6px;margin:.85rem 0 .2rem;border-radius:999px;background:#ffffff0f;overflow:hidden}body.light-mode .ac-meter{background:#00000012}.ac-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ui-accent),var(--ui-accent-2))}.ac-skeleton{margin-top:.6rem;border-radius:8px;background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08);animation:acPulse 1.4s ease-in-out infinite}@keyframes acPulse{50%{opacity:.45}}.ac-empty{padding:.75rem 0;font-size:.8rem;color:var(--ui-muted)}.ac-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.9rem}.ac-leetcode{grid-column:span 5;grid-row:span 2}.ac-github{grid-column:span 4}.ac-cgpa{grid-column:span 3}.ac-hackerrank{grid-column:span 4}.ac-certs{grid-column:span 3}.ac-heatmap{grid-column:span 9}.ac-views{grid-column:span 3}.ac-leetcode .lc-legend{font-size:.74rem;color:var(--ui-muted)}.ac-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.ac-badge{padding:.22rem .6rem;border-radius:999px;border:1px solid color-mix(in srgb,#2ec866 45%,transparent);background:color-mix(in srgb,#2ec866 10%,transparent);color:#5ee08a;font-size:.72rem}body.light-mode .ac-badge{color:#1a7f3c}.ac-heatmap .heatmap-wrapper{margin-top:.6rem}.ac-feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border:1px solid var(--ui-line);border-radius:16px;background:var(--ui-panel);overflow:hidden;box-shadow:0 0 60px -28px color-mix(in srgb,var(--ui-warn) 45%,transparent)}.ac-gallery{display:flex;flex-direction:column;gap:.6rem;padding:.9rem;background:#00000059;border-right:1px solid var(--ui-line-soft)}body.light-mode .ac-gallery{background:#f3f4f3}.ac-gallery-main{width:100%;aspect-ratio:4 / 3;object-fit:contain;border-radius:10px;background:#050708}.ac-thumbs{display:flex;gap:.5rem}.ac-thumb{flex:1;padding:0;border:2px solid transparent;border-radius:8px;background:none;overflow:hidden;cursor:pointer;opacity:.55;transition:opacity .2s,border-color .2s}.ac-thumb img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.ac-thumb:hover{opacity:.85}.ac-thumb.is-active{opacity:1;border-color:var(--ui-accent)}.ac-feature-body{display:flex;flex-direction:column;gap:.85rem;padding:1.4rem 1.5rem}.ac-feature-kicker{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted)}.ac-feature-title{margin:0;font-size:1.4rem;color:var(--ui-ink);line-height:1.2}.ac-trophy{align-self:flex-start;padding:.35rem .85rem;border:1px solid color-mix(in srgb,#ffd35c 60%,transparent);border-radius:999px;background:color-mix(in srgb,#ffd35c 12%,transparent);color:#ffd35c;font-family:Fira Code,monospace;font-size:.82rem;font-weight:700;cursor:pointer;box-shadow:0 0 22px -6px #ffd35c8c;transition:transform .2s}.ac-trophy:hover{transform:scale(1.04)}body.light-mode .ac-trophy{color:#8a5a00}.ac-feature-facts{margin:0;display:grid;gap:.4rem}.ac-feature-facts>div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:.75rem;align-items:baseline}.ac-feature-facts dt{font-size:.74rem;font-weight:700;color:var(--ui-accent)}.ac-feature-facts dd{margin:0;font-family:var(--font-read);font-size:.95rem;color:var(--ui-body)}.ac-feature-list{list-style:none;margin:0;padding:.85rem 0 0;display:grid;gap:.45rem;border-top:1px solid var(--ui-line-soft)}.ac-feature-list li{position:relative;padding-left:1.1rem;font-family:var(--font-read);font-size:.93rem;line-height:1.55;color:var(--ui-body)}.ac-feature-list li:before{content:"▸";position:absolute;left:0;color:var(--ui-accent)}.ac-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem}.ac-split .ac-title{margin-bottom:.9rem}.ac-radar .radar-inner{justify-content:center;gap:1.2rem}.ac-radar .radar-svg{width:280px;height:225px}.ac-activity .gh-event-text{font-family:var(--font-read);font-size:.88rem;color:var(--ui-body);flex:1;min-width:0}.ac-activity .gh-event-time{font-size:.7rem;color:var(--ui-muted);white-space:nowrap}@container (max-width: 900px){.ac-bento{grid-template-columns:repeat(6,minmax(0,1fr))}.ac-leetcode,.ac-heatmap{grid-column:span 6;grid-row:auto}.ac-github,.ac-cgpa,.ac-hackerrank,.ac-certs,.ac-views{grid-column:span 3}.ac-split{grid-template-columns:minmax(0,1fr)}}@container (max-width: 640px){.ac-feature{grid-template-columns:minmax(0,1fr)}.ac-gallery{border-right:0;border-bottom:1px solid var(--ui-line-soft)}.ac-github,.ac-cgpa,.ac-hackerrank,.ac-certs,.ac-views{grid-column:span 6}}.ct-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.ab-prose *,.case-body *,.ac-feature-list li *,.ct-sent p *{font-family:var(--font-read)}.ac-leetcode .lc-grid{max-width:340px;gap:4px}.ac-leetcode .lc-cell{border-radius:3px}.ac-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem}.ac-header .ac-h1{margin-bottom:0}.ac-tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.3rem;border:1px solid var(--ui-line-soft);border-radius:12px;background:var(--ui-panel)}.ac-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border:1px solid transparent;border-radius:9px;background:none;color:var(--ui-muted);font-family:Fira Code,monospace;font-size:.78rem;cursor:pointer;transition:color .2s,background .2s,border-color .2s,box-shadow .2s}.ac-tab i{font-size:.8rem;opacity:.75;transition:opacity .2s,color .2s}.ac-tab:hover{color:var(--ui-ink);background:#ffffff08}body.light-mode .ac-tab:hover{background:#00000008}.ac-tab.is-active{color:var(--ui-ink);border-color:color-mix(in srgb,var(--ui-accent) 45%,transparent);background:color-mix(in srgb,var(--ui-accent) 11%,transparent);box-shadow:0 0 22px -8px color-mix(in srgb,var(--ui-accent) 60%,transparent)}.ac-tab.is-active i{color:var(--ui-accent);opacity:1}.ac-tab:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.ac-panel{margin-top:1.5rem;animation:acPanelIn .35s cubic-bezier(.2,.8,.2,1)}@keyframes acPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ac-stack{display:grid;gap:1.2rem}.ac-skills{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);gap:1rem;align-items:start}.ac-radar{position:sticky;top:0}.ac-radar .radar-inner{margin-top:.8rem;flex-direction:column;align-items:stretch}.ac-radar .radar-svg{align-self:center}.ac-radar .radar-legend{width:100%}.ac-cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}.ac-cert-group{padding:.95rem 1rem}.ac-cert-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.ac-cert-dir{font-size:.76rem;font-weight:700;color:var(--ui-accent)}.ac-cert-count{min-width:1.5rem;padding:.05rem .45rem;border-radius:999px;border:1px solid var(--ui-line);font-size:.66rem;text-align:center;color:var(--ui-muted)}.ac-cert{display:flex;align-items:center;gap:.65rem;padding:.5rem;margin:0 -.5rem;border-radius:8px;color:var(--ui-body);text-decoration:none;transition:background .2s,color .2s}.ac-cert:hover{background:color-mix(in srgb,var(--ui-accent) 8%,transparent);color:var(--ui-ink)}.ac-cert-logo{width:20px;height:20px;flex-shrink:0;object-fit:contain;border-radius:4px;background:#fff;padding:2px}.ac-cert-name{flex:1;min-width:0;font-family:var(--font-read);font-size:.9rem;line-height:1.35}.ac-cert-view{flex-shrink:0;font-size:.68rem;color:var(--ui-accent);opacity:.55;transition:opacity .2s,transform .2s}.ac-cert:hover .ac-cert-view{opacity:1;transform:translate(2px)}.ac-activity{max-width:820px}.ac-activity .gh-event-row{padding:.65rem .75rem}@container (max-width: 900px){.ac-skills{grid-template-columns:minmax(0,1fr)}.ac-radar{position:static}}@container (max-width: 640px){.ac-tabs{width:100%}.ac-tab{flex:1 1 calc(50% - .25rem);justify-content:center;padding:.55rem .5rem}}.ac-gh-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:1rem;align-items:start}.ac-activity{max-width:none}.ac-gh-profile{display:flex;flex-direction:column;gap:.9rem}.ac-gh-id{display:flex;align-items:center;gap:.85rem}.ac-gh-avatar{width:56px;height:56px;border-radius:50%;border:2px solid color-mix(in srgb,var(--ui-accent) 55%,transparent);box-shadow:0 0 18px -4px color-mix(in srgb,var(--ui-accent) 60%,transparent)}.ac-gh-name{font-size:1.05rem;font-weight:700;color:var(--ui-ink)}.ac-gh-login{font-size:.76rem;color:var(--ui-muted)}.ac-gh-bio{margin:0;font-family:var(--font-read);font-size:.92rem;line-height:1.55;color:var(--ui-body)}.ac-gh-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ui-line-soft);border-radius:10px;overflow:hidden}.ac-gh-stats>div{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.6rem .25rem}.ac-gh-stats>div+div{border-left:1px solid var(--ui-line-soft)}.ac-gh-stats strong{font-size:1.15rem;color:var(--ui-ink);font-variant-numeric:tabular-nums}.ac-gh-stats span{font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted)}.ac-gh-repos-title{font-size:.72rem;font-weight:700;color:var(--ui-accent)}.ac-gh-repos{list-style:none;margin:-.4rem 0 0;padding:0}.ac-gh-repo{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.5rem .45rem;margin:0 -.45rem;border-radius:7px;text-decoration:none;transition:background .2s}.ac-gh-repo:hover{background:color-mix(in srgb,var(--ui-accent) 7%,transparent)}.ac-gh-repo-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:var(--ui-ink)}.ac-gh-lang{padding:.05rem .45rem;border-radius:999px;border:1px solid var(--ui-line-soft);font-size:.64rem;color:var(--ui-body)}.ac-gh-when{font-size:.66rem;color:var(--ui-muted);white-space:nowrap}.ac-gh-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem .9rem;border:1px solid color-mix(in srgb,var(--ui-accent) 45%,transparent);border-radius:10px;color:var(--ui-accent);font-size:.8rem;text-decoration:none;transition:background .2s}.ac-gh-button:hover{background:color-mix(in srgb,var(--ui-accent) 10%,transparent)}.ac-activity .gh-activity-list{margin-top:.4rem}.ac-tab span{white-space:nowrap}@container (max-width: 900px){.ac-gh-layout{grid-template-columns:minmax(0,1fr)}}@container (max-width: 640px){.ac-tab{font-size:.72rem}}.ct2{position:relative;min-height:100%;max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.15rem;padding:1rem 0 2rem;text-align:center}.ct2>*:not(.ct2-beacon){position:relative;z-index:1}.ct2-beacon{position:absolute;top:50%;left:50%;width:min(520px,110%);aspect-ratio:1;transform:translate(-50%,-62%);pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--ui-accent) 10%,transparent) 0%,transparent 60%)}.ct2-beacon span{position:absolute;inset:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--ui-accent) 40%,transparent);opacity:0;animation:ct2Ping 6s cubic-bezier(.2,.6,.3,1) infinite}.ct2-beacon span:nth-child(2){animation-delay:2s}.ct2-beacon span:nth-child(3){animation-delay:4s}@keyframes ct2Ping{0%{transform:scale(.15);opacity:.7}to{transform:scale(1);opacity:0}}.ct2-status{display:inline-flex;align-items:center;gap:.5rem;margin:0;padding:.32rem .85rem;border:1px solid var(--ui-line);border-radius:999px;background:color-mix(in srgb,var(--ui-accent) 6%,transparent);font-size:.74rem;color:var(--ui-body);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ct2-dot{width:7px;height:7px;border-radius:50%;background:var(--ui-accent);--hero-accent: var(--ui-accent);animation:statusPing 2s ease-out infinite}.ct2-sep{opacity:.4}.ct2-h1{margin:.2rem 0 0;font-size:clamp(2rem,6.5cqi,3.3rem);line-height:1.08;letter-spacing:-.02em;color:var(--ui-ink)}.ct2-accent{background:linear-gradient(100deg,var(--ui-accent),var(--ui-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.ct2-sub{margin:0;max-width:46ch;font-family:var(--font-read);font-size:1.02rem;line-height:1.6;color:var(--ui-body)}.ct2-mail{display:flex;align-items:center;gap:.8rem;width:100%;margin-top:.6rem;padding:.5rem .5rem .5rem 1.1rem;border:1px solid color-mix(in srgb,var(--ui-accent) 38%,transparent);border-radius:14px;background:var(--ui-panel);box-shadow:0 0 0 4px color-mix(in srgb,var(--ui-accent) 5%,transparent),0 18px 50px -24px color-mix(in srgb,var(--ui-accent) 55%,transparent);transition:border-color .25s,box-shadow .25s}.ct2-mail:hover,.ct2-mail.is-copied{border-color:color-mix(in srgb,var(--ui-accent) 70%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--ui-accent) 9%,transparent),0 18px 60px -20px color-mix(in srgb,var(--ui-accent) 70%,transparent)}.ct2-mail-prompt{flex-shrink:0;font-size:.8rem;font-weight:700;color:var(--ui-accent)}.ct2-mail-addr{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:clamp(.85rem,2.4cqi,1.02rem);color:var(--ui-ink)}.ct2-mail-actions{display:flex;gap:.4rem;flex-shrink:0}.ct2-mail-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .85rem;border:1px solid var(--ui-line-soft);border-radius:10px;background:none;color:var(--ui-body);font-family:Fira Code,monospace;font-size:.78rem;text-decoration:none;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.ct2-mail-btn:hover{color:var(--ui-ink);border-color:var(--ui-line)}.ct2-mail.is-copied .ct2-mail-btn:first-child{color:var(--ui-accent);border-color:color-mix(in srgb,var(--ui-accent) 50%,transparent)}.ct2-mail-open{border-color:transparent;background:linear-gradient(100deg,var(--ui-accent),var(--ui-accent-2));color:#00140e;font-weight:700}.ct2-mail-open:hover{color:#00140e;filter:brightness(1.08)}body.light-mode .ct2-mail-open,body.light-mode .ct2-mail-open:hover{color:#fff}.ct2-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:.3rem}.ct2-tile{position:relative;display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--ui-line-soft);border-radius:14px;background:var(--ui-panel);color:var(--ui-body);font-size:1.2rem;text-decoration:none;transition:transform .25s cubic-bezier(.2,.8,.2,1),color .2s,border-color .2s,box-shadow .2s}.ct2-tile:hover,.ct2-tile:focus-visible{transform:translateY(-3px);color:var(--ui-accent);border-color:color-mix(in srgb,var(--ui-accent) 50%,transparent);box-shadow:0 10px 26px -12px color-mix(in srgb,var(--ui-accent) 70%,transparent)}.ct2-tile-resume:hover{color:var(--ui-accent-2);border-color:color-mix(in srgb,var(--ui-accent-2) 50%,transparent)}.ct2-tile-label{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%,-4px);padding:.12rem .45rem;border-radius:6px;background:var(--ui-ink);color:#050708;font-size:.62rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}body.light-mode .ct2-tile-label{color:#fff}.ct2-tile:hover .ct2-tile-label,.ct2-tile:focus-visible .ct2-tile-label{opacity:1;transform:translate(-50%)}.ct2-compose{width:100%;margin-top:.8rem}.ct2-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .2rem;border:0;border-bottom:1px dashed var(--ui-line);background:none;color:var(--ui-muted);font-family:Fira Code,monospace;font-size:.78rem;cursor:pointer;transition:color .2s,border-color .2s}.ct2-toggle:hover{color:var(--ui-ink);border-color:var(--ui-accent)}.ct2-toggle i{font-size:.65rem;transition:transform .3s}.ct2-compose.is-open .ct2-toggle i{transform:rotate(180deg)}.ct2-panel{margin-top:1rem;animation:acPanelIn .35s cubic-bezier(.2,.8,.2,1)}.ct2-form{display:flex;flex-direction:column;gap:.9rem;padding:1.2rem;border:1px solid var(--ui-line-soft);border-radius:16px;background:var(--ui-panel);text-align:left}.ct2-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.9rem}.ct2-field{display:flex;flex-direction:column;gap:.35rem}.ct2-label{display:flex;justify-content:space-between;gap:.5rem;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted)}.ct2-field-error{text-transform:none;letter-spacing:0;color:#ff6b7d}.ct2-field input,.ct2-field textarea{width:100%;padding:.65rem .8rem;border:1px solid var(--ui-line-soft);border-radius:10px;background:#00000059;color:var(--ui-ink);font-family:var(--font-read);font-size:.95rem;line-height:1.5;outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s}body.light-mode .ct2-field input,body.light-mode .ct2-field textarea{background:#fbfbfa}.ct2-field input::placeholder,.ct2-field textarea::placeholder{color:var(--ui-muted);opacity:.7}.ct2-field input:focus,.ct2-field textarea:focus{border-color:color-mix(in srgb,var(--ui-accent) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-accent) 14%,transparent)}.ct2-field.has-error input,.ct2-field.has-error textarea{border-color:#ff6b7da6}.ct2-error{margin:0;font-size:.8rem;color:#ff6b7d}.ct2-send{align-self:flex-end;display:inline-flex;align-items:center;gap:.6rem;padding:.65rem 1.2rem;border:0;border-radius:10px;background:linear-gradient(100deg,var(--ui-accent),var(--ui-accent-2));color:#00140e;font-family:Fira Code,monospace;font-size:.84rem;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s}.ct2-send:hover{transform:translateY(-1px);box-shadow:0 10px 28px -10px color-mix(in srgb,var(--ui-accent) 70%,transparent)}.ct2-send:disabled{opacity:.6;cursor:progress}body.light-mode .ct2-send{color:#fff}.ct2-sent{display:flex;align-items:flex-start;gap:.8rem;padding:1.1rem 1.2rem;border:1px solid var(--ui-line);border-radius:16px;background:var(--ui-panel);text-align:left}.ct2-sent i{font-size:1.3rem;color:var(--ui-accent);margin-top:.1rem}.ct2-sent strong{color:var(--ui-ink)}.ct2-sent p{margin:.25rem 0 0;font-family:var(--font-read);color:var(--ui-body)}@container (max-width: 520px){.ct2-mail{flex-wrap:wrap;padding:.8rem;gap:.6rem}.ct2-mail-addr{flex-basis:calc(100% - 4rem)}.ct2-mail-actions{width:100%}.ct2-mail-btn{flex:1;justify-content:center}.ct2-row{grid-template-columns:minmax(0,1fr)}.ct2-status{font-size:.68rem}}@media (prefers-reduced-motion: reduce){.ct2-beacon span{animation:none}}.ct2-time{display:inline-flex;align-items:center;gap:.5rem}@container (max-width: 520px){.ct2-time{display:none}.ct2-status{white-space:nowrap}.ct2-mail-prompt{flex-basis:100%;text-align:left;font-size:.72rem}.ct2-mail-addr{flex-basis:100%;white-space:nowrap;font-size:.86rem}}.nav-icon,.nav-label-short,.resume-mobile{display:none}@media (max-width: 700px){.project-detail-hero,.case-study-grid{grid-template-columns:minmax(0,1fr)}.project-detail-tech{flex-wrap:wrap}}@media (max-width: 640px){html,body{background:#000}body{align-items:stretch;min-height:100vh;min-height:100dvh}body.light-mode{background:#f8f8f6!important}#root{align-items:stretch}.scene-backdrop,.laptop-camera,.laptop-base,.laptop-shadow,.screen-glare{display:none}.laptop{width:100%;margin:0;perspective:none}.laptop-lid,body.light-mode .laptop-lid{padding:0;border-radius:0;background:none;box-shadow:none;animation:none}.laptop-bezel{padding:0;border-radius:0;background:none;box-shadow:none}.laptop-screen{height:100vh;height:100dvh;border-radius:0}.terminal-header{height:48px;padding:0 .85rem;gap:.6rem}.terminal-header .window-buttons span{width:10px;height:10px}.terminal-header .title{font-size:.82rem;letter-spacing:.5px}.theme-toggle{height:52px;margin-right:-.2rem;padding-top:8px;transform:scale(.82);transform-origin:top center;align-self:flex-start}.stats{display:none}.nav,body.light-mode .nav{position:absolute;left:0;right:0;bottom:0;width:100%;max-width:none;margin:0;transform:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:.35rem .3rem calc(.4rem + env(safe-area-inset-bottom,0px));border:0!important;border-top:1px solid rgba(255,255,255,.08)!important;border-radius:0;background:#040607f0!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -12px 30px -18px #000000e6;z-index:60}body.light-mode .nav{border-top-color:#00000014!important;background:#fafaf8f0!important;box-shadow:0 -10px 30px -20px #00000040}.nav a.nav-secondary{display:none!important}.nav a,.nav a:first-child,body.light-mode .nav a,body.light-mode .nav a:first-child{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.28rem;min-height:52px;padding:.25rem 0;border-radius:12px;background:transparent!important;color:#e9f3f08c!important;font-size:.64rem;letter-spacing:.02em;opacity:1;-webkit-tap-highlight-color:transparent}body.light-mode .nav a,body.light-mode .nav a:first-child{color:#0a0a0a80!important}.nav a:hover{background:transparent!important}.nav .nav-icon{display:grid;place-items:center;width:52px;height:28px;border-radius:999px;font-size:1.02rem;transition:background .25s,color .25s,box-shadow .25s}.nav .nav-label-full{display:none}.nav .nav-label-short{display:block}.nav a.active,body.light-mode .nav a.active{color:#3dffb8!important}body.light-mode .nav a.active{color:#0f6e56!important}.nav a.active .nav-icon{background:#3dffb824;box-shadow:0 0 18px -4px #3dffb88c}body.light-mode .nav a.active .nav-icon{background:#0f6e561f;box-shadow:none}.nav a:active .nav-icon{transform:scale(.92)}.ab-scroll,.pj-scroll,.ac-scroll,.ct-scroll{padding:1rem 1rem 1.5rem}.hero{padding:.9rem 1.1rem .75rem}.hero-main{gap:.85rem}.hero-role{font-size:.86rem}.stat-value{font-size:1.2rem}.hero-main .hero-ctas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.55rem;width:100%}.hero-main .hero-ctas .cta-btn{justify-content:center;padding:.6rem .5rem;font-size:.8rem}.hero-main .hero-ctas .cta-ghost{grid-column:1 / -1;padding:.35rem}.profile-card{border-radius:12px}.profile-code{padding:.8rem .85rem .9rem}.page-outlet #home .terminal-input-area{left:1rem;right:1rem;bottom:8px}.terminal-prompt-row{padding-top:6px}.terminal-bot .bot-svg{width:48px;height:63px}.bot-bubble{max-width:190px;font-size:.68rem;padding:.45rem .6rem}.ab-neofetch-body{padding:1rem;gap:.9rem}.ab-avatar{font-size:.72rem}.ab-fact{grid-template-columns:4.6rem minmax(0,1fr);gap:.5rem}.ab-section{margin-top:2rem}.pj-h1,.ac-h1{font-size:1.55rem}.pj-card-featured .pj-title{font-size:1.1rem}.pj-body{padding:.9rem .95rem 1rem}.pj-actions{gap:.8rem}.project-detail-inner{padding:.75rem 1rem 2rem}.project-detail-hero{gap:1rem;margin-bottom:1.5rem}.project-detail-title{font-size:1.2rem}.project-detail-tech .tech-tag{font-size:.7rem}.case-section{padding:.9rem}.gallery-grid{grid-template-columns:minmax(0,1fr)}.project-nav-footer{flex-direction:column}.project-nav-btn{width:100%}.ac-feature-body{padding:1.1rem}.ac-feature-title{font-size:1.15rem}.ac-title{font-size:.8rem}.ct2{justify-content:flex-start;padding-top:1.25rem}.ct2-h1{font-size:2rem}.resume-frame{display:none!important}.resume-mobile{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:2rem 1.5rem;text-align:center;background:#050708;font-family:Fira Code,monospace}.resume-mobile-icon{font-size:3rem;color:#3dffb8;filter:drop-shadow(0 0 18px rgba(61,255,184,.45))}.resume-mobile-title{margin:.4rem 0 0;font-size:1.15rem;color:#e9f3f0}.resume-mobile-sub{margin:0 0 .6rem;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:.9rem;color:#e9f3f099}.resume-mobile-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;width:min(100%,280px);padding:.8rem 1rem;border:1px solid rgba(61,255,184,.35);border-radius:12px;color:#3dffb8;font-size:.88rem;text-decoration:none}.resume-mobile-btn.is-primary{background:linear-gradient(100deg,#3dffb8,#40d9ff);border-color:transparent;color:#00140e;font-weight:700}}:root{--font-read: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif}@media (max-width: 640px){.resume-topbar{padding:14px 18px!important}.resume-topbar a{white-space:nowrap}.resume-top-download{display:none!important}.ac-leetcode .lc-grid{max-width:250px;gap:3px}}@media (max-width: 640px){.history-line,.typed-text{word-break:normal;overflow-wrap:anywhere}.not-found-interactive-terminal{padding:1rem;font-size:.85rem;margin-bottom:1.5rem}.not-found-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.not-found-paths a{padding:.6rem;border:1px solid rgba(255,255,255,.1);border-radius:10px;text-align:center;font-size:.9rem}body.light-mode .not-found-paths a{border-color:#0000001a}}.boot-loader{transition:opacity .25s ease}.boot-skip{position:absolute;bottom:1.5rem;left:0;right:0;text-align:center;font-family:Fira Code,monospace;font-size:.7rem;color:#ffffff4d}.page-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:Fira Code,monospace;font-size:.85rem;color:#e9f3f08c}.page-loader.is-fullscreen{position:fixed;background:#000}.page-loader-prompt{color:#3dffb8;margin-right:.4rem}body.light-mode .page-loader{color:#0a0a0a8c}body.light-mode .page-loader-prompt{color:#0f6e56}body.light-mode .page-loader.is-fullscreen{background:#f8f8f6}.page-loader-dots:after{content:"";animation:abDots 1.2s steps(4) infinite}.bl-header{margin-bottom:1.4rem}.bl-scroll-inner,.bl-list,.bl-article,.bl-header{max-width:820px;margin-inline:auto}.bl-lede{margin:0 0 1rem;max-width:60ch;font-family:var(--font-read);font-size:1rem;line-height:1.6;color:var(--ui-body)}.bl-tags{justify-content:flex-start}.bl-list{list-style:none;padding:0;display:grid;gap:.9rem}.bl-card{display:flex;flex-direction:column;gap:.55rem;padding:1.15rem 1.25rem;border:1px solid var(--ui-line-soft);border-radius:14px;background:var(--ui-panel);text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s}.bl-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--ui-accent) 40%,transparent);box-shadow:0 16px 40px -24px color-mix(in srgb,var(--ui-accent) 50%,transparent)}.bl-card.is-latest{border-color:var(--ui-line)}.bl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.72rem;color:var(--ui-muted)}.bl-new{margin-left:auto;padding:.08rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--ui-accent) 14%,transparent);color:var(--ui-accent);font-weight:700}.bl-title{margin:0;font-size:1.12rem;line-height:1.35;color:var(--ui-ink)}.bl-card:hover .bl-title{color:var(--ui-accent)}.bl-summary{margin:0;font-family:var(--font-read);font-size:.95rem;line-height:1.6;color:var(--ui-body)}.bl-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.2rem}.bl-tags-inline{display:flex;flex-wrap:wrap;gap:.32rem}.bl-read{flex-shrink:0;font-size:.76rem;font-weight:700;color:var(--ui-accent)}.bl-back{display:inline-block;margin-bottom:1.2rem;font-size:.78rem;color:var(--ui-accent);text-decoration:none}.bl-back:hover{text-decoration:underline}.bl-article-head{display:flex;flex-direction:column;gap:.7rem;padding-bottom:1.3rem;border-bottom:1px solid var(--ui-line-soft)}.bl-article-title{margin:0;font-size:clamp(1.5rem,3.6cqi,2.1rem);line-height:1.2;letter-spacing:-.01em;color:var(--ui-ink)}.bl-article-summary{margin:0;font-family:var(--font-read);font-size:1.08rem;line-height:1.6;color:var(--ui-body)}.bl-prose{max-width:70ch;padding-top:.6rem;font-family:var(--font-read);font-size:1.02rem;line-height:1.8;color:var(--ui-body)}.bl-prose :is(p,li,a,strong,em,h2,h3,blockquote){font-family:var(--font-read)}.bl-prose p{margin:1rem 0}.bl-prose strong{color:var(--ui-ink)}.bl-prose a{color:var(--ui-accent);text-underline-offset:3px}.bl-prose h2{margin:2.2rem 0 .6rem;font-family:Fira Code,monospace;font-size:1.15rem;color:var(--ui-ink)}.bl-prose h2:before{content:"## ";color:var(--ui-accent);opacity:.6}.bl-prose h3{margin:1.6rem 0 .4rem;font-size:1.02rem;color:var(--ui-ink)}.bl-prose ul,.bl-prose ol{padding-left:1.3rem}.bl-prose li{margin:.35rem 0}.bl-prose li::marker{color:var(--ui-accent)}.bl-prose :not(pre)>code{padding:.1rem .35rem;border-radius:5px;background:color-mix(in srgb,var(--ui-accent) 10%,transparent);font-family:Fira Code,monospace;font-size:.86em;color:var(--ui-ink)}.bl-prose pre{margin:1.3rem 0;padding:1rem 1.1rem;border:1px solid var(--ui-line-soft);border-radius:12px;background:#00000073;overflow-x:auto;font-size:.84rem;line-height:1.65}body.light-mode .bl-prose pre{background:#f4f5f4}.bl-prose pre code{font-family:Fira Code,monospace;color:var(--ui-ink)}.bl-project-link{display:flex;flex-direction:column;gap:.2rem;margin:2rem 0 1.2rem;padding:1rem 1.15rem;border:1px solid var(--ui-line);border-radius:12px;color:var(--ui-accent);text-decoration:none;font-size:.9rem;transition:background .2s}.bl-project-link:hover{background:color-mix(in srgb,var(--ui-accent) 7%,transparent)}.bl-project-kicker{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-muted)}.bl-pager{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;padding-top:1.2rem;border-top:1px solid var(--ui-line-soft)}.bl-pager-link{display:flex;flex-direction:column;gap:.3rem;padding:.85rem 1rem;border:1px solid var(--ui-line-soft);border-radius:12px;color:var(--ui-ink);text-decoration:none;font-family:var(--font-read);font-size:.9rem;transition:border-color .2s}.bl-pager-link:hover{border-color:var(--ui-line)}.bl-pager-link.is-next{text-align:right}.bl-pager-dir{font-family:Fira Code,monospace;font-size:.7rem;color:var(--ui-accent)}.bl-missing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}@media (max-width: 640px){.bl-pager{grid-template-columns:minmax(0,1fr)}.bl-pager-link.is-next{text-align:left}.bl-prose{font-size:.98rem}}.heatmap-svg{display:block;flex:none}.heatmap-svg rect{transition:opacity .15s}.heatmap-svg:not(.is-skeleton) rect:hover{opacity:.7;cursor:pointer}.heatmap-svg.is-skeleton{color:#ffffff0f;animation:acPulse 1.4s ease-in-out infinite}body.light-mode .heatmap-svg.is-skeleton{color:#0a0a0a12}@media (prefers-reduced-motion: reduce){.heatmap-svg.is-skeleton,.ac-skeleton{animation:none}}.zd-page{--zd-accent: #3dffb8;--zd-ink: #f1f6f3;--zd-dim: rgba(241, 246, 243, .62);--zd-glass: rgba(8, 12, 14, .55);--zd-line: rgba(255, 255, 255, .14);position:fixed;inset:0;overflow:hidden;background:#0b0f14;color:var(--zd-ink);font-family:Fira Code,ui-monospace,monospace;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.zd-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}.zd-page .zd-dim{color:var(--zd-dim)}.zd-page .zd-prompt{color:var(--zd-accent)}.zd-hud{position:absolute;inset:0;pointer-events:none}.zd-hud-top{position:absolute;top:max(14px,env(safe-area-inset-top));left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.zd-chip{padding:7px 12px;border:1px solid var(--zd-line);border-radius:10px;background:var(--zd-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.78rem;white-space:nowrap}.zd-hud-actions{display:flex;gap:8px;pointer-events:auto}.zd-icon-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--zd-line);border-radius:10px;background:var(--zd-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--zd-ink);cursor:pointer;transition:border-color .2s,color .2s}.zd-icon-btn:hover,.zd-icon-btn:focus-visible{border-color:var(--zd-accent);color:var(--zd-accent);outline:none}.zd-hud-place{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 52px);left:16px;font-size:.78rem;text-shadow:0 1px 8px rgba(0,0,0,.6);animation:zdFadeIn .6s ease both}.zd-dash{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:18px;padding:10px 20px;border:1px solid var(--zd-line);border-radius:16px;background:var(--zd-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.zd-speed{display:flex;align-items:baseline;gap:6px}.zd-speed-value{font-size:2.1rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;color:var(--zd-ink)}.zd-speed-unit{font-size:.72rem;color:var(--zd-dim)}.zd-dash-side{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:.72rem;white-space:nowrap}.zd-gear{min-width:1.6em;padding:1px 6px;border-radius:6px;background:#3dffb824;color:var(--zd-accent);font-weight:700;text-align:center}.zd-compass{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--zd-line);border-radius:50%;font-size:.7rem;color:var(--zd-accent)}.zd-compass-needle{display:inline-block;transition:transform .15s linear}.zd-cruise,.zd-toast{position:absolute;left:50%;transform:translate(-50%);padding:6px 12px;border:1px solid var(--zd-line);border-radius:999px;background:var(--zd-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.74rem;white-space:nowrap}.zd-cruise{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 74px);color:var(--zd-accent)}.zd-toast{top:calc(max(14px,env(safe-area-inset-top)) + 58px);animation:zdFadeIn .4s ease both}.zd-debug{position:absolute;right:16px;top:calc(max(14px,env(safe-area-inset-top)) + 54px);margin:0;padding:6px 10px;border-radius:8px;background:#0009;font-size:.68rem;line-height:1.5}.zd-intro,.zd-menu-backdrop{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:linear-gradient(180deg,#05080a33,#05080ab8);animation:zdFadeIn .5s ease both}.zd-menu-backdrop{background:#05080a8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.zd-intro-card,.zd-menu{width:min(460px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:26px 26px 22px;border:1px solid var(--zd-line);border-radius:18px;background:#080c0ec7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px #00000080}.zd-line{margin:0 0 4px;font-size:.8rem}.zd-line:nth-child(2){animation:zdFadeIn .4s .25s ease both}.zd-line:nth-child(3){animation:zdFadeIn .4s .5s ease both}.zd-error{color:#ff8a80}.zd-title{margin:18px 0 8px;font-size:clamp(2.2rem,7vw,3.2rem);line-height:1;letter-spacing:-.02em;background:linear-gradient(100deg,#ffd29a,#ff8f7a 45%,#3dffb8);-webkit-background-clip:text;background-clip:text;color:transparent;animation:zdFadeIn .6s .7s ease both}.zd-lede{margin:0 0 18px;font-family:var(--font-read);font-size:.98rem;line-height:1.55;color:var(--zd-dim)}.zd-keys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0 0 20px;padding:0;list-style:none;font-size:.76rem;color:var(--zd-dim)}.zd-keys-touch{grid-template-columns:1fr}.zd-page kbd{display:inline-block;min-width:1.8em;margin-right:6px;padding:2px 6px;border:1px solid var(--zd-line);border-bottom-width:2px;border-radius:6px;background:#ffffff0f;color:var(--zd-ink);font:inherit;text-align:center}.zd-start{width:100%;padding:13px 16px;border:1px solid var(--zd-accent);border-radius:12px;background:#3dffb81f;color:var(--zd-accent);font:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .2s,transform .2s;animation:zdGlow 2.4s ease-in-out infinite}.zd-start:hover,.zd-start:focus-visible{background:#3dffb838;outline:none;transform:translateY(-1px)}.zd-back{display:inline-block;margin-top:14px;font-size:.76rem;color:var(--zd-dim);text-decoration:none}.zd-back:hover,.zd-back:focus-visible{color:var(--zd-accent)}.zd-menu-title{margin:0 0 16px;font-size:1.1rem}.zd-menu-actions{display:grid;gap:8px;margin-bottom:18px}.zd-menu-btn{padding:10px 14px;border:1px solid var(--zd-line);border-radius:10px;background:#ffffff0a;color:var(--zd-ink);font:inherit;font-size:.84rem;text-align:left;cursor:pointer;transition:border-color .2s,background .2s}.zd-menu-btn:hover,.zd-menu-btn:focus-visible{border-color:var(--zd-accent);outline:none}.zd-menu-btn.is-primary{border-color:#3dffb899;background:#3dffb81f;color:var(--zd-accent)}.zd-field{margin:0 0 16px;padding:0;border:0}.zd-field legend{margin-bottom:8px;padding:0;font-size:.72rem;color:var(--zd-dim);text-transform:lowercase}.zd-swatches{display:flex;flex-wrap:wrap;gap:10px}.zd-swatch{width:30px;height:30px;border:2px solid transparent;border-radius:50%;background:var(--swatch);box-shadow:inset 0 -4px 8px #00000040;cursor:pointer;transition:transform .15s,border-color .15s}.zd-swatch:hover{transform:scale(1.1)}.zd-swatch.is-active,.zd-swatch:focus-visible{border-color:var(--zd-ink);outline:none}.zd-segmented{display:flex;gap:4px;padding:3px;border:1px solid var(--zd-line);border-radius:10px}.zd-segmented button{flex:1;padding:7px 0;border:0;border-radius:7px;background:none;color:var(--zd-dim);font:inherit;font-size:.76rem;cursor:pointer}.zd-segmented button.is-active{background:#3dffb829;color:var(--zd-accent)}.zd-segmented button:focus-visible{outline:1px solid var(--zd-accent)}.zd-toggles label{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.8rem;cursor:pointer}.zd-toggles input{accent-color:#3dffb8;width:16px;height:16px}.zd-note{margin:6px 0 0;font-size:.7rem;color:var(--zd-dim)}.zd-help{margin-bottom:12px;font-size:.8rem}.zd-help summary{cursor:pointer;color:var(--zd-dim);margin-bottom:10px}.zd-help .zd-keys{margin-bottom:4px}.zd-photo-bar{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;border:1px solid var(--zd-line);border-radius:14px;background:var(--zd-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.76rem;white-space:nowrap}.zd-touch{position:absolute;left:0;right:0;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 70px);display:flex;justify-content:space-between;align-items:flex-end;padding:0 14px;pointer-events:none}.zd-touch-left,.zd-touch-right{display:flex;gap:10px;align-items:flex-end;pointer-events:auto}.zd-pad{width:70px;height:70px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:#080c0e6b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--zd-ink);font:inherit;font-size:1.3rem;touch-action:none;-webkit-touch-callout:none}.zd-pad:active{background:#3dffb838;border-color:var(--zd-accent)}.zd-pad-brake{color:#ff8a80}.zd-pad-drift{width:58px;height:58px;font-size:1.1rem}.zd-pad-cruise{position:absolute;right:14px;bottom:84px;width:auto;height:34px;padding:0 12px;border-radius:999px;font-size:.72rem}.zd-pad-cruise[aria-pressed=true]{color:var(--zd-accent);border-color:#3dffb880}.zd-touch-right{position:relative}.zd-dash.is-touch{bottom:max(14px,env(safe-area-inset-bottom));padding:8px 16px;gap:12px}.zd-dash.is-touch .zd-speed-value{font-size:1.6rem}.zd-cruise.is-touch{bottom:auto;top:calc(max(14px,env(safe-area-inset-top)) + 84px)}.zd-toast.is-touch{top:calc(max(14px,env(safe-area-inset-top)) + 122px)}.zd-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;transition:opacity .45s ease}.zd-flash.is-on{opacity:.35;transition:none}@keyframes zdFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes zdGlow{0%,to{box-shadow:0 0 #3dffb800}50%{box-shadow:0 0 22px #3dffb840}}@media (max-width: 640px){.zd-chip{font-size:.7rem;padding:6px 10px}.zd-chip .zd-dim{display:none}.zd-intro-card,.zd-menu{padding:20px 18px 18px}.zd-keys{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.zd-start,.zd-line,.zd-title,.zd-hud-place,.zd-toast,.zd-intro,.zd-menu-backdrop{animation:none}}.cta-drive{color:#ffb27a;border-color:#ffb27a66;background:linear-gradient(100deg,#ff8f7a14,#ffd29a0d)}.cta-drive:hover,.cta-drive:focus-visible{color:#ffd29a;border-color:#ffb27a;box-shadow:0 0 18px #ff966e33}body.light-mode .cta-drive{color:#a4481d;border-color:#a4481d59;background:#a4481d0a}body.light-mode .cta-drive:hover{color:#7a3212;border-color:#a4481d}@media (max-width: 640px){.hero-main .hero-ctas .cta-drive~.cta-ghost{grid-column:auto;padding:.6rem .5rem}}
