:root{--color-primary:#ffa742;--color-primary-hover:#e6953a;--color-primary-light:rgba(255,167,66,0.2);--color-primary-subtle:rgba(255,167,66,0.1);--color-primary-border:rgba(255,167,66,0.3);--color-dark:#3b424c;--color-dark-deep:#2a2f38;--color-dark-surface:#333842;--color-light:#e8e8e8;--color-light-soft:#f5f5f5;--color-light-muted:#ddd;--color-gray-100:#f5f5f5;--color-gray-200:#e8e8e8;--color-gray-300:#ddd;--color-gray-400:#94a3b8;--color-gray-500:#64748b;--color-gray-600:#4a5568;--color-gray-700:#3b424c;--color-gray-800:#333842;--color-gray-900:#2a2f38;--color-success:#4ade80;--color-error:#ff6b6b;--color-warning:#fbbf24;--terminal-bg:var(--color-gray-900);--terminal-header:var(--color-gray-700);--terminal-header-gradient:linear-gradient(180deg,var(--color-gray-700) 0%,var(--color-gray-800) 100%);--terminal-text:var(--color-light);--terminal-text-muted:var(--color-gray-500);--terminal-text-subtle:var(--color-gray-400);--terminal-accent:var(--color-primary);--terminal-live:var(--color-success);--terminal-border:var(--color-gray-600);--terminal-divider:var(--color-primary-border);--font-display:"Bebas Neue",sans-serif;--font-body:"Montserrat",sans-serif;--font-mono:"JetBrains Mono","Fira Code","Consolas",monospace;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:40px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 4px 12px rgba(0,0,0,0.1);--shadow-md:0 10px 20px rgba(0,0,0,0.1);--shadow-lg:0 25px 50px -12px rgba(0,0,0,0.4);--shadow-terminal:0 25px 50px -12px rgba(0,0,0,0.4),0 0 0 1px var(--color-primary-subtle);--transition-fast:0.2s ease;--transition-base:0.3s ease;--transition-slow:0.4s ease}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}body{background-color:#e8e8e8;color:#3b424c;font-family:Montserrat,sans-serif;font-weight:300;line-height:1.6}[id^=tsparticles-]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}.apps-projects-section,.main-section,.maincontact-section{position:relative;overflow:visible;padding:40px 20px;z-index:1}.particle-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}.banner{background:rgba(255,167,66,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:3px 0;overflow:hidden;position:relative;z-index:2}.marquee{white-space:nowrap;animation:marquee 20s linear infinite;font-family:Bebas Neue,sans-serif;font-size:2rem;color:#3b424c}@keyframes marquee{0%{transform:translateX(100%)}to{transform:translateX(-100%)}}.main-section{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;justify-content:center;min-height:auto}.title-left,.title-right{font-family:Bebas Neue,sans-serif;line-height:.85;margin-bottom:1rem;font-size:clamp(3rem,10vw,8rem);letter-spacing:1px}.title-left{text-align:left}.title-right{text-align:right}.text-left,.text-right{font-size:clamp(.9rem,3vw,1.3rem);line-height:1.4;margin-bottom:1rem}.text-left{text-align:left}.text-right{text-align:right}.apps-projects-section,.maincontact-section{background-color:#3b424c;color:#e8e8e8;width:100%;line-height:1}.apps-projects-section .title-left,.maincontact-section .title-left{color:#ffa742}.apps-projects-section .text-right,.maincontact-section .text-right{color:#e8e8e8}.maincontact-section .container{max-width:1200px;margin:0 auto;padding:40px 20px}.email-link{font-family:Montserrat,sans-serif;font-weight:300;font-size:1.5rem;color:#e8e8e8;text-decoration:none;position:relative;padding-bottom:5px;transition:all .3s ease}.email-link:hover{color:#ffa742}.email-link:after{content:"";position:absolute;width:0;height:1px;bottom:0;left:0;background-color:#ffa742;transition:width .3s ease}.email-link:hover:after{width:100%}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:40px;gap:40px;margin-top:40px}.project-item{transition:transform .3s ease;background:rgba(255,255,255,.1);border-radius:8px;overflow:hidden}.project-item:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.1)}.project-image{height:300px;width:100%;background-size:cover;background-position:50%;cursor:pointer;transition:all .3s ease;overflow:hidden}.project-image:hover{opacity:.9}.project-info{padding:1.5rem}.project-info h3{font-family:Bebas Neue,sans-serif;font-size:2rem;margin-bottom:1rem;color:#ffa742;letter-spacing:1px}.project-description{margin-bottom:1.5rem}.description-line{font-size:1rem;line-height:1.2;margin-bottom:.5rem}.project-keywords{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem}.keyword-badge{background-color:rgba(255,167,66,.2);color:#ffa742;padding:4px 12px;border-radius:20px;font-size:.8rem}.keyword-filter-container{margin:2rem 0}.keyword-filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.banner+.apps-projects-section,.banner+.main-section{padding-top:20px}.keyword-filter-header h3{font-family:Bebas Neue,sans-serif;font-size:1.8rem;color:#ffa742;letter-spacing:1px;margin:0}.keyword-tags-container{display:flex;flex-wrap:wrap;gap:10px}.keyword-tag{background:none;border:1px solid #ffa742;color:#ffa742;padding:5px 15px;border-radius:20px;cursor:pointer;transition:all .3s ease;font-family:Bebas Neue,sans-serif;letter-spacing:1px}.keyword-tag.active,.keyword-tag:hover{background-color:#ffa742;color:#3b424c}.reset-keywords-btn{background:none;border:1px solid #e8e8e8;color:#e8e8e8;padding:5px 15px;border-radius:4px;cursor:pointer;font-family:Montserrat,sans-serif;transition:all .3s ease}.reset-keywords-btn:hover{background-color:#e8e8e8;color:#3b424c}.category-filter-container{margin:2rem 0 1rem}.category-filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.category-filter-header h3{font-family:Bebas Neue,sans-serif;font-size:1.8rem;color:#ffa742;letter-spacing:1px;margin:0}.category-groups{display:flex;flex-direction:column;gap:12px}.category-group{display:flex;align-items:flex-start;gap:10px}.category-group-label{font-family:Bebas Neue,sans-serif;font-size:.85rem;letter-spacing:1px;min-width:100px;padding-top:6px;opacity:.7}.category-group-buttons{display:flex;flex-wrap:wrap;gap:6px}.category-btn{background:none;border:1px solid #ffa742;color:#ffa742;padding:4px 12px;border-radius:16px;cursor:pointer;transition:all .3s ease;font-family:Bebas Neue,sans-serif;font-size:.85rem;letter-spacing:1px}.category-btn:hover{opacity:.8}.category-btn.active{background-color:#ffa742;color:#1a1f27}.slideshow-container,.slideshow-image{position:absolute;top:0;left:0;width:100%;height:100%}.slideshow-image{background-size:cover;background-position:50%;transition:opacity .6s ease}.slideshow-video-cover{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.slideshow-dots{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:2}.slideshow-dot{width:6px;height:6px;border-radius:50%;background-color:rgba(255,255,255,.4);transition:background-color .3s ease}.slideshow-dot.active{background-color:#ffa742}.hyperlinks{display:flex;gap:2rem;margin:1rem 0}.din-link{font-family:Bebas Neue,sans-serif;color:#3b424c;text-decoration:none;font-size:1.5rem;letter-spacing:1px;transition:color .3s ease}.din-link:hover{color:#ffa742}.footer{background-color:#3b424c;color:white;text-align:center;padding:20px}.final-text{font-size:.8rem;margin-top:10px;font-family:Montserrat,sans-serif;font-weight:300}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{position:relative;max-width:90%;max-height:90%;background:white;border-radius:8px;padding:20px}.close-btn{position:absolute;top:-40px;right:0;background:none;border:none;color:white;font-size:2rem;cursor:pointer}.modal-media{max-height:80vh;max-width:100%;border-radius:4px}.modal-iframe{width:80vw;height:80vh;border:none;border-radius:4px}.project-modal{display:flex;flex-direction:column;gap:16px;background:var(--color-gray-900,#2a2f38);max-width:900px;padding:24px}.modal-project-header{padding-bottom:12px;border-bottom:1px solid var(--color-gray-700,#3b424c)}.modal-project-header h3{font-family:var(--font-mono,monospace);font-size:1.1rem;font-weight:400;letter-spacing:1px}.project-modal .modal-iframe,.project-modal .modal-media{width:100%;max-height:60vh;object-fit:contain;border-radius:8px}.project-modal .modal-iframe{height:50vh}.modal-gallery{display:flex;gap:12px;padding-top:12px;border-top:1px solid var(--color-gray-700,#3b424c);overflow-x:auto}.gallery-thumb{flex-shrink:0;width:80px;height:60px;border:2px solid transparent;border-radius:6px;overflow:hidden;background:var(--color-gray-800,#333842);cursor:pointer;transition:all .2s ease;padding:0}.gallery-thumb:hover{transform:scale(1.05)}.gallery-thumb.active{border-width:2px}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-thumb-video{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--terminal-text-muted,#64748b)}.gallery-thumb-video span:first-child{font-size:1.2rem}.thumb-type{font-size:.5rem;letter-spacing:1px;font-family:var(--font-mono,monospace)}.project-modal .modal-video{width:100%;max-height:60vh;object-fit:contain;background:#000}.modal-no-media{width:100%;height:300px;display:flex;align-items:center;justify-content:center;background:rgba(59,66,76,.3);border-radius:8px;font-size:.9rem}.modal-no-media,.project-progress-badge{font-family:var(--font-mono,monospace);letter-spacing:1px}.project-progress-badge{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:4px;font-size:.7rem;color:var(--color-gray-900,#2a2f38);font-weight:600}.project-image-empty{background-color:rgba(59,66,76,.5);display:flex;align-items:center;justify-content:center}.project-image-placeholder{flex-direction:column;font-size:1.2rem;letter-spacing:2px;opacity:.7}.project-image-placeholder,.project-media-count{display:flex;align-items:center;justify-content:center;font-family:var(--font-mono,monospace)}.project-media-count{position:absolute;bottom:12px;right:12px;width:28px;height:28px;border-radius:50%;font-size:.75rem;color:var(--color-gray-900,#2a2f38);font-weight:700}.name-link,.project-image{position:relative}.name-link{color:inherit;text-decoration:none;transition:color .3s ease}.name-link:hover{color:#ffa742}.sphere-loading-placeholder{background:#2a2f38;border-radius:12px;height:600px;display:flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;color:#64748b}@media (max-width:768px){.sphere-loading-placeholder{height:80vh}}@media (max-width:480px){.sphere-loading-placeholder{height:65vh}}@media (max-width:768px){.main-section,.maincontact-section .container{padding:40px 20px}.projects-grid{grid-template-columns:1fr;gap:30px;margin-top:20px}.project-image{height:250px}.table-container{padding:1rem}td,th{padding:.8rem}.company-name{font-size:1.2rem}.resource-btn{padding:.5rem 1rem}.hyperlinks{flex-direction:column;gap:1rem}}@media (max-width:480px){.marquee,.project-info h3{font-size:1.5rem}.category-filter-header,.keyword-filter-header{flex-direction:column;align-items:flex-start;gap:1rem}.category-group{flex-direction:column;gap:6px}.category-group-label{min-width:auto}.main-section,.maincontact-section .container{padding:20px 12px}.project-image{height:200px}.email-link{font-size:1.1rem}.modal-iframe{width:95vw;height:60vh}.project-modal{padding:12px}.toggle-experience-btn{padding:.8rem 1.5rem;font-size:1rem}}.vimeo-container{position:relative;width:100%;padding-bottom:56.25%;height:0;margin:2rem auto;max-width:1200px}.vimeo-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.2)}.full-width-vimeo{position:relative;width:100%;padding-bottom:56.25%;height:0;margin-top:2rem;margin-bottom:2rem;overflow:hidden}.full-width-vimeo iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.experience-section{margin:2rem 0}.toggle-experience-btn{background-color:#ffa742;color:#3b424c;border:none;padding:1rem 2rem;font-family:Bebas Neue,sans-serif;font-size:1.2rem;letter-spacing:1px;border-radius:4px;cursor:pointer;transition:all .3s ease;margin-bottom:2rem}.toggle-experience-btn:hover{background-color:#e6953a;transform:translateY(-2px)}.experience-accordion{background-color:#f5f5f5;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1)}.experience-item{border-bottom:1px solid #ddd}.experience-item:last-child{border-bottom:none}.experience-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;cursor:pointer;transition:background-color .3s ease}.experience-header:hover{background-color:#e8e8e8}.company-info h3{font-family:Bebas Neue,sans-serif;font-size:1.4rem;color:#3b424c;margin:0;letter-spacing:1px}.company-location{font-family:Montserrat,sans-serif;font-size:.9rem;color:#666;margin-top:.3rem}.toggle-icon{font-size:1.5rem;font-weight:700;color:#ffa742}.experience-content{padding:0 1.5rem 1.5rem}.experience-bullets{list-style:none;padding:0;margin-bottom:1rem}.experience-bullets li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;line-height:1.5}.experience-bullets li:before{content:"•";color:#ffa742;position:absolute;left:0;font-size:1.2rem}.resource-btn:hover{box-shadow:0 4px 8px rgba(0,0,0,.1)}.resource-btn{font-family:Bebas Neue,sans-serif;letter-spacing:1px;background-color:#3b424c;color:white;border:none;padding:.6rem 1.2rem;border-radius:4px;transition:all .3s ease;cursor:pointer;margin-top:1rem}.resource-btn:hover{background-color:#ffa742;color:#3b424c;transform:translateY(-2px)}@media (max-width:768px){.experience-header{padding:1rem;flex-direction:column;align-items:flex-start;gap:.5rem}.company-info h3{font-size:1.2rem}.toggle-icon{align-self:flex-end}.experience-content{padding:0 1rem 1rem}}.cv-full-section{display:flex;flex-direction:column;gap:2.5rem;animation:cvFadeIn .6s ease-out}@keyframes cvFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.cv-header{text-align:center;padding:2rem 1.5rem;background:rgba(59,66,76,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:10px;border:1px solid rgba(255,167,66,.15);position:relative;z-index:1}.cv-name{font-family:Bebas Neue,sans-serif;font-size:2.2rem;color:#ffa742;letter-spacing:2px;margin:0}.cv-title-line{font-size:1rem;color:#e0e0e0;margin:.3rem 0 .8rem;letter-spacing:.5px}.cv-contact,.cv-title-line{font-family:Montserrat,sans-serif}.cv-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;font-size:.8rem;color:#b0b0b0}.cv-bio{font-family:Montserrat,sans-serif;font-size:.85rem;color:#c5c5c5;max-width:700px;margin:1rem auto 0;line-height:1.6;text-align:center}.cv-block{display:flex;flex-direction:column;gap:1rem}.cv-block-title{font-family:Bebas Neue,sans-serif;font-size:1.4rem;color:#ffa742;letter-spacing:2px;margin:0;padding-bottom:.5rem;border-bottom:2px solid rgba(255,167,66,.3);position:relative;z-index:1}.cv-timeline{position:relative;padding-left:1.5rem}.cv-timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:rgba(255,167,66,.4);z-index:1}.cv-timeline-item{position:relative;padding-bottom:1.5rem}.cv-timeline-item:last-child{padding-bottom:0}.cv-timeline-dot{position:absolute;left:-1.5rem;top:.5rem;width:10px;height:10px;background:#ffa742;border-radius:50%;transform:translateX(-4px);z-index:2;box-shadow:0 0 6px rgba(255,167,66,.5)}.cv-timeline-content{background:rgba(59,66,76,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:6px;overflow:hidden;border:1px solid rgba(255,167,66,.1);position:relative;z-index:1}.cv-timeline-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;transition:background-color .2s ease}.cv-timeline-header:hover{background:rgba(255,167,66,.08)}.cv-company{font-family:Bebas Neue,sans-serif;font-size:1.2rem;color:#f0f0f0;margin:0;letter-spacing:.5px}.cv-role{font-size:.85rem;color:#d0d0d0;margin:.15rem 0 0}.cv-location-date,.cv-role{font-family:Montserrat,sans-serif}.cv-location-date{font-size:.75rem;color:#a0a0a0;margin:.25rem 0 0}.cv-bullets{list-style:none;padding:0 1.25rem 1rem;margin:0}.cv-bullets li{position:relative;padding-left:1.2rem;margin-bottom:.4rem;font-family:Montserrat,sans-serif;font-size:.85rem;color:#d0d0d0;line-height:1.5}.cv-bullets li:before{content:">";color:#ffa742;position:absolute;left:0;font-family:JetBrains Mono,monospace;font-size:.75rem}.cv-compact-list{display:flex;flex-direction:column;gap:1rem}.cv-compact-item{background:rgba(59,66,76,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:6px;padding:1rem 1.25rem;border:1px solid rgba(255,167,66,.1);position:relative;z-index:1}.cv-compact-item h4{font-family:Bebas Neue,sans-serif;font-size:1.1rem;color:#f0f0f0;margin:0;letter-spacing:.5px}.cv-skills-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.25rem;gap:1.25rem}.cv-skill-group{background:rgba(59,66,76,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:6px;padding:1rem;border:1px solid rgba(255,167,66,.1);position:relative;z-index:1}.cv-skill-category{font-family:Bebas Neue,sans-serif;font-size:1rem;color:#ffa742;margin:0 0 .6rem;letter-spacing:1px}.cv-skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.cv-skill-tag{font-family:JetBrains Mono,Fira Code,monospace;font-size:.7rem;color:#f0f0f0;background:rgba(255,167,66,.15);border:1px solid rgba(255,167,66,.3);border-radius:4px;padding:4px 10px}.cv-awards-row{display:flex;flex-direction:column;gap:.75rem}.cv-award-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 0}.cv-award-icon{color:#ffa742;font-size:.9rem}.cv-award-text{font-family:Montserrat,sans-serif;font-size:.85rem;color:#3b424c;flex:1 1}.cv-award-year{font-family:JetBrains Mono,monospace;font-size:.8rem;color:#ffa742;font-weight:600}.cv-activity-list{display:flex;flex-direction:column;gap:.75rem}.cv-activity-item{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;padding:.75rem 1rem;background:rgba(59,66,76,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:6px;border:1px solid rgba(255,167,66,.1);position:relative;z-index:1}.cv-activity-date{font-size:.7rem;color:#a0a0a0}.cv-activity-cat,.cv-activity-date{font-family:JetBrains Mono,monospace}.cv-activity-cat{font-size:.6rem;color:#ffa742;background:rgba(255,167,66,.2);padding:2px 6px;border-radius:3px;letter-spacing:.5px}.cv-activity-text{font-family:Montserrat,sans-serif;font-size:.8rem;color:#d0d0d0;line-height:1.5;margin:0;width:100%}.cv-download{display:flex;justify-content:center;padding-top:1rem}.cv-download-btn{font-family:Bebas Neue,sans-serif;font-size:1.1rem;letter-spacing:1.5px;color:#3b424c;background:#ffa742;border:none;padding:.8rem 2.5rem;border-radius:4px;cursor:pointer;transition:all .3s ease}.cv-download-btn:hover{background:#e6953a;transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,167,66,.3)}@media (max-width:768px){.cv-name{font-size:1.6rem}.cv-contact{flex-direction:column;gap:.3rem}.cv-skills-grid{grid-template-columns:1fr}.cv-timeline-header{padding:.75rem 1rem;flex-direction:column;align-items:flex-start;gap:.5rem}.cv-timeline-header .toggle-icon{align-self:flex-end}.cv-company{font-size:1rem}.cv-bullets{padding:0 1rem .75rem}}.password-modal{max-width:400px;text-align:center;background:#3b424c;color:#e8e8e8}.password-modal h3{font-family:Bebas Neue,sans-serif;font-size:1.8rem;color:#ffa742;margin-bottom:1rem;letter-spacing:1px}.password-modal p{margin-bottom:1.5rem;font-size:.9rem}.password-form{display:flex;flex-direction:column;gap:1rem}.password-input{padding:.8rem;border:2px solid #ffa742;border-radius:4px;background:#2a2f38;color:#e8e8e8;font-size:1rem;text-align:center}.password-input:focus{outline:none;border-color:#e6953a}.password-input.error{border-color:#ff6b6b;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.password-error{color:#ff6b6b;font-size:.8rem;margin:-.5rem 0}.password-submit-btn{background-color:#ffa742;color:#3b424c;border:none;padding:.8rem 2rem;font-family:Bebas Neue,sans-serif;font-size:1.2rem;letter-spacing:1px;border-radius:4px;cursor:pointer;transition:all .3s ease}.password-submit-btn:hover{background-color:#e6953a;transform:translateY(-2px)}.admin-link{margin-left:1rem;color:var(--text-dim,#666);text-decoration:none;opacity:.3;transition:opacity .3s ease;font-size:.6rem}.admin-link:hover{opacity:1;color:var(--accent,#ffa742)}