:root{font-family:Franklin Gothic Medium,Arial Narrow,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*:focus,*:focus-visible{outline:none!important}html,body{height:100%;width:100%;overflow-x:hidden}body{margin:0;min-width:320px}#root{height:100%;width:100%}a{font-weight:500;color:#00ff41;text-decoration:inherit}a:hover{color:#00ff41}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#00ff41}button:focus,button:focus-visible{outline:none!important}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#00ff41}button{background-color:#f9f9f9}}.footer-container{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:20px}.bottom-links{display:flex;gap:2rem}.bottom-link{color:#fff;text-decoration:none;font-size:1.2rem;font-family:Courier New,Courier,monospace;transition:all .3s ease;opacity:.8;text-shadow:0 2px 4px rgba(0,0,0,.4)}.bottom-link:hover{text-decoration:none;opacity:1;transform:translateY(-2px) scale(1.1);text-shadow:0 0 5px #00ff41,0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41,0 0 60px #00ff41,0 0 80px #00ff41,0 0 100px #00ff41,0 0 120px #00ff41,0 0 140px #00ff41,0 0 160px #00ff41,0 0 180px #00ff41;animation:terminalGlow 1.5s ease-in-out infinite alternate}@keyframes terminalGlow{0%{text-shadow:0 0 5px #00ff41,0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41,0 0 60px #00ff41,0 0 80px #00ff41,0 0 100px #00ff41,0 0 120px #00ff41,0 0 140px #00ff41,0 0 160px #00ff41,0 0 180px #00ff41}to{text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 35px #00ff41,0 0 50px #00ff41,0 0 70px #00ff41,0 0 90px #00ff41,0 0 120px #00ff41,0 0 150px #00ff41,0 0 180px #00ff41,0 0 210px #00ff41,0 0 240px #00ff41,0 0 270px #00ff41,0 0 300px #00ff41}}.copyright-notice{color:#fff9;text-align:center;font-size:.7rem;font-family:Courier New,Courier,monospace;line-height:1.3;max-width:600px;text-shadow:0 1px 2px rgba(0,0,0,.3);opacity:.8;transition:all .3s ease}.copyright-notice:hover{opacity:1;color:#fffc;text-shadow:0 1px 2px rgba(0,0,0,.4),0 0 5px rgba(0,255,65,.3)}.landing-page{height:100vh;width:100%;overflow:hidden;background:#1a1a1a;position:relative}.landing-page.popup-active .hero-title,.landing-page.popup-active .hero-subtitle-techstuff,.landing-page.popup-active .hero-homepage-text,.landing-page.popup-active .carousel-section,.landing-page.popup-active .navigation-section{opacity:.1;transition:opacity .8s ease}.landing-page.popup-active .flag-container{opacity:1;transition:opacity .8s ease}.landing-page.popup-active .flag-popup.visible{opacity:1!important}.hero-title,.hero-subtitle-techstuff,.hero-homepage-text,.carousel-section,.navigation-section{transition:opacity .8s ease}.hero{height:22vh;display:flex;align-items:center;justify-content:center;position:relative;background:#000;border-bottom:1px solid rgba(255,255,255,.2)}.hero-content{text-align:center;color:#fff;z-index:2;padding:2rem 1.5rem;max-width:800px;width:100%}.hero-title{font-size:3.5rem;font-weight:700;font-family:Courier New,Courier,monospace;margin-bottom:1rem;color:#00ff41;text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41;animation:terminalGlow 2s ease-in-out infinite alternate;align-items:center;justify-content:center;gap:.5rem}.hero-subtitle-techstuff{font-size:3.5rem;transform:translateY(-3px);display:inline-block;font-weight:lighter;color:#fff;font-family:Courier New,Courier,monospace}.hero-homepage-text{font-size:2.1rem;font-weight:300;font-style:normal;font-family:Lucida Sans,Lucida Sans Regular,Lucida Grande,Lucida Sans Unicode,Geneva,Verdana,sans-serif;color:#fff;text-align:center;margin:.5rem 0}@keyframes terminalGlow{0%{text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41}to{text-shadow:0 0 15px #00ff41,0 0 25px #00ff41,0 0 35px #00ff41,0 0 45px #00ff41,0 0 55px #00ff41}}.hero-subtitle{font-size:1.5rem;font-weight:300;line-height:1.6;text-shadow:0 2px 4px rgba(0,0,0,.4);margin:0;align-items:center;justify-content:center;gap:.3rem;flex-wrap:wrap}.flag-container{position:relative;display:inline-block;padding:50px;margin:-50px}.flag-container:before{content:"";position:absolute;inset:0;background:transparent;z-index:1}.flag-container{cursor:pointer}.flag-container:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:transparent;z-index:3;pointer-events:auto}.flag-container:nth-child(1):after,.flag-container:nth-child(3):after{width:96px;height:72px}.flag-container:nth-child(2):after{width:106px;height:80px}.flag-container:hover .flag-icon,.flag-container:hover .pirate-flag{transform:none;box-shadow:0 2px 4px #0000004d;opacity:.5}.flag-container:after:hover~.flag-icon,.flag-container:after:hover~.pirate-flag{transform:scale(1.95);box-shadow:0 4px 8px #0006;opacity:1}.flag-popup{position:absolute;top:150px;background:#fff;border:none;border-radius:15px;padding:0;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff1a,0 0 15px #00ff414d,0 0 30px #00ff4133,0 0 45px #00ff411a;z-index:100;overflow:hidden;transition:opacity .4s ease,box-shadow .4s ease}.flag-popup.hidden{opacity:0;pointer-events:none}.flag-popup.visible{opacity:1;pointer-events:auto;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff1a,0 0 20px #00ff4166,0 0 40px #00ff414d,0 0 60px #00ff4133}.flag-popup-mobile{left:50%;transform:translate(-50%);position:fixed;top:20%}.flag-popup:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:10;border-radius:15px}.flag-popup:hover:before{transform:translate(100%)}.flag-popup-inner{position:relative;width:99%;height:99%;margin:.5%;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:14px;display:flex;flex-direction:column;justify-content:space-between;padding:1.5rem;z-index:2}.flag-popup-uk{aspect-ratio:4/3}.flag-popup-uk .flag-popup-inner{position:relative}.flag-popup-bg{position:absolute;inset:0;filter:brightness(.5) contrast(1.2);border-radius:14px;z-index:-1}.flag-popup-pirate{aspect-ratio:4/3}.flag-popup-pirate .flag-popup-inner{position:relative}.flag-popup-thailand{aspect-ratio:4/5}.flag-popup-thailand .flag-popup-inner{position:relative}.flag-popup-title{color:#fff;font-weight:700;font-size:1.8rem;text-align:center;text-shadow:2px 2px 4px rgba(0,0,0,.8),0 0 20px rgba(0,0,0,.5);z-index:10;position:relative}.flag-popup-description{color:#fff;font-size:1.5rem;font-weight:500;font-style:italic;line-height:1.6;text-align:center;text-shadow:1px 1px 2px rgba(0,0,0,.8),0 0 15px rgba(0,0,0,.5);z-index:10;position:relative}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.flag-hover-area{position:relative;display:inline-block;width:auto;height:auto}.flag-hover-area:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:200px;background:radial-gradient(circle at center,rgba(0,255,65,.9) 0%,rgba(0,255,65,.7) 20%,rgba(0,255,65,.5) 40%,rgba(0,255,65,.3) 60%,rgba(0,255,65,.1) 80%,transparent 100%);filter:blur(10px);opacity:0;transition:all .3s ease;z-index:199;pointer-events:none}.flag-container:hover .flag-hover-area:before{opacity:.888;transform:translate(-50%,-50%) scale(.5);filter:blur(60px)}.flag-icon{width:48px;height:36px;object-fit:cover;border-radius:2px;box-shadow:none;vertical-align:middle;transition:all .3s ease;cursor:pointer;position:relative;z-index:200;opacity:.5}.flag-container:hover .flag-icon{transform:scale(1.95);box-shadow:none;opacity:1}.pirate-flag{width:53px;height:40px;object-fit:cover;border-radius:2px;box-shadow:none;vertical-align:middle;transition:all .3s ease;cursor:pointer;position:relative;z-index:200;opacity:.5}.flag-container:hover .pirate-flag{transform:scale(1.95);box-shadow:none;opacity:1}@keyframes glow{0%{text-shadow:0 0 10px rgba(255,215,0,.5)}to{text-shadow:0 0 20px rgba(255,215,0,.8)}}.navigation-section{height:78vh;display:flex;align-items:center;justify-content:center;position:relative;background:#000}.navigation-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}.nav-link{font-size:3.5rem;font-weight:700;font-family:Courier New,Courier,monospace;color:#00ff41;text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41;animation:terminalGlow 2s ease-in-out infinite alternate;cursor:pointer;transition:all .3s ease;-webkit-user-select:none;user-select:none;padding:1rem 2rem;border-radius:10px;border:2px solid transparent}.nav-link:hover{transform:scale(1.1);text-shadow:0 0 15px #00ff41,0 0 25px #00ff41,0 0 35px #00ff41,0 0 45px #00ff41,0 0 55px #00ff41;border:2px solid rgba(0,255,65,.5);background:#00ff411a;box-shadow:0 0 20px #00ff414d,0 0 40px #00ff4133,inset 0 0 20px #00ff411a}.nav-link:active{transform:scale(1.05);transition:all .1s ease}.carousel-section{height:78vh;padding:2rem;position:relative;overflow:hidden}.carousel-container{height:100%;width:100%;overflow:hidden}.carousel-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;height:100%;align-items:start;justify-items:center;overflow-y:auto;overflow-x:hidden;padding:2rem;scrollbar-width:none;-ms-overflow-style:none}.carousel-track::-webkit-scrollbar{display:none}.carousel-item{width:100%;max-width:300px;height:400px;position:relative;cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px #0000004d,0 0 0 1px #ffffff1a,inset 0 1px #fff3;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.carousel-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1}.carousel-item:hover:before{transform:translate(100%)}.carousel-item:hover{transform:scale(1.05);box-shadow:0 20px 40px #0006,0 0 0 1px #fff3,inset 0 1px #ffffff4d}.carousel-item:active{transform:scale(.98);transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.carousel-item img{width:100%;height:100%;object-fit:cover;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:20px}.carousel-item:hover img{transform:scale(1.1);filter:brightness(1.1) contrast(1.1)}.carousel-item:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent 30%,rgba(0,0,0,.3) 70%,rgba(0,0,0,.6) 100%);border-radius:20px;pointer-events:none;z-index:2;opacity:.8;transition:opacity .3s ease}.carousel-item:hover:after{opacity:.4}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.text-content{color:#00ff41;font-family:Courier New,Courier,monospace;font-size:1rem;line-height:1.6;text-shadow:0 0 10px rgba(0,255,65,.5);user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}@media (max-width: 768px){.hero-content{padding:1.8rem 1.2rem}.hero-title{font-size:2.5rem;flex-direction:column;gap:.5rem;margin-bottom:1rem}.hero-subtitle-techstuff{font-size:2.5rem}.hero-homepage-text{font-size:2rem;margin:.5rem 0;line-height:1.4}.hero-subtitle{font-size:1.2rem;flex-direction:column;text-align:center;gap:.5rem;margin-top:1rem}.flag-icon{width:40px;height:30px}.pirate-flag{width:80px;height:60px}.navigation-section{padding:1rem}.nav-link{font-size:2.5rem;gap:1.5rem}.carousel-section{padding:1rem}.carousel-item{width:80vw;height:106.4vw;max-width:400px;max-height:530px}.carousel-track{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem}.carousel-track::-webkit-scrollbar{display:none}.modal-overlay{padding:1rem}.modal-content img{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}.modal-close{top:-.5rem;right:-.5rem}.spinner{width:30px;height:30px}}@media (max-width: 480px){.hero{height:22vh;min-height:200px}.carousel-section{height:78vh}.hero-content{padding:1.5rem 1rem}.hero-title{font-size:2rem;margin-bottom:.8rem}.hero-subtitle-techstuff{font-size:2rem}.hero-homepage-text{font-size:1.6rem;margin:.4rem 0;line-height:1.3}.hero-subtitle{font-size:1rem;margin-top:.8rem}.flag-icon{width:32px;height:24px}.pirate-flag{width:64px;height:48px}.nav-link{font-size:2rem;padding:.8rem 1.5rem}.navigation-container{gap:1.5rem}.carousel-item{width:80vw;height:112vw;max-width:350px;max-height:490px}.carousel-track{display:flex;flex-direction:column;grid-template-columns:none;align-items:center;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:1rem 0;gap:1rem}.modal-close{width:2.5rem;height:2.5rem;font-size:1.5rem}.flag-popup{min-height:150px;font-size:.9rem}.flag-popup-inner{padding:1.5rem 2rem}.flag-popup-title{font-size:1.4rem;margin-bottom:.75rem}.flag-popup-description{font-size:1rem}.spinner{width:25px;height:25px}.loader-text{font-size:.9rem}}@media (max-width: 820px) and (min-width: 701px){.carousel-item{width:45vw;height:59.85vw;max-width:320px;max-height:425px}.carousel-track{grid-template-columns:repeat(2,1fr);gap:1rem;padding:1rem;justify-items:center}}@media (max-height: 500px) and (orientation: landscape){.hero{height:40vh}.carousel-section{height:60vh}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.flag-popup{min-height:120px;font-size:.8rem}.flag-popup-inner{padding:1.25rem 1.5rem}.flag-popup-title{font-size:1.2rem;margin-bottom:.5rem}.flag-popup-description{font-size:.9rem}}@media (max-width: 380px) and (max-height: 680px){.hero{height:25vh;min-height:180px}.carousel-section{height:75vh}.hero-content{padding:1rem .5rem}.hero-title{font-size:1.8rem;margin-bottom:.5rem}.hero-subtitle-techstuff{font-size:1.8rem}.hero-homepage-text{font-size:1.3rem;margin:.3rem 0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90vw}.hero-subtitle{font-size:.9rem;margin-top:.5rem}.flag-icon{width:28px;height:21px}.pirate-flag{width:56px;height:42px}.flag-popup{font-size:.8rem;top:160px}}@media (max-width: 320px){.hero{height:28vh;min-height:160px}.carousel-section{height:72vh}.hero-content{padding:.8rem .3rem}.hero-title{font-size:1.6rem;margin-bottom:.3rem}.hero-subtitle-techstuff{font-size:1.6rem}.hero-homepage-text{font-size:1.1rem;margin:.2rem 0;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:95vw}.hero-subtitle{font-size:.8rem;margin-top:.3rem}.flag-icon{width:24px;height:18px}.pirate-flag{width:48px;height:36px}.flag-popup{font-size:.8rem;top:140px}.flag-popup-inner{padding:1rem 1.5rem}.flag-popup-title{font-size:1.2rem;margin-bottom:.5rem}.flag-popup-description{font-size:.9rem}}.gallery-item{width:100%;max-width:300px;height:400px;position:relative;cursor:pointer;transition:all 1s cubic-bezier(.175,.885,.32,1.275);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px #0000004d,0 0 0 1px #ffffff1a,inset 0 1px #fff3;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.date-debug-overlay{position:absolute;top:8px;left:8px;background:#000c;color:#fff;padding:4px 8px;border-radius:8px;font-size:.7rem;font-family:Courier New,monospace;font-weight:600;z-index:10;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);text-shadow:0 1px 2px rgba(0,0,0,.8);box-shadow:0 2px 8px #0000004d}.date-debug-overlay .date-text{line-height:1.2;margin-bottom:1px;color:#00ff41}.date-debug-overlay .time-text{line-height:1.2;font-size:.65rem;color:#ccc;opacity:.9}.date-debug-overlay .no-date-text{line-height:1.2;color:#f44;font-size:.65rem}.date-debug-overlay .location-text{line-height:1.2;margin-top:2px;color:#4cf;font-size:.6rem;max-width:200px;word-wrap:break-word;white-space:normal}.date-debug-overlay .no-location-text{line-height:1.2;margin-top:2px;color:#888;font-size:.6rem}.gallery-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1}.gallery-item:hover:before{transform:translate(100%)}.gallery-item:hover{transform:scale(1.05);transition:all .5s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 20px 40px #0006,0 0 0 1px #fff3,inset 0 1px #ffffff4d}.gallery-item:active{transform:scale(.98);transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.gallery-item.image-item img{width:100%;height:100%;object-fit:cover;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:20px}.gallery-item.image-item:hover img,.gallery-item.pdf-item:hover img{transform:scale(1.1);filter:brightness(1.1) contrast(1.1)}.gallery-item.image-item:hover{transition:all .5s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 20px 40px #00ff4126,0 0 0 1px #00ff4133,inset 0 1px #00ff4126,0 0 20px #00ff4133,0 0 40px #00ff411a,0 0 60px #00ff410d;border:1px solid rgba(0,255,65,.3)}.gallery-item.image-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(0,255,65,.15) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1;border-radius:20px;pointer-events:none}.gallery-item.image-item:hover:before{transform:translate(100%)}.gallery-item.pdf-item img{width:100%;height:100%;object-fit:cover;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:20px;filter:grayscale(100%) contrast(1.2) brightness(1.1)}.file-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;transition:all 1s ease}.gallery-item.file-item:hover{transition:all .5s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 20px 40px #00ff4126,0 0 0 1px #00ff4133,inset 0 1px #00ff4126,0 0 20px #00ff4133,0 0 40px #00ff411a,0 0 60px #00ff410d;border:1px solid rgba(0,255,65,.3)}.gallery-item.file-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(0,255,65,.15) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1;border-radius:20px;pointer-events:none}.gallery-item.file-item:hover:before{transform:translate(100%)}.file-icon{font-size:4rem;transition:all 1s ease}.gallery-item:hover .file-icon{transform:scale(1.2);transition:all .3s ease}.gallery-item.file-item:hover .file-icon{transition:all .3s ease;filter:drop-shadow(0 0 15px rgba(0,255,65,.8)) drop-shadow(0 0 30px rgba(0,255,65,.6)) drop-shadow(0 0 45px rgba(0,255,65,.4));transform:scale(1.3)}.gallery-item.file-item:hover .file-name{transition:all .3s ease;color:#00ff41;font-size:1.4rem;text-shadow:2px 2px 6px rgba(0,0,0,.9),0 0 15px #00ff41,0 0 30px #00ff41,0 0 45px #00ff41,0 0 60px rgba(0,255,65,.8),0 0 80px rgba(0,255,65,.6);transform:scale(1.1)}.file-name{color:#fff;font-size:1.2rem;font-weight:600;font-family:Courier New,Courier,monospace;text-shadow:0 2px 4px rgba(0,0,0,.4);word-break:break-word;line-height:1.4;transition:all 1s ease}.gallery-item.directory-item{background:#00ff410d;border:1px solid rgba(0,255,65,.2);position:relative}.gallery-item.pdf-item{background:#ff64640d;border:1px solid rgba(255,100,100,.2);position:relative}.gallery-item.video-item{background:#6464ff0d;border:1px solid rgba(100,100,255,.2);position:relative}.gallery-item.video-item img,.gallery-item.video-item video{width:100%;height:100%;object-fit:cover;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-radius:20px;filter:brightness(.9) contrast(1.1)}.gallery-item.video-item:hover img,.gallery-item.video-item:hover video{transform:scale(1.1);filter:brightness(1.1) contrast(1.1)}.gallery-item.video-item:hover{transition:all .5s cubic-bezier(.175,.885,.32,1.275);background:#6464ff1a;border:1px solid rgba(0,255,65,.3);box-shadow:0 20px 40px #00ff4126,0 0 0 1px #00ff4133,inset 0 1px #00ff4126,0 0 20px #00ff4133,0 0 40px #00ff411a,0 0 60px #00ff410d}.gallery-item.video-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(0,255,65,.15) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1;border-radius:20px;pointer-events:none}.gallery-item.video-item:hover:before{transform:translate(100%)}.gallery-item.pdf-item:hover{transition:all .5s cubic-bezier(.175,.885,.32,1.275);background:#ff64641a;border:1px solid rgba(0,255,65,.3);box-shadow:0 20px 40px #00ff4126,0 0 0 1px #00ff4133,inset 0 1px #00ff4126,0 0 20px #00ff4133,0 0 40px #00ff411a,0 0 60px #00ff410d}.gallery-item.pdf-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(0,255,65,.15) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1;border-radius:20px;pointer-events:none}.gallery-item.pdf-item:hover:before{transform:translate(100%)}.pdf-overlay{position:absolute;bottom:0;left:0;right:0;background:#000c;color:#fff;padding:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem;font-weight:600;font-family:Courier New,Courier,monospace;z-index:10;transition:all 1s ease}.gallery-item.pdf-item:hover .pdf-overlay{transition:all .3s ease;color:#00ff41;background:#001405e6;text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px rgba(0,255,65,.6);font-size:1rem;box-shadow:0 0 20px #00ff414d,inset 0 1px #00ff4133}.pdf-icon{font-size:1.2rem;transition:all 1s ease}.gallery-item.pdf-item:hover .pdf-icon{transition:all .3s ease;filter:drop-shadow(0 0 15px rgba(0,255,65,.4)) drop-shadow(0 0 30px rgba(0,255,65,.3)) drop-shadow(0 0 45px rgba(0,255,65,.2));transform:scale(1.2);font-size:1.4rem}.pdf-label{text-shadow:0 1px 2px rgba(0,0,0,.5);transition:all 1s ease}.gallery-item.pdf-item:hover .pdf-label{transition:all .3s ease;text-shadow:2px 2px 6px rgba(0,0,0,.9),0 0 15px rgba(0,255,65,.8),0 0 30px rgba(0,255,65,.5),0 0 45px rgba(0,255,65,.3),0 0 60px rgba(0,255,65,.4),0 0 80px rgba(0,255,65,.3);transform:scale(1.1)}.video-overlay{position:absolute;bottom:0;left:0;right:0;background:#000c;color:#fff;padding:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem;font-weight:600;font-family:Courier New,Courier,monospace;z-index:10;transition:all 1s ease}.gallery-item.video-item:hover .video-overlay{transition:all .3s ease;color:#00ff41;background:#001405e6;text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px rgba(0,255,65,.6);font-size:1rem;box-shadow:0 0 20px #00ff414d,inset 0 1px #00ff4133}.video-icon{font-size:1.2rem;transition:all 1s ease}.gallery-item.video-item:hover .video-icon{transition:all .3s ease;filter:drop-shadow(0 0 15px rgba(0,255,65,.4)) drop-shadow(0 0 30px rgba(0,255,65,.3)) drop-shadow(0 0 45px rgba(0,255,65,.2));transform:scale(1.2);font-size:1.4rem}.video-label{text-shadow:0 1px 2px rgba(0,0,0,.5);transition:all 1s ease}.gallery-item.video-item:hover .video-label{transition:all .3s ease;text-shadow:2px 2px 6px rgba(0,0,0,.9),0 0 15px rgba(0,255,65,.8),0 0 30px rgba(0,255,65,.5),0 0 45px rgba(0,255,65,.3),0 0 60px rgba(0,255,65,.4),0 0 80px rgba(0,255,65,.3);transform:scale(1.1)}.gallery-item.video-item:hover .video-overlay{animation:videoPulse 2s ease-in-out infinite}@keyframes videoPulse{0%,to{opacity:.9;box-shadow:0 0 20px #00ff414d,inset 0 1px #00ff4133}50%{opacity:1;box-shadow:0 0 30px #00ff4180,inset 0 1px #00ff4166}}.gallery-item.directory-item:hover{transition:all .5s cubic-bezier(.175,.885,.32,1.275);background:#00ff4114;border:1px solid rgba(0,255,65,.3);box-shadow:0 20px 40px #00ff4126,0 0 0 1px #00ff4133,inset 0 1px #00ff4126,0 0 20px #00ff4133,0 0 40px #00ff411a,0 0 60px #00ff410d}.gallery-item.directory-item:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(0,255,65,.15) 50%,transparent 70%);transform:translate(-100%);transition:transform .6s;z-index:1;border-radius:20px}.gallery-item.directory-item:hover:before{transform:translate(100%)}.gallery-item.directory-item .file-name{color:#00ff41;text-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px rgba(0,255,65,.5)}.gallery-item.directory-item:hover .file-name{transition:all .3s ease;color:#0f5;text-shadow:0 0 15px #00ff41,0 0 30px #00ff41,0 0 45px #00ff41,0 0 60px rgba(0,255,65,.8)}.gallery-item.image-item:after,.gallery-item.pdf-item:after,.gallery-item.video-item:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent 30%,rgba(0,0,0,.3) 70%,rgba(0,0,0,.6) 100%);border-radius:20px;pointer-events:none;z-index:2;opacity:.8;transition:opacity .3s ease}.gallery-item.image-item:hover:after,.gallery-item.pdf-item:hover:after,.gallery-item.video-item:hover:after{opacity:.4}.image-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;z-index:3}.spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid #ffd700;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.loader-text{color:#fff;font-size:1rem;font-weight:500;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.directory-preview{position:absolute;inset:-10%;width:120%;height:120%;opacity:.8;filter:blur(.1px)}.preview-photo{position:absolute;top:50%;left:50%;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:6px;box-shadow:0 4px 8px #0000004d,0 0 0 2px #ffffff1a;transition:all .4s cubic-bezier(.175,.885,.32,1.275);transform-origin:center center}.gallery-item.directory-item:hover .preview-photo{transform:translate(var(--hover-x, 0%),var(--hover-y, 0%)) rotate(var(--hover-rotation, 0deg)) scale(var(--hover-scale, 1))!important;box-shadow:0 8px 16px #0006,0 0 0 2px #fff3}.directory-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0003;z-index:100;transition:all 1s ease;border-radius:20px}.gallery-item.directory-item:hover .directory-overlay{transition:all .3s ease;background:#0014054d}.directory-overlay .file-icon{font-size:4rem;margin-bottom:1rem;filter:drop-shadow(0 0 10px rgba(0,255,65,.5));transition:all 1s ease}.gallery-item.directory-item:hover .directory-overlay .file-icon{transition:all .3s ease;filter:drop-shadow(0 0 15px rgba(0,255,65,.4)) drop-shadow(0 0 30px rgba(0,255,65,.3)) drop-shadow(0 0 45px rgba(0,255,65,.2));transform:scale(1.1)}.directory-overlay .file-name{color:#00ff41;font-size:1.2rem;font-weight:600;font-family:Courier New,Courier,monospace;text-shadow:2px 2px 4px rgba(0,0,0,.8),0 0 10px #00ff41,0 0 20px #00ff41;word-break:break-word;line-height:1.4;text-align:center;transition:all 1s ease}.gallery-item.directory-item:hover .directory-overlay .file-name{transition:all .3s ease;color:#00ff41;font-size:1.4rem;text-shadow:2px 2px 6px rgba(0,0,0,.9),0 0 15px rgba(0,255,65,.8),0 0 30px rgba(0,255,65,.5),0 0 45px rgba(0,255,65,.3),0 0 60px rgba(0,255,65,.4),0 0 80px rgba(0,255,65,.3);transform:scale(1.1)}.directory-overlay .project-subtitle{color:#00ff41cc;font-size:.9rem;font-weight:400;font-family:Courier New,Courier,monospace;text-shadow:1px 1px 2px rgba(0,0,0,.7),0 0 8px rgba(0,255,65,.4);word-break:break-word;line-height:1.3;text-align:center;margin-top:.5rem;transition:all 1s ease;max-width:90%;margin-left:auto;margin-right:auto}.gallery-item.directory-item:hover .directory-overlay .project-subtitle{transition:all .3s ease;color:#00ff41e6;font-size:1rem;text-shadow:1px 1px 3px rgba(0,0,0,.8),0 0 10px rgba(0,255,65,.6),0 0 20px rgba(0,255,65,.4),0 0 30px rgba(0,255,65,.2);transform:scale(1.05)}.gallery-page{min-height:100vh;width:100%;background:#1a1a1a;position:relative;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;touch-action:pan-y;overflow-y:auto;height:100vh}.gallery-header{height:80px;display:flex;align-items:center;position:sticky;top:0;z-index:200;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000f2;border-bottom:1px solid rgba(0,255,65,.2);padding:0 2rem;flex-shrink:0}.back-button{background:transparent;border:none;color:#00ff41;font-size:3.5rem;font-weight:900;cursor:pointer;padding:.5rem;border-radius:8px;transition:all .3s ease;margin-right:2rem;font-family:Courier New,Courier,monospace;text-shadow:0 0 15px #00ff41,0 0 25px #00ff41,0 0 35px #00ff41;min-width:60px;height:60px;display:flex;align-items:center;justify-content:center}.back-button:hover{background:#00ff411a;transform:scale(1.2);text-shadow:0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41,0 0 50px #00ff41}.gallery-title{display:flex;align-items:center;flex:1;gap:.5rem;overflow:hidden;transform-origin:left center;transition:transform .2s ease;white-space:nowrap;min-width:0}.gallery-d0m1{font-size:2rem;font-weight:700;font-family:Courier New,Courier,monospace;color:#00ff41;text-shadow:0 0 1px #00ff41,0 0 2px #00ff41,0 0 3px #00ff41;flex-shrink:0;cursor:pointer;transition:all .3s ease}.gallery-d0m1:hover{transform:scale(1.05);text-shadow:0 0 1px #00ff41,0 0 2px #00ff41,0 0 3px #00ff41}.gallery-path{font-size:1rem;font-weight:400;font-family:Courier New,Courier,monospace;color:#fff;margin:0}.gallery-path-display{font-size:2rem;font-weight:lighter;font-family:Courier New,Courier,monospace;color:#fff;display:flex;align-items:center;overflow:hidden;flex-shrink:1;min-width:0}.path-component{cursor:pointer;transition:all .3s ease;padding:.2rem .4rem;border-radius:4px}.path-component:hover{background:#00ff411a;color:#00ff41;text-shadow:0 0 10px #00ff41,0 0 20px #00ff41}.path-component.root{font-weight:700}.path-separator{margin:0 .2rem;color:#ffffffb3}.path-component.ellipsis{cursor:default;color:#ffffff80;font-weight:700}.path-component.ellipsis:hover{background:none;color:#ffffff80;text-shadow:none}@keyframes terminalGlow{0%{text-shadow:0 0 1px #00ff41,0 0 2px #00ff41,0 0 2px #00ff41}to{text-shadow:0 0 1px #00ff41,0 0 2px #00ff41,0 0 3px #00ff41}}.gallery-section{flex:1;padding:2rem;position:relative}.gallery-container{width:100%}.gallery-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;align-items:start;justify-items:center;padding:2rem}.directory-content{position:relative;width:100%;height:100%;border-radius:20px;overflow:hidden}.directory-preview{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;opacity:.4;filter:blur(.5px);gap:1px}.preview-image{background-size:cover;background-position:center;background-repeat:no-repeat}.preview-0{grid-column:1 / 2;grid-row:1 / 2}.preview-1{grid-column:2 / 3;grid-row:1 / 2}.preview-2{grid-column:1 / 2;grid-row:2 / 3}.preview-3{grid-column:2 / 3;grid-row:2 / 3}.directory-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0006;z-index:2}.directory-overlay .file-icon{font-size:4rem;margin-bottom:1rem;filter:drop-shadow(0 0 10px rgba(0,255,65,.5))}.directory-overlay .file-name{color:#00ff41;font-size:1.2rem;font-weight:600;font-family:Courier New,Courier,monospace;text-shadow:2px 2px 4px rgba(0,0,0,.8),0 0 10px #00ff41,0 0 20px #00ff41;word-break:break-word;line-height:1.4;text-align:center}.gallery-loading,.gallery-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-family:Courier New,Courier,monospace}.error-message{font-size:1.5rem;color:#f44;text-shadow:0 0 10px #ff4444}.modal-overlay{position:fixed;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:2rem;cursor:pointer}.modal-overlay.modal-opening{animation:modalFadeIn .3s cubic-bezier(.175,.885,.32,1.275)}.modal-overlay.modal-closing{animation:modalFadeOut .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes modalFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}@keyframes modalFadeOut{0%{opacity:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}to{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}}.modal-content{position:relative;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:0;padding:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;cursor:default}.modal-overlay.modal-opening .modal-content{animation:modalContentZoomIn .3s cubic-bezier(.175,.885,.32,1.275)}.modal-overlay.modal-closing .modal-content{animation:modalContentZoomOut .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes modalContentZoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes modalContentZoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.modal-content img{max-width:calc(100vw - 4rem);max-height:calc(100vh - 4rem);width:auto;height:auto;object-fit:contain;border-radius:15px;box-shadow:0 25px 50px #00000080;transition:all .3s ease}.image-metadata{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:1rem 1.5rem;border:1px solid rgba(0,255,65,.2);box-shadow:0 8px 32px #0006,0 0 0 1px #00ff411a;max-width:90vw;z-index:1001;pointer-events:none}.metadata-item{color:#00ff41;font-family:Courier New,Courier,monospace;font-size:.9rem;margin:.25rem 0;text-shadow:0 0 10px rgba(0,255,65,.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metadata-item:first-child{margin-top:0}.metadata-item:last-child{margin-bottom:0}.image-metadata-overlay{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;padding:8px 12px;border-radius:8px;font-size:.8rem;font-family:Courier New,monospace;font-weight:600;pointer-events:none;z-index:1002;text-align:center;min-width:200px;box-shadow:0 4px 12px #0000004d}.image-metadata-overlay .date-text{line-height:1.3;margin-bottom:2px;color:#00ff41;font-size:.85rem}.image-metadata-overlay .time-text{line-height:1.3;font-size:.75rem;color:#ccc;opacity:.9;margin-bottom:4px}.image-metadata-overlay .location-text{line-height:1.3;color:#4cf;font-size:.7rem;max-width:300px;word-wrap:break-word;white-space:normal}.modal-content.modal-pdf{width:calc(100vw - 4rem);height:calc(100vh - 4rem);max-width:none;max-height:none;background:#ffffff0d;border-radius:15px;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px #0006,0 0 0 1px #ffffff1a}.modal-content.modal-pdf iframe{border-radius:15px;background:#fff}.modal-content.modal-video{width:calc(100vw - 4rem);height:calc(100vh - 4rem);max-width:none;max-height:none;background:#000000e6;border-radius:15px;border:1px solid rgba(100,100,255,.3);box-shadow:0 25px 50px #0006,0 0 0 1px #6464ff33,0 0 20px #6464ff33}.modal-content.modal-video video{border-radius:15px;background:#000;width:100%;height:100%}.modal-content.modal-text{width:calc(100vw - 8rem);height:calc(100vh - 8rem);max-width:800px;max-height:600px;background:#000000e6;border-radius:15px;border:1px solid rgba(0,255,65,.2);box-shadow:0 25px 50px #0006,0 0 0 1px #00ff411a,0 0 20px #00ff411a;padding:2rem;overflow:visible;position:relative}.text-content{color:#00ff41;font-family:Courier New,Courier,monospace;font-size:1rem;line-height:1.6;text-shadow:0 0 10px rgba(0,255,65,.5);height:100%;overflow-y:auto;padding-right:.5rem;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.text-content p{margin:0 0 1.5rem;text-align:left}.text-content p:last-child{margin-bottom:0}.text-content .first-line{text-align:center;font-size:1.4rem;font-weight:700;margin-bottom:2rem;text-shadow:0 0 15px rgba(0,255,65,.8),0 0 30px rgba(0,255,65,.5)}.modal-close{position:absolute;top:-1rem;right:-1rem;background:#fff3;border:none;color:#fff;font-size:2rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);transition:all .3s ease;z-index:1002!important}.modal-close:hover{background:#ffffff4d;transform:scale(1.1);box-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41;animation:modalGlow 2s ease-in-out infinite alternate}@keyframes modalGlow{0%{box-shadow:0 0 10px #00ff41,0 0 20px #00ff41,0 0 30px #00ff41,0 0 40px #00ff41}to{box-shadow:0 0 15px #00ff41,0 0 25px #00ff41,0 0 35px #00ff41,0 0 45px #00ff41,0 0 55px #00ff41}}@keyframes shakeNo{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}.modal-content.shake{animation:shakeNo .6s ease-in-out}@media (max-width: 768px){.gallery-page{-webkit-overflow-scrolling:touch}.gallery-header{height:70px;padding:0 1rem}.back-button{font-size:2.8rem;margin-right:1rem;min-width:55px;height:55px}.gallery-d0m1{font-size:1.8rem}.gallery-path{font-size:.9rem}.gallery-path-display{font-size:1.8rem}.gallery-section{padding:1rem}.gallery-track{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding:1.5rem}.file-icon{font-size:3rem}.file-name{font-size:1rem}.modal-overlay{padding:1rem}.modal-content img{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}.image-metadata{bottom:1rem;padding:.75rem 1rem;max-width:calc(100vw - 2rem)}.metadata-item{font-size:.8rem}.image-metadata-overlay{bottom:12px;padding:6px 10px;font-size:.7rem;min-width:180px;max-width:calc(100vw - 40px)}.image-metadata-overlay .date-text{font-size:.75rem}.image-metadata-overlay .time-text{font-size:.65rem}.image-metadata-overlay .location-text{font-size:.6rem;max-width:250px}.modal-content.modal-pdf{width:calc(100vw - 2rem);height:calc(100vh - 2rem)}.modal-content.modal-text{width:calc(100vw - 4rem);height:calc(100vh - 4rem);padding:1.5rem}.text-content{font-size:.9rem}.modal-close{top:-.5rem;right:-.5rem;width:2.5rem;height:2.5rem;font-size:1.5rem}}@media (max-width: 480px){.gallery-page{-webkit-overflow-scrolling:touch;touch-action:pan-y}.gallery-header{height:70px;padding:0 .5rem}.back-button{font-size:2.5rem;margin-right:1rem;min-width:50px;height:50px}.gallery-d0m1{font-size:1.5rem}.gallery-path{font-size:.75rem}.gallery-path-display{font-size:1.5rem}.gallery-section{padding:1rem .5rem}.gallery-track{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;padding:1rem}.file-icon{font-size:2.5rem}.file-name{font-size:.9rem}}@media (max-width: 380px){.gallery-page{-webkit-overflow-scrolling:touch;touch-action:pan-y}.gallery-header{padding:0 .3rem}.back-button{font-size:2.2rem;margin-right:.5rem;min-width:45px;height:45px}.gallery-d0m1{font-size:1.2rem}.gallery-path{font-size:.6rem}.gallery-path-display{font-size:1.2rem}.gallery-title{max-width:calc(100vw - 80px)}.gallery-track{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;padding:.5rem}}@media (max-width: 320px){.gallery-page{-webkit-overflow-scrolling:touch;touch-action:pan-y}.gallery-header{padding:0 .2rem}.back-button{margin-right:.3rem;min-width:40px;height:40px;font-size:2rem}.gallery-d0m1{font-size:1rem}.gallery-path{font-size:.5rem}.gallery-path-display{font-size:1rem}.gallery-title{max-width:calc(100vw - 60px)}}.cv-route{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff;padding:2rem 0}.cv-container{max-width:1200px;margin:0 auto;padding:0 2rem}.cv-header{text-align:center;margin-bottom:3rem;padding:2rem;background:#ffffff0d;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.cv-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(45deg,#64b3f4,#c2e9fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.cv-subtitle{font-size:1.1rem;opacity:.8;margin-bottom:2rem;font-weight:300}.cv-actions{display:flex;justify-content:center;gap:1rem}.download-btn{background:linear-gradient(45deg,#667eea,#764ba2);color:#fff;border:none;padding:.8rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px}.download-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px #667eea4d}.cv-viewer{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 20px 40px #0000004d;margin-bottom:2rem}.pdf-iframe{border:none;width:100%;height:800px;display:block}.cv-footer{text-align:center;padding:2rem;background:#ffffff0d;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.privacy-notice{font-size:.9rem;opacity:.7;margin:0;font-style:italic}.loading{text-align:center;padding:4rem 2rem;color:#fffc}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top:4px solid #64b3f4;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading p{font-size:1.1rem;margin:0}.error-state{text-align:center;padding:4rem 2rem;color:#fffc}.error-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.error-state h2{font-size:2rem;margin-bottom:1rem;color:#ff6b6b}.error-state p{font-size:1.1rem;line-height:1.6;max-width:600px;margin:0 auto 1rem}.error-hint{background:#ffffff1a;padding:1rem;border-radius:8px;margin-top:1rem;border-left:4px solid #64b3f4}.error-hint code{background:#0000004d;padding:2px 8px;border-radius:4px;font-family:Courier New,monospace;color:#64b3f4}@media (max-width: 768px){.cv-container{padding:0 1rem}.cv-header h1{font-size:2rem}.cv-header{padding:1.5rem}.pdf-iframe{height:600px}.download-btn{padding:.7rem 1.5rem;font-size:.9rem}}@media (max-width: 480px){.cv-header h1{font-size:1.8rem}.cv-header{padding:1rem}.pdf-iframe{height:500px}.cv-actions{flex-direction:column;align-items:center}.download-btn{width:100%;max-width:250px}}.not-found-page{margin:0;width:100vw;height:100vh;overflow:hidden;background-color:#000;color:#fff;position:fixed;top:0;left:0;z-index:9999}.loading-overlay{margin:auto;width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.animation-grid{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;grid-template-columns:repeat(16,1fr);grid-template-rows:repeat(8,1fr);z-index:1}.tile{display:block;box-sizing:border-box;margin:0;background-color:transparent;filter:blur(4vw);will-change:transform,background-color;transform:translateZ(0)}.tile.on{animation:pulse1 4s infinite linear alternate}.tile.on2{animation:pulse2 12s infinite linear alternate}.tile.on3{animation:pulse3 3s infinite linear alternate}.tile.on4{animation:pulse4 5s infinite linear alternate}.tile.on5{animation:pulse5 15s infinite linear alternate}.tile.on6{animation:pulse6 8s infinite linear alternate}.tile.on7{animation:pulse7 8s infinite linear alternate}.tile.drift1{animation:drift1 12s infinite ease-in-out alternate}.tile.drift2{animation:drift2 16s infinite ease-in-out alternate}.tile.drift3{animation:drift3 20s infinite ease-in-out alternate}@keyframes pulse1{0%{transform:scale(2.5);background-color:#00ff4100}to{transform:scale(.2);background-color:#00ff4199}}@keyframes pulse2{0%{transform:scale(1.5);background-color:#ff69b400}to{transform:scale(.5);background-color:#ff69b480}}@keyframes pulse3{0%{transform:scale(3.2);background-color:#40e0ff00}to{transform:scale(1.2);background-color:#40e0ff99}}@keyframes pulse4{0%{transform:scale(2.8);background-color:#ffa50000}to{transform:scale(.6);background-color:#ffa500b3}}@keyframes pulse5{0%{transform:scale(1.6);background-color:#8a2be200}to{transform:scale(.6);background-color:#8a2be280}}@keyframes pulse6{0%{transform:scale(6.4);background-color:#ff149300}to{transform:scale(2);background-color:#ff149366}}@keyframes pulse7{0%{transform:scale(6.8);background-color:#00bfff00}to{transform:scale(2.4);background-color:#00bfff66}}@keyframes drift1{0%{transform:translate(0) scale(1.5);background-color:#ff149333}25%{transform:translate(20px,-15px) scale(2.2);background-color:#ff149366}50%{transform:translate(-10px,25px) scale(1.8);background-color:#ff149399}75%{transform:translate(15px,10px) scale(2.5);background-color:#ff14934d}to{transform:translate(0) scale(1.5);background-color:#ff149333}}@keyframes drift2{0%{transform:translate(0) scale(2);background-color:#00ff7f1a}33%{transform:translate(-25px,20px) scale(3);background-color:#00ff7f80}66%{transform:translate(30px,-10px) scale(2.5);background-color:#00ff7fb3}to{transform:translate(0) scale(2);background-color:#00ff7f1a}}@keyframes drift3{0%{transform:translate(0) scale(1.2);background-color:#8a2be21a}20%{transform:translate(35px,25px) scale(2.8);background-color:#8a2be266}40%{transform:translate(-20px,-30px) scale(3.5);background-color:#8a2be299}60%{transform:translate(-35px,15px) scale(2);background-color:#8a2be2cc}80%{transform:translate(25px,-20px) scale(3.2);background-color:#8a2be24d}to{transform:translate(0) scale(1.2);background-color:#8a2be21a}}.not-found-content{position:relative;z-index:10;text-align:center;max-width:600px;margin:0 auto;padding:2rem}.loading-logo{margin-bottom:2rem}.error-display{display:flex;align-items:center;justify-content:center;gap:3rem;margin:2rem auto}.number-4{font-size:12rem;font-weight:700;font-family:Courier New,Courier,monospace;color:#00ff41;text-shadow:0 0 20px #00ff41,0 0 40px #00ff41,0 0 60px #00ff41;animation:terminalGlow 3s ease-in-out infinite alternate;-webkit-user-select:none;user-select:none;line-height:1;transition:all 1.8s cubic-bezier(.25,.46,.45,.94);transform-origin:center center}@keyframes terminalGlow{0%{text-shadow:0 0 20px #00ff41,0 0 40px #00ff41,0 0 60px #00ff41}to{text-shadow:0 0 30px #00ff41,0 0 50px #00ff41,0 0 70px #00ff41,0 0 90px #00ff41}}.error-image-container{position:relative;width:500px;height:500px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at center,#0003,#00ff414d,#ff69b44d 60%,#40e0ff4d,#000c);box-shadow:0 0 30px #00ff4166,inset 0 0 30px #00000080;border:2px solid rgba(0,255,65,.5);cursor:pointer;transition:all .3s ease;flex-shrink:0;will-change:transform,box-shadow;transform:translateZ(0)}.error-image-container:hover{box-shadow:0 0 100px #00ff41cc,0 0 80px #fff9,0 0 60px #ff69b499,0 0 140px #00ff4166,inset 0 0 30px #00000080}.number-4.zoomed{transform:scale(3.2);text-shadow:0 0 80px #00ff41,0 0 160px #00ff41,0 0 240px #ffffff,0 0 320px #00ff41,0 0 400px #ffffff,0 0 480px #00ff41,0 0 560px #ffffff}.error-image-container:before{content:"";position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(from 0deg,#00ff4199,#ff69b499,#40e0ff99,#00ff4199);z-index:-1;animation:rotateGradient 4s linear infinite}@keyframes rotateGradient{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-image{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:drop-shadow(0 0 20px rgba(0,255,65,.3)) brightness(1.1) contrast(1.2);transition:all 1.8s cubic-bezier(.25,.46,.45,.94);transform-origin:40% 95%;will-change:transform,filter;transform:translateZ(0)}.error-image:hover{filter:drop-shadow(0 0 80px rgba(0,255,65,1)) drop-shadow(0 0 60px rgba(255,255,255,.8)) drop-shadow(0 0 40px rgba(255,105,180,.6)) drop-shadow(0 0 120px rgba(0,255,65,.4)) brightness(1.8) contrast(1.6) saturate(1.5);transform:scale(2)}.error-hint{background:#ffffff1a;padding:1rem;border-radius:8px;margin:2rem 0;border-left:4px solid #00ff41;font-style:italic}@media (max-width: 768px){.not-found-content{padding:1rem}.error-display{gap:2rem}.number-4{font-size:8rem}.error-image-container{width:350px;height:350px}}@media (max-width: 480px){.tile{filter:blur(8vw)}.error-display{flex-direction:column;gap:1rem}.number-4{font-size:6rem}.error-image-container{width:300px;height:300px}}*{margin:0;padding:0;box-sizing:border-box}.App{min-height:100vh;width:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}p{margin-bottom:1rem}img{max-width:100%;height:auto}button{font-family:inherit;cursor:pointer;transition:all .3s ease}button:focus{outline:2px solid #667eea;outline-offset:2px}::-webkit-scrollbar{width:0px;background:transparent}::-webkit-scrollbar-thumb{background:transparent}html{scrollbar-width:none}html{scroll-behavior:smooth}a:focus,button:focus{outline:2px solid #667eea;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
