html,body,#root{height:100dvh;margin:0}.app-root{position:relative;width:100%;height:100vh;overflow:hidden}.os-background{position:fixed;inset:0;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#0f0f1a}.os-video{position:absolute;inset:0;width:100vw;height:100dvh;object-fit:cover;pointer-events:none;z-index:-1}.signature{position:fixed;left:16px;bottom:16px;width:300px;height:100px;background-image:url(/assets/signature-COxJAmkS.png);background-repeat:no-repeat;background-size:contain;background-position:left bottom;pointer-events:none;z-index:999}.screen-container{position:relative;width:100vw;height:100dvh;display:flex;flex-direction:column;background-color:#d01a1a00;z-index:1000;justify-content:center}.nav-div{flex:.5;align-self:flex-end;width:250px;display:flex;flex-direction:column;margin:20px}@font-face{font-family:Josefin;src:url(/assets/Josefin-LEG2TnHh.woff2) format("woff2");font-weight:100 700;font-style:normal;font-display:swap}.nav-div h1{font-weight:100;justify-self:left;align-self:flex-start;font-size:27px;color:#fff;font-family:Josefin,system-ui,sans-serif;margin:15px;cursor:pointer;transition:all .3s ease;position:relative;padding:5px 10px;color:#6d6d6d}.nav-div h1:after{content:"";position:absolute;width:0;height:3px;bottom:0;left:0;background-color:#6f8ec2;transition:width .3s ease-in-out}.nav-div h1:hover{color:#6f8ec2}.nav-div h1:hover:after{width:100%}.window-container{position:fixed;min-width:400px;min-height:300px;max-width:90vw;max-height:80vh;background:#14141ed9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(111,142,194,.3);border-radius:12px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d,inset 0 1px #ffffff1a;z-index:2000;display:flex;flex-direction:column;overflow:hidden;animation:windowOpen .3s cubic-bezier(.34,1.56,.64,1)}@keyframes windowOpen{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.window-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(180deg,#ffffff14,#ffffff05);border-bottom:1px solid rgba(255,255,255,.08);cursor:grab;-webkit-user-select:none;user-select:none}.window-header:active{cursor:grabbing}.window-title{font-family:Josefin,system-ui,sans-serif;font-size:16px;font-weight:300;color:#ffffffe6;letter-spacing:.5px}.window-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:8px;background:#ffffff0d;color:#ffffff80;cursor:pointer;transition:all .2s ease}.window-close-btn:hover{background:#dc5050cc;color:#fff;transform:scale(1.1)}.window-close-btn:active{transform:scale(.95)}.window-content{flex:1;padding:24px;overflow-y:auto;color:#ffffffd9}.window-content::-webkit-scrollbar{width:6px}.window-content::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.window-content::-webkit-scrollbar-thumb{background:#6f8ec266;border-radius:3px}.window-content::-webkit-scrollbar-thumb:hover{background:#6f8ec299}.page-content{font-family:Josefin,system-ui,sans-serif}.page-content h2{font-size:28px;font-weight:300;margin-bottom:16px;color:#6f8ec2;letter-spacing:1px}.page-content p{font-size:16px;line-height:1.7;color:#ffffffb3;font-weight:300}.about-page{display:flex;flex-direction:column;gap:8px}.about-page h2{margin-bottom:24px}.about-section{border-left:2px solid rgba(111,142,194,.3);padding:16px 0 16px 20px;transition:all .3s ease}.about-section:hover{border-left-color:#6f8ec2;background:#6f8ec20d;border-radius:0 8px 8px 0}.about-section p{margin:0;line-height:2;font-size:15px;letter-spacing:.3px}.popup-container{position:fixed;background:linear-gradient(135deg,#fefefe,#f5f5f0,#e8e8e3);border-radius:3px;padding:12px 12px 50px;box-shadow:0 2px 4px #0000001a,0 8px 16px #00000026,0 20px 40px #0003,inset 0 0 0 1px #0000000d;z-index:1999;cursor:grab;animation:popupFloat .5s cubic-bezier(.34,1.56,.64,1);transition:transform .3s ease,box-shadow .3s ease;transform:rotate(-2deg)}.popup-container:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.01) 2px,rgba(0,0,0,.01) 4px),repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.01) 2px,rgba(0,0,0,.01) 4px);pointer-events:none;border-radius:3px}.popup-container:active{cursor:grabbing}.popup-container:hover{transform:rotate(0) scale(1.03);box-shadow:0 4px 8px #0000001f,0 12px 24px #0000002e,0 30px 60px #00000040,inset 0 0 0 1px #0000000d}@keyframes popupFloat{0%{opacity:0;transform:scale(.7) rotate(-8deg) translateY(30px)}to{opacity:1;transform:scale(1) rotate(-2deg) translateY(0)}}.popup-image-wrapper{overflow:hidden;line-height:0;background:#000;box-shadow:inset 0 0 1px #0000004d}.popup-image{width:240px;height:240px;object-fit:cover;display:block;transition:filter .3s ease;filter:contrast(1.05) saturate(.95)}.popup-container:hover .popup-image{filter:contrast(1.1) saturate(1)}.popup-caption{position:absolute;bottom:10px;left:12px;right:12px;font-family:Segoe Script,Bradley Hand,Comic Sans MS,cursive;font-size:14px;font-weight:400;color:#444;text-align:center;letter-spacing:.5px;transform:rotate(-1deg)}.contact-page{max-width:400px}.contact-intro{margin-bottom:24px;line-height:1.8}.contact-form{display:flex;flex-direction:column;gap:18px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-family:Josefin,system-ui,sans-serif;font-size:13px;font-weight:300;color:#fff9;letter-spacing:.5px;text-transform:uppercase}.form-group input,.form-group textarea{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 14px;font-family:Josefin,system-ui,sans-serif;font-size:15px;font-weight:300;color:#ffffffe6;transition:all .3s ease;outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:#ffffff4d}.form-group input:focus,.form-group textarea:focus{border-color:#6f8ec2;background:#6f8ec214;box-shadow:0 0 0 3px #6f8ec226}.form-group textarea{resize:vertical;min-height:100px}.submit-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#6f8ec2,#5a78aa);border:none;border-radius:8px;padding:14px 24px;font-family:Josefin,system-ui,sans-serif;font-size:15px;font-weight:400;color:#fff;cursor:pointer;transition:all .3s ease;margin-top:8px}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6f8ec266}.submit-btn:active{transform:translateY(0)}.submit-btn svg{transition:transform .3s ease}.submit-btn:hover svg{transform:translate(3px) translateY(-3px)}.form-status{text-align:center;color:#6f8ec2;font-size:14px;margin-top:8px}.link-popup-container{position:fixed;background:#14141ee6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(111,142,194,.2);border-radius:12px;padding:16px;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d;z-index:1999;cursor:grab;animation:linkPopupSlide .4s cubic-bezier(.34,1.56,.64,1);min-width:180px}.link-popup-container:active{cursor:grabbing}@keyframes linkPopupSlide{0%{opacity:0;transform:translate(-20px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.link-popup-header{font-family:Josefin,system-ui,sans-serif;font-size:12px;font-weight:300;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.link-popup-links{display:flex;flex-direction:column;gap:8px}.link-popup-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:8px;text-decoration:none;transition:all .3s ease;cursor:pointer}.link-popup-item:hover{background:#6f8ec226;border-color:#6f8ec24d;transform:translate(4px)}.link-icon{display:flex;align-items:center;justify-content:center;color:#ffffffb3;transition:color .3s ease}.link-popup-item:hover .link-icon{color:#6f8ec2}.link-label{font-family:Josefin,system-ui,sans-serif;font-size:14px;font-weight:300;color:#fffc;letter-spacing:.3px}.resume-page{max-width:500px}.resume-header{text-align:center;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.resume-header h2{margin-bottom:4px}.resume-title{font-size:14px;color:#6f8ec2;margin-bottom:8px;letter-spacing:1px;text-transform:uppercase}.resume-contact-row{display:flex;justify-content:center;align-items:center;gap:8px;font-size:13px;color:#ffffff80}.resume-contact-row .divider{color:#ffffff4d}.resume-section{margin-bottom:24px}.resume-section h3{font-family:Josefin,system-ui,sans-serif;font-size:13px;font-weight:400;color:#6f8ec2;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid rgba(111,142,194,.2)}.resume-section>p{font-size:14px;line-height:1.7;color:#ffffffb3}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.skill-category h4{font-family:Josefin,system-ui,sans-serif;font-size:12px;font-weight:400;color:#ffffffe6;margin-bottom:4px}.skill-category p{font-size:13px;color:#ffffff80;line-height:1.5}.experience-item{margin-bottom:16px}.experience-item:last-child{margin-bottom:0}.experience-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.experience-role{font-family:Josefin,system-ui,sans-serif;font-size:15px;font-weight:400;color:#ffffffe6}.experience-date{font-size:12px;color:#fff6}.experience-company{font-size:13px;color:#6f8ec2cc;margin-bottom:8px}.experience-list{list-style:none;padding:0;margin:0}.experience-list li{position:relative;padding-left:16px;font-size:13px;color:#fff9;line-height:1.6;margin-bottom:4px}.experience-list li:before{content:"›";position:absolute;left:0;color:#6f8ec2}.education-item{margin-bottom:8px}.download-popup-container{position:fixed;background:#14141ef2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(111,142,194,.2);border-radius:12px;padding:20px;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d;z-index:1999;cursor:grab;animation:downloadPopupSlide .4s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;align-items:center;gap:14px;min-width:160px}.download-popup-container:active{cursor:grabbing}@keyframes downloadPopupSlide{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.download-popup-icon{display:flex;align-items:center;justify-content:center;width:70px;height:70px;background:linear-gradient(135deg,#6f8ec233,#6f8ec20d);border-radius:12px;color:#6f8ec2}.download-popup-info{display:flex;flex-direction:column;align-items:center;gap:2px}.download-popup-filename{font-family:Josefin,system-ui,sans-serif;font-size:12px;font-weight:400;color:#ffffffe6;text-align:center;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.download-popup-type{font-family:Josefin,system-ui,sans-serif;font-size:11px;font-weight:300;color:#fff6;text-transform:uppercase;letter-spacing:.5px}.download-popup-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;background:linear-gradient(135deg,#6f8ec2,#5a78aa);border:none;border-radius:8px;font-family:Josefin,system-ui,sans-serif;font-size:13px;font-weight:400;color:#fff;text-decoration:none;cursor:pointer;transition:all .3s ease}.download-popup-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #6f8ec266}.download-popup-btn:active{transform:translateY(0)}.projects-page{max-width:480px}.project-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px}.project-header{margin-bottom:16px}.project-header h3{font-family:Josefin,system-ui,sans-serif;font-size:22px;font-weight:400;color:#fffffff2;margin-bottom:10px}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;padding:4px 10px;background:#6f8ec226;border:1px solid rgba(111,142,194,.25);border-radius:20px;font-family:Josefin,system-ui,sans-serif;font-size:11px;font-weight:400;color:#6f8ec2;text-transform:uppercase;letter-spacing:.5px}.project-description{font-size:14px;line-height:1.7;color:#ffffffb3;margin-bottom:20px}.project-section{margin-bottom:20px}.project-section h4{font-family:Josefin,system-ui,sans-serif;font-size:12px;font-weight:400;color:#6f8ec2;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid rgba(111,142,194,.2)}.features-grid{display:flex;flex-direction:column;gap:10px}.feature-item{display:flex;align-items:flex-start;gap:12px;padding:10px;background:#ffffff05;border-radius:8px;transition:background .2s ease}.feature-item:hover{background:#ffffff0d}.feature-icon{font-size:20px;line-height:1}.feature-content strong{display:block;font-family:Josefin,system-ui,sans-serif;font-size:13px;font-weight:400;color:#ffffffe6;margin-bottom:2px}.feature-content p{font-size:12px;color:#ffffff80;line-height:1.4;margin:0}.tech-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tech-item{display:flex;flex-direction:column;gap:2px}.tech-label{font-family:Josefin,system-ui,sans-serif;font-size:10px;font-weight:400;color:#fff6;text-transform:uppercase;letter-spacing:.5px}.tech-value{font-size:12px;color:#fffc}.project-note{font-size:12px;color:#6f8ec2b3;text-align:center;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.05)}.gallery-popup-container{position:fixed;background:#0f0f14f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:8px;box-shadow:0 25px 50px #00000080,0 0 0 1px #ffffff0d,inset 0 1px #ffffff1a;z-index:1999;cursor:grab;animation:gallerySlide .5s cubic-bezier(.34,1.56,.64,1)}.gallery-popup-container:active{cursor:grabbing}@keyframes gallerySlide{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.gallery-image-wrapper{position:relative;border-radius:18px;overflow:hidden;background:#000}.gallery-image{width:180px;height:auto;max-height:380px;object-fit:contain;display:block;border-radius:18px}.gallery-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;border-radius:50%;background:#0009;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:.7}.gallery-nav-btn:hover{background:#6f8ec2cc;opacity:1;transform:translateY(-50%) scale(1.1)}.gallery-nav-prev{left:8px}.gallery-nav-next{right:8px}.gallery-footer{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 8px 6px}.gallery-caption{font-family:Josefin,system-ui,sans-serif;font-size:12px;font-weight:300;color:#ffffffb3;letter-spacing:.3px}.gallery-dots{display:flex;gap:6px}.gallery-dot{width:6px;height:6px;border:none;border-radius:50%;background:#fff3;cursor:pointer;transition:all .2s ease;padding:0}.gallery-dot:hover{background:#fff6}.gallery-dot.active{background:#6f8ec2;transform:scale(1.2)}.loading-state{text-align:center;color:#ffffff80;padding:40px 20px;font-size:14px}.data-source-note{text-align:center;margin-top:16px;color:#ffffff4d}.resume-download-section{margin-top:20px}.resume-download-btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#6f8ec2,#5a78aa);border:none;border-radius:10px;padding:14px 24px;font-family:Josefin,system-ui,sans-serif;font-size:15px;font-weight:400;color:#fff;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #6f8ec24d}.resume-download-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #6f8ec266}.resume-download-btn:active{transform:translateY(-1px)}.resume-download-btn .download-icon{font-size:18px}.resume-download-btn .file-info{font-size:12px;opacity:.8;font-weight:300}.resume-loading{display:inline-block;font-size:13px;color:#ffffff80;font-style:italic}.resume-unavailable{display:inline-block;font-size:13px;color:#fff6;padding:12px 20px;background:#ffffff0d;border-radius:8px;border:1px dashed rgba(255,255,255,.1)}.admin-login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;position:relative;z-index:1000}.admin-login-card{background:#14141ee6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(111,142,194,.3);border-radius:16px;padding:40px;width:100%;max-width:360px;text-align:center}.admin-login-card h2{font-family:Josefin,system-ui,sans-serif;font-size:24px;font-weight:300;color:#6f8ec2;margin-bottom:24px}.admin-password-input{width:100%;padding:14px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;font-family:Josefin,system-ui,sans-serif;font-size:15px;color:#fff;outline:none;margin-bottom:16px;box-sizing:border-box}.admin-password-input:focus{border-color:#6f8ec2}.admin-login-btn{width:100%;padding:14px;background:linear-gradient(135deg,#6f8ec2,#5a78aa);border:none;border-radius:10px;font-family:Josefin,system-ui,sans-serif;font-size:15px;color:#fff;cursor:pointer;transition:all .3s ease}.admin-login-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6f8ec266}.admin-login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.admin-error{color:#e57373;font-size:13px;margin-top:12px}.admin-page{max-width:500px;margin:0 auto;padding:40px 20px;font-family:Josefin,system-ui,sans-serif}.admin-page{max-width:500px;margin:0 auto;padding:40px 20px;font-family:Josefin,system-ui,sans-serif;position:relative;z-index:1000}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.admin-header h2{font-size:28px;font-weight:300;color:#6f8ec2;margin:0}.admin-logout-btn{padding:8px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;font-family:Josefin,system-ui,sans-serif;font-size:13px;color:#fff9;cursor:pointer;transition:all .3s ease}.admin-logout-btn:hover{background:#dc505033;border-color:#dc505066;color:#e57373}.admin-section{background:#14141e99;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:24px;margin-bottom:20px}.admin-section h3{font-size:14px;font-weight:400;color:#ffffffe6;margin:0 0 16px;text-transform:uppercase;letter-spacing:1px}.admin-loading,.admin-no-resume{color:#fff6;font-size:14px}.admin-resume-info{display:flex;align-items:center;justify-content:space-between;gap:16px}.resume-file-card{display:flex;align-items:center;gap:12px;flex:1}.resume-file-card .file-icon{font-size:32px}.file-details{display:flex;flex-direction:column}.file-name{font-size:14px;color:#ffffffe6}.file-meta{font-size:12px;color:#fff6}.admin-delete-btn{padding:8px 16px;background:#dc505026;border:1px solid rgba(220,80,80,.3);border-radius:8px;font-family:Josefin,system-ui,sans-serif;font-size:13px;color:#e57373;cursor:pointer;transition:all .3s ease}.admin-delete-btn:hover{background:#dc505040}.admin-upload-form{display:flex;flex-direction:column;gap:12px}.admin-file-input{cursor:pointer}.admin-file-input input{display:none}.file-input-label{display:block;padding:16px;background:#ffffff08;border:2px dashed rgba(255,255,255,.1);border-radius:10px;text-align:center;color:#ffffff80;font-size:14px;transition:all .3s ease}.admin-file-input:hover .file-input-label{border-color:#6f8ec266;background:#6f8ec20d}.admin-upload-btn{padding:14px;background:linear-gradient(135deg,#6f8ec2,#5a78aa);border:none;border-radius:10px;font-family:Josefin,system-ui,sans-serif;font-size:14px;color:#fff;cursor:pointer;transition:all .3s ease}.admin-upload-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #6f8ec266}.admin-upload-btn:disabled{opacity:.5;cursor:not-allowed}.admin-message{font-size:13px;color:#e57373;text-align:center;margin-top:8px}.admin-message.success{color:#81c784}.os-video{-webkit-transform:translateZ(0);transform:translateZ(0)}.window-container,.popup-container,.link-popup-container,.download-popup-container,.gallery-popup-container,.window-header{touch-action:none;-webkit-user-select:none;user-select:none}@media(max-width:768px){.window-container{min-width:unset;width:90vw;max-width:95vw;height:auto;max-height:80dvh}.nav-div{width:100%;align-items:center;margin-bottom:20px;padding:10px}.nav-div h1{font-size:22px;width:auto;text-align:center;margin:10px}.signature{width:120px;height:60px;left:50%;transform:translate(-50%);bottom:8px}.popup-container{max-width:85vw;padding:8px 8px 40px}.popup-image{width:200px;height:200px}.popup-caption{font-size:12px;bottom:8px}.link-popup-container{min-width:160px;padding:12px}.download-popup-container{min-width:140px;padding:16px}.download-popup-icon{width:50px;height:50px}.download-popup-icon svg{width:36px;height:36px}.gallery-popup-container{max-width:90vw}.gallery-image{max-width:80vw;max-height:40vh}.window-content{padding:16px}.page-content h2{font-size:22px}.page-content p{font-size:14px}.resume-page{max-width:100%}.skills-grid{grid-template-columns:1fr;gap:8px}.experience-header{flex-direction:column;align-items:flex-start;gap:4px}.contact-page{max-width:100%}.form-group input,.form-group textarea{padding:10px 12px;font-size:16px}}@media(max-width:375px){.window-container{width:95vw;max-height:85dvh}.nav-div h1{font-size:20px;margin:8px}.popup-image{width:160px;height:160px}.signature{width:100px;height:50px}}@supports (padding: max(0px)){.app-root{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.signature{bottom:max(10px,env(safe-area-inset-bottom))}}
