@keyframes blink{50%{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}body{font-family:Fira Code,monospace;background-color:#1e1e1e;color:#f2f2f2;margin:0;padding:0;overflow-x:hidden}.app-container{padding:20px;max-width:100vw;box-sizing:border-box}h1{color:#48b5e0;font-weight:700}section{margin-bottom:1rem}.console-container{padding:1rem}.skip-button{position:absolute;top:2rem;right:1.5rem;background:#151515;color:#f2f2f2;padding:.5rem 1rem;text-align:left;font-weight:700;font-family:monospace;border-radius:8px;font-size:.9rem;line-height:1.4;cursor:pointer;transition:opacity .8s ease-out,transform .8s ease-out;opacity:0}.skip-button.visible{opacity:1}.skip-button:before{content:"$";color:#48b5e0;font-weight:700;margin-right:.3rem;font-size:1rem}.skip-button:hover{background:#2b2b2b;box-shadow:0 2px 2px #4885b066}.output-line{margin-top:.5em}.command-line{font-size:1.2rem;font-weight:700;line-height:1.4}.loading-line{color:#90ee90;white-space:nowrap;overflow:hidden;font-size:1.2rem;font-weight:700;line-height:1.4}.blinking-cursor:after{content:"█";animation:blink 1s step-start infinite;font-weight:700;color:#f2f2f2}.terminal-box{font-size:1.1rem;line-height:1.8;color:#f2f2f2;max-width:650px;margin:2rem auto;padding:1.5rem;text-align:left;font-weight:700;background:#151515;border-left:3px solid #48B5E0;transition:all .3s ease;border-radius:8px;box-shadow:0 8px 24px #00000026;opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s ease-out,box-shadow .3s ease}.terminal-box.visible{opacity:1;transform:translateY(0)}.terminal-box:hover{background:#2b2b2b;box-shadow:0 4px 4px #4885b066;transition:all .3s ease}.terminal-box:before{content:"$";color:#48b5e0;font-weight:700;margin-right:.5rem;font-size:1.2rem}.about-view{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:100vh;opacity:0;animation:fadeIn 1s ease-out .3s forwards,slideUp .8s ease-out .3s forwards}.section-heading{color:#48b5e0;font-size:3rem;font-weight:700;margin-bottom:2rem;text-shadow:1px 1px 2px #FFFFFF99;text-align:center}.typed-about-text{color:#48b5e0;font-weight:700}.about-subheading{font-size:1.5rem;color:#f2f2f2;font-weight:700;margin-bottom:.8rem}.social-icon{font-size:2.5rem;color:#f2f2f2;transition:all .3s ease;margin:10px;padding:10px}.social-icon:hover{transform:scale(1.15)}.social-tooltip{position:relative;display:inline-block;bottom:8px}.social-tooltip:after{content:attr(data-tooltip);position:absolute;left:50%;transform:translate(-50%);background:#2b2b2b;color:#f2f2f2;padding:4px 8px;border-radius:4px;font-size:1rem;white-space:nowrap;opacity:0;transition:all .3s ease}.social-tooltip:hover:after{opacity:1}.social-icons-container>.social-tooltip:after{bottom:-15px}.cert-logos>.social-tooltip:after{bottom:-30px}.education-university>.social-tooltip:after{bottom:-40px}.cert-logos{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;padding:4rem}.cert-logo{height:100px;width:auto}.cert-logo:hover{transform:scale(1.1);transition:all .3s ease}.education-view{opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s ease-out}.education-view.visible{opacity:1;transform:translateY(0)}.education-split{display:flex;gap:3rem;max-width:900px;margin:1.5rem auto;background:#1e1e1e;border-radius:8px}.education-university{flex:1;min-width:300px;text-align:center}.education-title{font-weight:700;font-size:1.4rem;color:#48b5e0;padding-bottom:1rem}.degree{font-size:1.3rem;font-weight:700;color:#f2f2f2;display:flex;flex-direction:column;padding:1rem}.university-details{padding:1rem}.university-description,.university-grade{display:block;font-size:1.1rem;margin-bottom:.3rem}.experience-view{padding:2rem 1rem;background:#1e1e1e;max-width:1200px;margin:0 auto}.timeline{position:relative;margin:0 auto;padding:2rem 0;max-width:1200px;overflow-x:hidden}.timeline:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:3px;height:100%;background:#48b5e0;z-index:0}.timeline-item{position:relative;width:50%;padding:2rem;box-sizing:border-box}.timeline-item.left{left:0;text-align:right;padding-right:4rem}.timeline-item.right{left:50%;text-align:left;padding-left:4rem}.timeline-content{background:#151515;border-radius:8px;padding:1.5rem;position:relative;border-left:3px solid transparent;border-right:3px solid transparent;max-width:370px;box-sizing:border-box;box-shadow:0 8px 24px #00000026;opacity:0;transition:opacity .8s ease-out,transform .8s ease-out,box-shadow .3s ease;display:block;font-size:.8rem;color:#f2f2f2;margin-bottom:.75rem}.timeline-content:hover{background:#2b2b2b;box-shadow:0 4px 4px #4885b066;transition:all .3s ease}.timeline-item.left .timeline-content{border-right-color:#48b5e0;border-left-color:transparent;text-align:right;margin-left:auto;margin-right:0;transform:translate(-40px)}.timeline-item.right .timeline-content{border-left-color:#48b5e0;border-right:transparent;text-align:left;margin-right:auto;margin-left:0;transform:translate(40px)}.timeline-item.visible .timeline-content{opacity:1;transform:translate(0)}.timeline-circle{position:absolute;top:50%;width:4rem;height:4rem;border-radius:50%;background-color:#fff;display:flex;justify-content:center;align-items:center;transform:scale(0);transition:transform .8s}.timeline-item.left .timeline-circle{right:calc(0px - 2rem)}.timeline-item.right .timeline-circle{left:calc(0px - 2rem)}.timeline-item.visible .timeline-circle{transform:scale(1) translateY(-50%)}.timeline-circle img{width:60%;height:60%}.timeline-content .timeline-role{font-size:1.25rem;font-weight:700;color:#f2f2f2}.timeline-content .timeline-company{display:block;font-size:1.1rem;font-weight:700;color:#48b5e0;margin-bottom:1rem;position:relative}.timeline-date{display:block;font-size:.9rem;font-weight:700;color:#f2f2f2;margin-bottom:.75rem}.timeline-content .timeline-description{font-size:.9rem;line-height:1.6;color:#f2f2f2;margin-bottom:0}.projects-view{padding:2rem;flex-direction:column;align-items:center;max-width:1200px;margin:0 auto}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:2rem;width:100%;max-width:850px;margin:0 auto}.flip-card{perspective:1000px;opacity:0;transition:opacity .8s ease-out,transform .8s ease-out;cursor:pointer}.flip-card.visible{opacity:1;transform:translateY(0)}.flip-card-inner{position:relative;width:100%;height:300px;min-height:300px;transition:transform .8s;transform-style:preserve-3d}.flip-card.flipped .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{position:absolute;top:0;left:0;right:0;bottom:0;backface-visibility:hidden;border-radius:8px;display:flex;justify-content:center;align-items:center;padding:1.5rem;color:#f2f2f2;background:#151515;line-height:1.8;box-shadow:0 8px 24px #00000026;transition:background .3s ease,box-shadow .3s ease}.flip-card-front:hover,.flip-card-back:hover{box-shadow:0 4px 8px #4885b066}.flip-card-front{font-size:1.1rem;text-align:center}.flip-card-back{transform:rotateY(180deg);flex-direction:column;text-align:center;overflow:hidden;padding:0}.card-image-banner{width:100%;height:50%;background-size:cover;background-position:center top right;position:absolute;top:0;left:0}.card-image-banner:after{content:"";position:absolute;bottom:0;left:0;right:0;height:10px;background:linear-gradient(transparent,#151515);pointer-events:none}.card-content-area{position:absolute;bottom:0;left:0;width:100%;height:50%;padding:1rem;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between}.project-title{font-size:1.5rem;margin:0}.project-description{font-size:.9rem;margin:.5rem 0;color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;flex-grow:1;line-height:1.3}.about-button{padding:.4rem 1rem;background-color:#805ad5;color:#fff;text-decoration:none;border-radius:50px;font-weight:700;font-size:.8rem;margin:0 auto;transition:background-color .3s ease,transform .2s ease;box-shadow:0 4px 10px #805ad566;border:none;cursor:pointer;width:fit-content;min-width:60px}.about-button:hover{background:#be91cf;text-decoration:underline}.bug-image-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:#151515f2;padding:1rem;border:2px solid #48B5E0;border-radius:8px;z-index:999;display:flex;flex-direction:column;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease}.bug-image-popup.visible{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}.bug-image-caption{color:#f2f2f2;margin-bottom:.8rem;font-size:1.1rem;text-align:center}.bug-image-popup img{max-width:90vw;max-height:80vh;border-radius:8px}.close-button{margin-top:.8rem;background:#805ad5;color:#f2f2f2;border:none;padding:.4rem .8rem;border-radius:4px;cursor:pointer;transition:background .3s ease}.close-button:hover{background:#805ad5}body.popup-active{pointer-events:none}body.popup-active .bug-image-popup{pointer-events:auto}.resume-buttons{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:2rem;flex-wrap:wrap}.terminal-btn{background-color:#151515;color:#f2f2f2;border:none;padding:.6rem 1rem;font-size:1.1rem;font-family:Fira Code,monospace;font-weight:700;cursor:pointer;border-radius:6px;box-shadow:0 6px 12px #00000026;display:inline-flex;align-items:center;gap:.5rem;transition:background-color .3s ease,box-shadow .3s ease,transform .2s ease;-webkit-user-select:none;user-select:none}.terminal-btn:hover{background-color:#2b2b2b;box-shadow:0 8px 16px #4885b033;transform:translateY(-2px)}.terminal-btn:active{background-color:#101010;box-shadow:0 4px 8px #0004;transform:translateY(1px)}.resume-view{opacity:0;transform:translateY(10px);transition:opacity .8s ease-out,transform .8s ease-out}.resume-view.visible{opacity:1;transform:translateY(0)}.resume-viewer-container{max-height:0;opacity:0;overflow:hidden;transition:max-height .5s ease,opacity .4s ease;border-radius:8px;margin-top:1rem}.resume-buttons{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:2rem;flex-wrap:wrap;opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s ease-out,box-shadow .3s ease}.resume-view.visible .resume-buttons{opacity:1;transform:translateY(0)}.resume-viewer-container.slide-down{max-height:200vh;height:auto;opacity:1;overflow:visible}.resume-viewer-container.slide-up{max-height:0;opacity:0;overflow:hidden}.resume-viewer-controls{display:flex;justify-content:flex-end;padding:.5rem 1rem;border-bottom:1.5px solid #48B5E0;background-color:#111;box-shadow:inset 0 -1px 5px #48b5e02b}.pdf-container{width:100%;height:auto;display:flex;justify-content:center;align-items:flex-start;padding:1rem;background-color:#1e1e1e;border-radius:8px;box-sizing:border-box}.react-pdf__Page{margin:0 auto;box-shadow:0 4px 8px #0000001a;border-radius:8px;background:#111}.react-pdf__Page__canvas{max-width:100%;height:auto!important;border-radius:12px}.footer{background:#151515;border-top:2px solid #48B5E0;padding:2rem 1rem 1rem;text-align:center}.footer-contact-text{font-size:1.2rem;color:#f2f2f2;margin-bottom:.2rem;font-weight:700}.footer-icon{font-size:1.5rem;color:#f2f2f2;padding:.8rem;border-radius:8px;display:inline-flex;transition:all .3s ease}.footer-icon:hover{transform:translateY(-2px) scale(1.3)}.footer-tech{font-size:1.1rem;color:#f2f2f2;display:flex;align-items:center;justify-content:center;gap:.5rem}.footer-tech-link{text-decoration:none;display:inline-flex;align-items:center;font-size:1.4rem;transition:transform .3s ease;margin:0 .3rem;padding:.1rem}.footer-tech-link:hover{transform:translateY(-2px) scale(1.3)}.footer-tech-icon-typescript{color:#3178c6}.footer-tech-icon-react{color:#61dafb}.footer-tech-icon-vite{color:#646cff}.footer-tech-icon-claude{color:#ff6b35}@media (max-width: 768px){.app-container{padding:10px}.console-container{padding:1rem;box-sizing:border-box;font-size:1rem}.command-line,.loading-line{font-size:1rem}.skip-button{font-size:.8rem;padding:.4rem .8rem;top:auto;bottom:1rem;right:.5rem}.skip-button:before{font-size:.9rem;margin-right:.2rem}.section-heading{font-size:2.2rem}.about-subheading{font-size:1.2rem}#about-description{font-size:1rem}.social-tooltip:after{font-size:.9rem}.cert-logos>.social-tooltip:after{bottom:-25px;font-size:.7rem}.education-university>.social-tooltip:after{bottom:-25px}.social-icon{font-size:2.3rem;margin:18px;padding:8px}.education-view{opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s ease-out}.education-view.visible{opacity:1;transform:translateY(0)}.education-split{align-items:center;justify-content:center;text-align:center}.education-university{text-align:center;padding:0 1rem}.education-title{font-size:1.1rem;padding:1rem;margin-bottom:1rem;text-align:center}.degree{font-size:1rem}.cert-logos{justify-content:center;padding:2rem}.cert-logo{height:85px;margin-bottom:1rem}.university-details{padding:1rem;text-align:center}.university-description,.university-grade{font-size:1rem;display:block;margin-top:.5rem}.timeline{padding:2rem 0;margin:0;overflow-x:visible;position:relative}.timeline:before{left:2.5rem;width:2px;z-index:1}.timeline-item{position:relative;margin-bottom:3rem;width:100%;left:0;padding-left:6rem;padding-right:1rem;padding-top:0;padding-bottom:0;box-sizing:border-box;text-align:left}.timeline-item.left,.timeline-item.right{left:0;width:100%;padding-left:6rem;padding-right:1rem;box-sizing:border-box}.timeline-item.left .timeline-content,.timeline-item.right .timeline-content{border-left-color:#48b5e0;border-right-color:transparent;text-align:left;margin:0;transform:none;position:relative;margin-left:.5rem;max-width:calc(100vw - 7rem);box-sizing:border-box}.timeline-item.right .timeline-circle,.timeline-item.left .timeline-circle{left:.5rem;top:50%;transform:translateY(-50%);position:absolute;z-index:5}.timeline-circle{width:4rem;height:4rem;background-color:#f2f2f2;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 8px #48b5e066}.timeline-circle img{width:70%;height:70%;object-fit:contain}.timeline-content .timeline-role{font-size:1.1rem;font-weight:700;color:#f2f2f2;margin-bottom:.3rem;line-height:1.3}.timeline-content .timeline-company{font-size:1rem;font-weight:700;color:#48b5e0;margin-bottom:.5rem;display:block}.timeline-content .timeline-date{font-size:.9rem;font-weight:700;color:#f2f2f2;margin-bottom:.8rem;display:block}.timeline-content .timeline-description{font-size:.9rem;line-height:1.6;color:#f2f2f2;margin:0}.timeline-item.visible .timeline-content{opacity:1;transform:none}.timeline-item.visible .timeline-circle{transform:translateY(-50%) scale(1)}.projects-grid{grid-template-columns:1fr;gap:1.5rem;max-width:calc(100vw - 2rem);margin:0 auto}.flip-card-inner{height:320px;min-height:320px}.project-title{font-size:1.3rem}.project-description{font-size:.95rem;overflow:hidden;line-height:1.2}.card-content-area{padding:.8rem;height:55%}.card-image-banner{height:45%}.about-button{font-size:.75rem;padding:.3rem .8rem;min-width:50px}.bug-image-popup img{max-width:75vw;max-height:70vh}.pdf-container{padding:.5rem}.terminal-box{margin:1rem auto 2rem;font-size:.95rem;padding:1rem;box-sizing:border-box;max-width:calc(100vw - 2.2rem)}#life .terminal-box #resume .terminal-box,#projects .terminal-box,#experience .terminal-box,#education .terminal-box{margin:1rem auto 2rem;font-size:.95rem;padding:1rem;max-width:calc(100vw - 2rem)}#education .terminal-box{margin-bottom:1.5rem}.footer-contact-text{font-size:1.1rem}.footer-tech{font-size:1rem}}@media (max-width: 480px){.pdf-container{padding:.25rem}.timeline:before{left:2rem}.timeline-item.left,.timeline-item.right{padding-left:5rem;padding-right:.5rem}.timeline-item.right .timeline-circle,.timeline-item.left .timeline-circle{left:.5rem;width:3rem;height:3rem;top:50%;transform:translateY(-50%)}.timeline-item.visible .timeline-circle{transform:translateY(-50%) scale(1)}.timeline-item.left .timeline-content,.timeline-item.right .timeline-content{max-width:calc(100vw - 6rem);margin-left:.3rem}.timeline-content{padding:1.2rem;font-size:.85rem}.timeline-content .timeline-role{font-size:1rem}.timeline-content .timeline-company{font-size:.9rem}.timeline-content .timeline-date{font-size:.85rem}.timeline-content .timeline-description{font-size:.8rem;line-height:1.5}.terminal-btn{font-size:.9rem}}.card-stack-container{display:flex;justify-content:center;margin:2rem auto;opacity:0;transform:translateY(20px);transition:all .8s ease-out}.card-stack-container.visible{opacity:1;transform:translateY(0)}.life-card{position:absolute;top:0;left:0;width:100%;height:100%;background:#151515;border-radius:12px;overflow:hidden;transition:opacity .3s ease,transform .3s ease,box-shadow .3s ease}.back-card{opacity:0;transform:translateY(0);z-index:1}.front-card{opacity:1;transform:translateY(0);z-index:2}.card-stack{position:relative;width:350px;height:350px;cursor:pointer;perspective:1000px;transition:transform .1s ease}.card-stack:hover .front-card{box-shadow:0 8px 16px #4885b033;transform:translateY(-3px)}.card-stack:active{transform:translateY(3px)}.card-stack:active .front-card{box-shadow:none;transform:translateY(0)}.card-image{width:100%;height:180px;background-size:cover;background-position:center;background-repeat:no-repeat;position:relative}.card-image:after{content:"";position:absolute;bottom:0;left:0;right:0;height:10px;background:linear-gradient(transparent,#151515)}.card-content{padding:1rem;height:calc(100% - 180px);display:flex;flex-direction:column;position:relative}.card-title{color:#48b5e0;font-size:1.3rem;font-weight:700;margin:0}.card-story{color:#f2f2f2;font-size:.9rem;line-height:1.35;flex-grow:1}.click-hint{position:absolute;bottom:2.5rem;right:1rem;color:#f2f2f2}.hint-text{color:#48b5e0;font-size:.8rem;font-weight:700}@media (max-width: 768px){.card-stack{width:300px;height:300px}.card-image{height:140px}.card-content{padding:.8rem}.card-title{font-size:.8rem}.card-story{font-size:.75rem}.click-hint{bottom:0rem;right:.8rem}}@media (max-width: 480px){.card-stack{width:280px;height:280px}.card-stack-container{margin:2rem auto 0;padding:0 1rem}}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}
