.desktop-icons-container{position:relative;width:100%;height:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-auto-rows:100px;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;padding:10px 10px 60px;max-height:calc(100vh - 40px)}@media(max-width:480px){.desktop-icons-container{grid-template-columns:repeat(4,1fr);grid-auto-rows:90px;padding:5px 5px 50px;max-height:calc(100vh - 30px)}}.desktop-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;cursor:pointer;transition:all .1s ease;animation:fadeIn .5s ease-out;animation-fill-mode:both;padding:5px;border:1px solid rgba(0,0,0,0);box-sizing:border-box;z-index:1}@media(max-width:480px){.desktop-icon{padding:3px}}.desktop-icon:first-child{animation-delay:.1s}.desktop-icon:nth-child(2){animation-delay:.2s}.desktop-icon:nth-child(3){animation-delay:.3s}.desktop-icon:nth-child(4){animation-delay:.4s}.desktop-icon:nth-child(5){animation-delay:.5s}.desktop-icon:nth-child(6){animation-delay:.6s}.desktop-icon:nth-child(7){animation-delay:.7s}.desktop-icon:hover{background-color:rgba(0,0,128,.1);border:1px dotted #fff}.desktop-icon:active{background-color:rgba(0,0,128,.3)}.desktop-icon .icon-image{width:40px;height:40px;margin-bottom:6px;display:flex;justify-content:center;align-items:center}@media(max-width:480px){.desktop-icon .icon-image{width:34px;height:34px;margin-bottom:4px}}.desktop-icon .icon-image img{width:100%;height:100%;object-fit:contain}.desktop-icon .icon-text{color:#fff;text-align:center;font-size:.75rem;text-shadow:1px 1px 1px #000;padding:2px;max-width:100%;white-space:normal;word-break:break-word;overflow-wrap:anywhere;line-height:1.1}@media(max-width:480px){.desktop-icon .icon-text{font-size:.7rem;padding:1px}}.win98-taskbar{background-color:silver;position:fixed;bottom:0;left:0;right:0;height:40px;z-index:50;border-top:2px solid #fff;display:flex;align-items:center;padding:0 2px;justify-content:space-between;animation:slideUp .3s ease-out;box-sizing:border-box;-webkit-overflow-scrolling:touch}@media(max-width:480px){.win98-taskbar{height:30px;margin-bottom:env(safe-area-inset-bottom,0);padding:0 1px env(safe-area-inset-bottom,0)}}.win98-taskbar.ios-device{padding-bottom:env(safe-area-inset-bottom,0);z-index:1000}.win98-start-button{height:36px;padding:0 8px;display:flex;align-items:center;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;margin-right:6px;font-weight:700;background-color:silver;cursor:pointer;transition:background-color .1s ease;flex-shrink:0}@media(max-width:480px){.win98-start-button{height:26px;padding:0 5px;margin-right:4px;font-size:.8rem}}.win98-start-button:hover{background-color:hsl(0,0%,70.2941176471%)}.win98-start-button img{margin-right:4px;width:20px;height:20px;object-fit:contain}@media(max-width:480px){.win98-start-button img{width:16px;height:16px;margin-right:3px}}@media(max-width:360px){.win98-start-button span{display:none}}.taskbar-divider{width:1px;height:70%;background-color:gray;margin:0 4px;flex-shrink:0}@media(max-width:480px){.taskbar-divider{margin:0 2px}}.taskbar-time{background-color:silver;border-color:gray #fff #fff gray;border-style:solid;border-width:1px;padding:2px 8px;font-size:.8rem;margin-left:auto;flex-shrink:0;min-width:45px;text-align:center}@media(max-width:480px){.taskbar-time{padding:1px 5px;font-size:.7rem;min-width:40px}}.start-menu{position:fixed;bottom:40px;left:0;width:220px;background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;display:none;z-index:9999;box-shadow:2px 2px 5px rgba(0,0,0,.2);max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(max-width:480px){.start-menu{bottom:30px;width:200px;max-height:60vh}}.start-menu.ios-device{bottom:30px;padding-bottom:env(safe-area-inset-bottom,0);max-height:calc(var(--vh, 1vh)*50)}.start-menu.active{display:block!important;animation:startMenuOpen .2s ease-out}.start-menu .start-menu-header{background-color:navy;color:#fff;padding:3px;font-weight:700;height:100%;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);position:absolute;left:0;top:0;bottom:0;width:20px;display:flex;align-items:center;justify-content:center}@media(max-width:480px){.start-menu .start-menu-header{width:18px;padding:2px;font-size:.8rem}}.start-menu .start-menu-items{margin-left:30px;padding:5px 0;overflow-y:auto;max-height:calc(100% - 10px)}@media(max-width:480px){.start-menu .start-menu-items{margin-left:25px;padding:3px 0}}.start-menu .start-menu-items .menu-item{padding:5px 8px;display:flex;align-items:center;cursor:pointer;transition:background-color .1s ease;white-space:nowrap}@media(max-width:480px){.start-menu .start-menu-items .menu-item{padding:10px 6px;font-size:.85rem}}.start-menu .start-menu-items .menu-item:hover{background-color:navy;color:#fff}.start-menu .start-menu-items .menu-item img,.start-menu .start-menu-items .menu-item svg{width:16px;height:16px;margin-right:8px;object-fit:contain}@media(max-width:480px){.start-menu .start-menu-items .menu-item img,.start-menu .start-menu-items .menu-item svg{width:14px;height:14px;margin-right:6px}}.start-menu .start-menu-items .menu-divider{height:1px;background-color:gray;margin:5px 0;border-bottom:1px solid #fff}.taskbar-windows{display:flex;flex:1;gap:2px;margin:0 4px;overflow-x:auto;max-width:calc(100% - 200px);-webkit-overflow-scrolling:touch;scrollbar-width:none}@media(max-width:480px){.taskbar-windows{max-width:calc(100% - 120px);margin:0 2px;gap:1px}}.taskbar-windows::-webkit-scrollbar{height:0;width:0;display:none}.taskbar-window-button{height:32px;min-width:120px;max-width:150px;padding:0 8px;display:flex;align-items:center;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;font-size:.8rem;background-color:silver;cursor:pointer;transition:background-color .1s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}@media(max-width:480px){.taskbar-window-button{height:26px;min-width:80px;max-width:120px;font-size:.7rem;padding:0 5px}}@media(max-width:360px){.taskbar-window-button{min-width:70px}}.taskbar-window-button:hover{background-color:hsl(0,0%,70.2941176471%)}.taskbar-window-button.active{border-color:gray #fff #fff gray;background-color:rgb(166.5,166.5,166.5)}.about-me-content{font-family:"MS Sans Serif",Tahoma,Arial,sans-serif;overflow-y:auto;padding:12px;display:flex;flex-direction:column;flex:1;-webkit-overflow-scrolling:touch;box-sizing:border-box}.about-me-content h2{color:navy;margin-bottom:10px}.about-me-content h3{color:#00004d;font-size:1rem;font-weight:700;margin-bottom:8px}.about-me-content .section{margin-bottom:15px;border-bottom:1px solid gray;padding-bottom:10px}.about-me-content .section:last-child{border-bottom:none;padding-bottom:20px}.about-me-content .section-title{background-color:silver;padding:3px 5px;font-weight:700;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;margin-bottom:8px}.about-me-content .contact-info{background-color:hsl(0,0%,80.2941176471%);padding:8px;border:1px solid gray;margin-bottom:10px}.about-me-content .experience-list{list-style-type:disc;padding-left:20px;margin-bottom:10px}.about-me-content .experience-list li{margin-bottom:5px;font-size:.9rem}.about-me-content .portfolio-links{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(max-width:480px){.about-me-content .portfolio-links{grid-template-columns:1fr}}.about-me-content .portfolio-link{display:block;padding:5px;background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;text-align:center;color:navy;text-decoration:none;font-size:.8rem}.about-me-content .portfolio-link:hover{background-color:hsl(0,0%,70.2941176471%)}.about-me-content .portfolio-link:active{border-color:gray #fff #fff gray}.about-me-content .text-blue{color:navy}.about-me-content .mt-4{margin-top:1rem}@media(max-width:480px){.about-me-content{padding:8px}.about-me-content h2{font-size:1.1rem;margin-bottom:8px}.about-me-content h3{font-size:.95rem;margin-bottom:6px}.about-me-content .section{margin-bottom:12px;padding-bottom:8px}.about-me-content .section:last-child{padding-bottom:15px}.about-me-content .section-title{padding:3px 4px;font-size:.9rem;margin-bottom:6px}.about-me-content .contact-info{padding:6px;font-size:.85rem;margin-bottom:8px}.about-me-content .experience-list{padding-left:15px;margin-bottom:8px}.about-me-content .experience-list li{margin-bottom:4px;font-size:.85rem}.about-me-content p{font-size:.85rem;margin-bottom:6px}}.contact-container{padding:12px;display:flex;flex-direction:column;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}.contact-header{margin-bottom:15px}.contact-header h2{color:navy;font-size:1.2rem;margin-bottom:10px}.contact-header p{margin-bottom:10px;line-height:1.4}.contact-methods{display:flex;flex-direction:column;gap:12px;margin-bottom:15px}.contact-method{display:flex;align-items:center;padding:10px;background-color:#fff;border:1px solid gray}.contact-method .method-icon{margin-right:15px}.contact-method .method-icon img{width:24px;height:24px;object-fit:contain}.contact-method .method-details{flex:1}.contact-method .method-details .method-title{font-weight:700;margin-bottom:5px;color:navy}.contact-method .method-details .method-value{font-size:.9rem}.contact-method .method-details .method-value a{color:navy;text-decoration:none}.contact-method .method-details .method-value a:hover{text-decoration:underline}.contact-form{background-color:#fff;border:1px solid gray;padding:12px;margin-top:10px;margin-bottom:15px}.form-title{font-weight:700;color:navy;padding-bottom:5px;border-bottom:1px solid gray}.form-group,.form-title{margin-bottom:12px}.form-group label{display:block;margin-bottom:5px;font-size:.9rem}.form-group input,.form-group textarea{width:100%;padding:5px;border-color:gray #fff #fff gray;border-style:solid;border-width:1px;background-color:#fff;font-family:"MS Sans Serif",Tahoma,Arial,sans-serif;font-size:.9rem;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:navy}.form-group textarea{min-height:100px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px}.form-actions button{min-width:80px}.form-status{margin-top:12px;padding:10px;border:1px solid;font-size:.9rem}.form-status.success{background-color:#e8ffe8;border-color:green;color:green}.form-status.error{background-color:#ffe8e8;border-color:maroon;color:maroon}.social-links{margin-top:15px;padding-bottom:15px}.social-links h3{color:navy;font-size:1rem;margin-bottom:10px}.social-links .social-buttons{display:flex;gap:10px;flex-wrap:wrap}.social-links .social-button{display:flex;align-items:center;padding:5px 10px;background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;cursor:pointer;transition:background-color .1s ease}.social-links .social-button:hover{background-color:hsl(0,0%,70.2941176471%)}.social-links .social-button:active{border-color:gray #fff #fff gray}.social-links .social-button img{width:16px;height:16px;margin-right:8px}.social-links .social-button span{font-size:.8rem}@media(max-width:480px){.contact-container{padding:8px}.contact-header{margin-bottom:12px}.contact-header h2{font-size:1.1rem;margin-bottom:8px}.contact-header p{font-size:.85rem;margin-bottom:8px;line-height:1.3}.contact-methods{gap:10px;margin-bottom:12px}.contact-method{padding:8px}.contact-method .method-icon{margin-right:10px}.contact-method .method-icon img{width:20px;height:20px}.contact-method .method-details .method-title{font-size:.9rem;margin-bottom:3px}.contact-method .method-details .method-value{font-size:.8rem}.contact-form{padding:10px;margin-top:8px;margin-bottom:12px}.form-title{font-size:.95rem}.form-group,.form-title{margin-bottom:10px}.form-group label{margin-bottom:3px;font-size:.85rem}.form-group input,.form-group textarea{padding:4px;font-size:.85rem}.form-group textarea{min-height:80px}.form-actions{gap:8px}.form-actions button{min-width:70px;font-size:.85rem}.social-links{margin-top:12px;padding-bottom:12px}.social-links h3{font-size:.95rem;margin-bottom:8px}.social-links .social-buttons{gap:8px}.social-links .social-button{padding:4px 8px}.social-links .social-button img{width:14px;height:14px;margin-right:6px}.social-links .social-button span{font-size:.75rem}}.skills-container{padding:12px;display:flex;flex-direction:column;height:100%;overflow-y:auto;background-color:silver;box-sizing:border-box}.skills-header{margin-bottom:12px}.skills-header h2{color:navy;font-size:1.2rem;margin-bottom:8px;font-weight:700}.skills-header p{margin-bottom:8px;line-height:1.4;font-size:.9rem}.skills-categories{display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch;padding-right:4px}.skills-category{background-color:#fff;border:1px solid gray;padding:12px;box-shadow:inset 1px 1px 0 #fff}.category-title{font-weight:700;color:navy;font-size:1rem;margin-bottom:12px;background-color:silver;padding:5px 10px;border-color:#fff gray gray #fff;border-style:solid;border-width:1px}.skills-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:8px}.skill-item{background-color:silver;padding:6px 10px;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;font-size:.9rem;text-align:center}.skill-item:hover{background-color:hsl(0,0%,70.2941176471%)}.skill-item:active{border-color:gray #fff #fff gray}@media(max-width:480px){.skills-container{padding:8px}.skills-header{margin-bottom:8px}.skills-header h2{font-size:1.1rem;margin-bottom:6px}.skills-header p{font-size:.8rem;margin-bottom:6px}.skills-categories{gap:8px;padding-bottom:10px}.skills-category{padding:8px}.category-title{font-size:.9rem;margin-bottom:8px;padding:4px 8px}.skills-list{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px}.skill-item{padding:5px 8px;font-size:.8rem}}@media(max-height:600px){.skills-header{margin-bottom:8px}.skills-header h2{font-size:1rem;margin-bottom:4px}.skills-header p{display:none}.skills-categories{gap:8px}.skills-category{padding:8px}.category-title{margin-bottom:6px;padding:3px 6px}.skills-list{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:5px}.skill-item{padding:4px 6px;font-size:.75rem}}.projects-container{padding:12px;display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;box-sizing:border-box}.projects-header{margin-bottom:12px}.projects-header h2{color:navy;font-size:1.2rem;margin-bottom:8px}.projects-note{background-color:#ffc;border:1px solid gray;padding:8px;margin-bottom:12px;font-size:.8rem;box-shadow:inset 1px 1px 0 #fff}.note-text{margin:0;line-height:1.3}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;padding:12px;overflow-y:auto;flex:1;background-color:#fff;border:1px solid gray;-webkit-overflow-scrolling:touch}.project-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:10px;border:1px solid rgba(0,0,0,0);transition:all .1s ease}.project-item:hover{background-color:rgba(0,0,128,.1);border:1px dotted navy}.project-item:active{background-color:rgba(0,0,128,.3)}.project-icon{margin-bottom:8px}.project-icon img{width:32px;height:32px;object-fit:contain}.project-title{text-align:center;font-size:.8rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-viewer-container{display:flex;flex-direction:column;flex:1}.project-viewer-header{padding:5px;margin-bottom:5px}.address-bar{display:flex;align-items:center;background-color:#fff;border:1px solid gray;padding:3px 5px}.address-input,.address-label{margin-right:5px;font-size:.8rem}.address-input{flex:1;background-color:#fff;border-color:gray #fff #fff gray;border-style:solid;border-width:1px;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.go-button{padding:2px 8px;font-size:.8rem}.project-viewer-content{flex:1;border:1px solid gray;background-color:#fff}.project-iframe{width:100%;height:100%;border:none}.project-details{display:flex;flex-direction:column;padding:10px;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.project-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.project-details-header h3{color:navy;font-size:1.1rem;margin:0}.project-actions{display:flex;gap:10px}.back-button,.visit-button{font-size:.8rem;padding:3px 10px}.project-details-content{flex:1}.detail-section{margin-bottom:15px}.detail-section .section-title{background-color:silver;padding:3px 8px;font-weight:700;margin-bottom:8px;border-color:#fff gray gray #fff;border-style:solid;border-width:1px}.detail-section p{margin:0 0 8px;line-height:1.4;font-size:.9rem}.project-url a{color:navy;text-decoration:none}.project-url a:hover{text-decoration:underline}@media(max-width:480px){.projects-container{padding:8px}.projects-header{margin-bottom:8px}.projects-header h2{font-size:1.1rem;margin-bottom:6px}.projects-note{padding:6px;margin-bottom:8px;font-size:.75rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;padding:8px}.project-item{padding:6px}.project-icon{margin-bottom:6px}.project-icon img{width:28px;height:28px}.project-title{font-size:.75rem}.project-details{padding:8px}}.portfolio-container{height:100%;overflow-y:auto;background-color:silver;box-sizing:border-box}.portfolio-content{font-family:"MS Sans Serif",Tahoma,Arial,sans-serif;padding:12px;display:flex;flex-direction:column;flex:1;-webkit-overflow-scrolling:touch;box-sizing:border-box}.portfolio-intro{margin-bottom:15px;line-height:1.4}.portfolio-stats{display:flex;justify-content:space-around;flex-wrap:wrap;margin:15px 0;background-color:#fff;border:1px solid gray;padding:12px}.stat-item{text-align:center;padding:8px;min-width:80px}.stat-number{font-size:1.5rem;font-weight:700;color:navy}.stat-label{font-size:.8rem;margin-top:5px}.portfolio-note{font-style:italic;background-color:rgb(217.5,217.5,217.5);padding:10px;border:1px solid gray;margin:15px 0}.contributions-image{margin:15px 0}.contributions-image .image-container{background-color:#fff;border:1px solid gray;padding:10px;margin:10px 0;box-shadow:inset 1px 1px 0 #fff}.contributions-image .gitlab-contributions{width:100%;height:auto;display:block}.contributions-image .image-caption{font-size:.85rem;font-style:italic;text-align:center;margin-top:8px;color:#555}.portfolio-projects{display:flex;flex-direction:column;gap:15px;padding-bottom:20px}.portfolio-project{background-color:#fff;border:1px solid gray;padding:12px}.portfolio-project h3{color:navy;font-size:1rem;margin:0 0 10px;border-bottom:1px solid #fff;padding-bottom:5px}.portfolio-project p{margin-bottom:10px;font-size:.9rem}.portfolio-project ul{margin:10px 0 10px 20px;padding:0}.portfolio-project ul li{margin-bottom:5px;font-size:.85rem}.project-link{display:inline-block;background-color:silver;color:#000;text-decoration:none;padding:5px 10px;font-size:.8rem;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;box-shadow:1px 1px 0 #000}.project-link:hover{background-color:hsl(0,0%,70.2941176471%)}.project-link:active{border-color:gray #fff #fff gray;box-shadow:inset 1px 1px 0 #000}.technology-tags{display:flex;flex-wrap:wrap;gap:8px;padding:5px}.technology-tag{display:inline-block;background-color:navy;color:#fff;font-size:.75rem;padding:3px 8px;border-radius:2px;border:1px solid gray}@media(max-width:480px){.portfolio-content{padding:8px}.portfolio-intro{margin-bottom:12px;font-size:.9rem}.portfolio-stats{margin:12px 0;padding:8px}.stat-item{padding:6px;min-width:70px}.stat-number{font-size:1.3rem}.stat-label{font-size:.75rem;margin-top:3px}.portfolio-note{padding:8px;margin:12px 0;font-size:.85rem}.contributions-image{margin:12px 0}.contributions-image .image-container{padding:8px;margin:8px 0}.contributions-image .image-caption{font-size:.8rem;margin-top:6px}.portfolio-projects{gap:12px;padding-bottom:15px}.portfolio-project{padding:10px}.portfolio-project h3{font-size:.95rem;margin:0 0 8px;padding-bottom:4px}.portfolio-project p{margin-bottom:8px;font-size:.85rem}.portfolio-project ul{margin:8px 0 8px 15px}.portfolio-project ul li{margin-bottom:4px;font-size:.8rem}.project-link{padding:4px 8px;font-size:.75rem}.technology-tags{gap:6px;padding:4px}.technology-tag{font-size:.7rem;padding:2px 6px}}.snake-game-container{flex-direction:column;padding:10px;border-color:#dfdfdf gray gray #dfdfdf;border-style:solid;border-width:2px;box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #000;height:100%;overflow:hidden;box-sizing:border-box}.game-header,.snake-game-container{display:flex;align-items:center;background-color:silver;width:100%}.game-header{justify-content:space-between;margin-bottom:10px;padding:5px;border-color:#dfdfdf gray gray #dfdfdf;border-style:solid;border-width:1px}.level-display,.score-display{font-family:"MS Sans Serif",Arial,sans-serif;font-size:14px;color:#000}.level-display{font-weight:700}.game-button{min-width:80px;padding:4px 8px;margin:0 5px}.game-canvas-container{display:flex;justify-content:center;align-items:center;margin:10px 0;width:100%;max-width:300px;box-sizing:border-box}.game-canvas{border-color:#000 gray gray #000;border-style:solid;border-width:2px;box-shadow:inset 1px 1px 0 #000,inset -1px -1px 0 #dfdfdf;max-width:100%;box-sizing:border-box}.touch-controls{display:none;margin-top:15px;width:100%;max-width:300px}.touch-controls-row{display:flex;justify-content:space-between;margin-bottom:10px}.touch-button{width:60px;height:60px;font-size:24px;display:flex;justify-content:center;align-items:center;background-color:silver;border-color:#dfdfdf gray gray #dfdfdf;border-style:solid;border-width:2px;box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #000;cursor:pointer;user-select:none}.touch-button:active{border-color:#000 gray gray #000;border-style:solid;border-width:2px;box-shadow:inset 1px 1px 0 #000,inset -1px -1px 0 #dfdfdf}.game-instructions{margin-top:15px;font-family:"MS Sans Serif",Arial,sans-serif;font-size:12px;color:#000;text-align:center}.gameboy-controls{display:none;margin-top:15px;width:100%;max-width:300px;background-color:#8b8b8b;border-radius:10px;padding:15px;box-shadow:inset 1px 1px 3px rgba(0,0,0,.5),inset -1px -1px 3px hsla(0,0%,100%,.5)}.dpad-container{position:relative;margin:0 auto}.dpad,.dpad-container{width:120px;height:120px}.dpad{position:absolute;background-color:#444;border-radius:60px}.dpad-button{position:absolute;width:40px;height:40px;background-color:#222;display:flex;justify-content:center;align-items:center;color:#aaa;font-weight:700;user-select:none}.dpad-up{top:0;left:40px;border-radius:5px 5px 0 0}.dpad-right{top:40px;right:0;border-radius:0 5px 5px 0}.dpad-down{bottom:0;left:40px;border-radius:0 0 5px 5px}.dpad-left{top:40px;left:0;border-radius:5px 0 0 5px}.dpad-center{top:40px;left:40px;width:40px;height:40px;background-color:#333;border-radius:5px}.dpad-button:active{background-color:#000;color:#fff}@media(max-width:768px){.gameboy-controls{display:block}.game-instructions p:first-child{display:none}}body,html{background-color:teal;color:#000;font-family:"MS Sans Serif",Tahoma,Arial,sans-serif;overflow:hidden;height:100%;margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;touch-action:manipulation;position:fixed;width:100%}@supports(-webkit-touch-callout:none){body,html{height:-webkit-fill-available;min-height:-webkit-fill-available}}.about-me-content::-webkit-scrollbar,.contact-container::-webkit-scrollbar,.experience-container::-webkit-scrollbar,.media-player-container::-webkit-scrollbar,.portfolio-container::-webkit-scrollbar,.portfolio-content::-webkit-scrollbar,.projects-container::-webkit-scrollbar,.skills-categories::-webkit-scrollbar,.skills-container::-webkit-scrollbar,.win98-window-content::-webkit-scrollbar{width:16px;background-color:silver}.about-me-content::-webkit-scrollbar-thumb,.contact-container::-webkit-scrollbar-thumb,.experience-container::-webkit-scrollbar-thumb,.media-player-container::-webkit-scrollbar-thumb,.portfolio-container::-webkit-scrollbar-thumb,.portfolio-content::-webkit-scrollbar-thumb,.projects-container::-webkit-scrollbar-thumb,.skills-categories::-webkit-scrollbar-thumb,.skills-container::-webkit-scrollbar-thumb,.win98-window-content::-webkit-scrollbar-thumb{background-color:silver;border:1px solid #000;box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #7f7f7f}.about-me-content::-webkit-scrollbar-track,.contact-container::-webkit-scrollbar-track,.experience-container::-webkit-scrollbar-track,.media-player-container::-webkit-scrollbar-track,.portfolio-container::-webkit-scrollbar-track,.portfolio-content::-webkit-scrollbar-track,.projects-container::-webkit-scrollbar-track,.skills-categories::-webkit-scrollbar-track,.skills-container::-webkit-scrollbar-track,.win98-window-content::-webkit-scrollbar-track{background-color:silver;box-shadow:inset 1px 1px 0 #7f7f7f,inset -1px -1px 0 #fff}button,input,select,textarea{-webkit-appearance:none;border-radius:0;font-family:"MS Sans Serif",Tahoma,Arial,sans-serif;touch-action:manipulation}.desktop{width:100%;height:calc(100vh - 40px);height:calc(var(--vh, 1vh)*100 - 40px);position:relative;overflow:hidden;background-color:teal;background-image:url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.05' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 5v1H5V0zm1 5v1H5v-1h1z'/%3E%3C/g%3E%3C/svg%3E");box-sizing:border-box;padding-bottom:40px;-webkit-overflow-scrolling:touch}@media(max-width:480px){.desktop{height:calc(100vh - 30px);height:calc(var(--vh, 1vh)*100 - 30px);padding-bottom:30px}}@supports(-webkit-touch-callout:none){.desktop{height:calc(100% - 40px)}@media(max-width:480px){.desktop{height:calc(100% - 30px)}}}.win98-desktop{width:100%;height:100%;position:relative;overflow:hidden}.win98-button{background-color:silver;padding:.25rem 1rem;position:relative;user-select:none;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;box-shadow:1px 1px 0 #000;cursor:pointer;display:inline-block;transition:transform .1s ease}@media(max-width:480px){.win98-button{padding:.2rem .8rem;font-size:.8rem}}.win98-button:active{border-color:gray #fff #fff gray;box-shadow:none;transform:translateY(1px)}.win98-window{background-color:silver;position:absolute;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;box-shadow:1px 1px 0 #000;display:flex;flex-direction:column;z-index:10;overflow:hidden;max-height:calc(100vh - 60px);max-height:calc(var(--vh, 1vh)*100 - 60px);transition:all .2s ease-out;-webkit-transform:translateZ(0);transform:translateZ(0);backface-visibility:hidden;perspective:1000;will-change:transform,opacity}.win98-window.ios-device{position:fixed!important;-webkit-overflow-scrolling:touch;transform:translateZ(0);-webkit-transform:translateZ(0)}.win98-window.ios-device .win98-title-bar .controls button{min-width:30px!important;min-height:30px!important;width:30px!important;height:30px!important;font-size:16px!important;padding:0!important;margin:0 2px!important}.win98-window.ios-device .win98-window-content{-webkit-overflow-scrolling:touch;overflow-y:auto;-webkit-transform:translateZ(0);transform:translateZ(0)}.win98-window.maximized{border-width:2px 0 0}@media(max-width:480px){.win98-window.maximized{width:100%!important;height:calc(100vh - 30px)!important;height:calc(var(--vh, 1vh)*100 - 30px)!important;left:0!important;top:0!important;max-height:none!important;border-radius:0!important}@supports(-webkit-touch-callout:none){.win98-window.maximized{height:calc(100% - 30px)!important}}}@media(min-width:481px)and (max-width:768px){.win98-window{width:90%!important;max-width:500px;left:5%!important;max-height:calc(100vh - 50px);max-height:calc(var(--vh, 1vh)*100 - 50px)}@supports(-webkit-touch-callout:none){.win98-window{max-height:calc(100% - 50px)}}}@media(max-width:480px){.win98-window{width:100%!important;height:calc(100vh - 30px)!important;height:calc(var(--vh, 1vh)*100 - 30px)!important;left:0!important;top:0!important;max-height:none!important;border-radius:0;position:fixed}@supports(-webkit-touch-callout:none){.win98-window{height:calc(100% - 30px)!important;max-height:none!important}}}.win98-window-content{padding:10px;background-color:silver;overflow:auto;flex:1;display:flex;flex-direction:column;height:calc(100% - 20px);-webkit-overflow-scrolling:touch;-webkit-transform:translateZ(0);transform:translateZ(0)}@media(max-width:480px){.win98-window-content{padding:8px;height:calc(100% - 10px)}}.win98-window-content h2{font-size:1.2rem;font-weight:700;margin-bottom:1rem}@media(max-width:480px){.win98-window-content h2{font-size:1rem;margin-bottom:.8rem}}.win98-window-content p{margin-bottom:.5rem;line-height:1.4}@media(max-width:480px){.win98-window-content p{font-size:.9rem;line-height:1.3}}.win98-window-content .p-4{padding:1rem}@media(max-width:480px){.win98-window-content .p-4{padding:.8rem}}.win98-window-content .mb-2{margin-bottom:.5rem}.win98-window-content .mb-4{margin-bottom:1rem}@media(max-width:480px){.win98-window-content .mb-4{margin-bottom:.8rem}}.win98-window-content .text-xl{font-size:1.25rem}@media(max-width:480px){.win98-window-content .text-xl{font-size:1.1rem}}.win98-window-content .font-bold{font-weight:700}.win98-title-bar{background-color:navy;color:#fff;padding:.25rem .5rem;display:flex;justify-content:space-between;align-items:center;user-select:none;touch-action:none;-webkit-transform:translateZ(0);transform:translateZ(0)}.win98-title-bar .title{font-weight:700;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 60px)}@media(max-width:480px){.win98-title-bar .title{font-size:.75rem}}.win98-title-bar .controls{display:flex;gap:2px}.win98-title-bar .controls button{width:16px;height:14px;background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;display:flex;align-items:center;justify-content:center;font-size:9px;padding:0;cursor:pointer;transition:background-color .1s ease;min-width:unset;min-height:unset;touch-action:manipulation}@media(max-width:480px){.win98-title-bar .controls button{width:22px;height:22px;font-size:12px}}.win98-title-bar .controls button:hover{background-color:hsl(0,0%,70.2941176471%)}.win98-inset,.win98-title-bar .controls button:active{border-color:gray #fff #fff gray}.win98-inset{border-style:solid;border-width:2px}@keyframes slideUp{0%{transform:translateY(40px)}to{transform:translateY(0)}}@keyframes startMenuOpen{0%{opacity:0;transform:scaleY(.9);transform-origin:bottom}to{opacity:1;transform:scaleY(1);transform-origin:bottom}}@supports(-webkit-touch-callout:none){.start-menu{transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000;max-height:calc(var(--vh, 1vh)*60)!important;bottom:calc(30px + env(safe-area-inset-bottom, 0))!important}}.webcam-container{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:10px;box-sizing:border-box}.webcam-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.webcam-header h2{color:navy;font-size:1.1rem;margin:0}.webcam-view{flex:1;display:flex;flex-direction:column;background-color:#000;border:1px solid gray;position:relative;overflow:hidden}.webcam-video{width:100%;height:100%;object-fit:contain;background-color:#000}.webcam-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;padding:10px;background-color:silver;border:1px solid gray}.webcam-button{min-width:80px;font-size:.8rem;display:flex;align-items:center;justify-content:center}.webcam-button img{width:16px;height:16px;margin-right:5px}.filter-controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;width:100%}.filter-button{padding:3px 8px;font-size:.75rem}.filter-button.active{background-color:rgb(166.5,166.5,166.5);border-color:gray #fff #fff gray}.filter-preview{position:absolute;top:10px;right:10px;background-color:rgba(0,0,0,.7);color:#fff;padding:5px 10px;border-radius:3px;font-size:.8rem;z-index:10}.webcam-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px;text-align:center}.webcam-error .error-icon{margin-bottom:15px}.webcam-error .error-icon img{width:48px;height:48px}.webcam-error .error-message{color:#c00;margin-bottom:15px}.snapshot-container{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);z-index:20;flex-direction:column;align-items:center;justify-content:center;padding:20px}.snapshot-container.active{display:flex}.snapshot-container .snapshot-image{max-width:90%;max-height:70%;border:3px solid #fff}.snapshot-container .snapshot-actions{display:flex;gap:10px;margin-top:15px}@media(max-width:768px){.webcam-controls{flex-direction:column;gap:5px}.webcam-controls .webcam-button{width:100%}.filter-controls{justify-content:center}}.experience-container{padding:15px;height:100%;overflow-y:auto;font-family:"MS Sans Serif",sans-serif;color:#000;background-color:silver}.experience-header{margin-bottom:20px}.experience-header h2{font-size:18px;margin-bottom:8px;font-weight:700;color:navy}.experience-header p{font-size:14px;margin-bottom:15px;line-height:1.4}.experience-timeline{display:flex;flex-direction:column;gap:25px}.experience-item{background-color:#ececec;border-color:#fff #7f7f7f #7f7f7f #fff;border-style:solid;border-width:2px;padding:12px;border-radius:0;position:relative}.experience-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-color:#dfdfdf #000 #000 #dfdfdf;border-style:solid;border-width:1px;pointer-events:none}.experience-title{margin-bottom:12px;border-bottom:1px solid #7f7f7f;padding-bottom:8px}.experience-title h3{font-size:16px;font-weight:700;margin-bottom:5px;color:navy}.experience-title .company{display:block;font-weight:700;margin-bottom:4px}.experience-title .period{display:block;font-style:italic;font-size:12px;color:#555}.experience-details{font-size:14px}.experience-details .experience-list{list-style-type:disc;padding-left:20px}.experience-details .experience-list li{margin-bottom:8px;line-height:1.4}.experience-details .experience-list li ul{margin-top:5px;margin-left:15px;list-style-type:circle}.experience-details .experience-list li ul li{margin-bottom:5px}@media(max-width:767px){.experience-container,.experience-item{padding:10px}.experience-title h3{font-size:15px}.experience-details{font-size:13px}}.tutorial-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease;padding:env(safe-area-inset-top) 8px env(safe-area-inset-bottom)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tutorial-popup{background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;box-shadow:1px 1px 0 #000;width:450px;max-width:90%;max-height:calc(var(--vh, 1vh)*85);display:flex;flex-direction:column;animation:popIn .3s ease;overflow:hidden}@media(max-width:768px){.tutorial-popup{width:85%}}@media(max-width:480px){.tutorial-popup{width:92%;max-height:calc(var(--vh, 1vh)*75)}}@keyframes popIn{0%{transform:scale(.8)}to{transform:scale(1)}}.tutorial-popup .win98-title-bar{background-color:navy;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:3px 5px;font-weight:700;font-size:14px}.tutorial-popup .win98-title-bar .title{display:flex;align-items:center}.tutorial-popup .win98-title-bar .controls{display:flex}.tutorial-popup .win98-title-bar .controls .close-btn{background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:2px;width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-size:16px;line-height:1;padding:0;margin:0;cursor:pointer;color:#000}.tutorial-popup .win98-title-bar .controls .close-btn:active{border-color:gray #fff #fff gray}.tutorial-popup-content{padding:15px;display:flex;overflow-y:auto;flex:1;min-height:0}.tutorial-popup-content .tutorial-icon{margin-right:15px;flex-shrink:0}.tutorial-popup-content .tutorial-message h3{font-size:16px;font-weight:700;margin-top:0;margin-bottom:10px;color:navy}.tutorial-popup-content .tutorial-message ul{margin:0;padding-left:20px}.tutorial-popup-content .tutorial-message ul li{margin-bottom:8px;line-height:1.4}.tutorial-popup-content .tutorial-message .tutorial-note{margin-top:15px;font-style:italic}.tutorial-popup-content .tutorial-message .fake-close-btn,.tutorial-popup-content .tutorial-message .fake-minimize-btn{display:inline-flex;justify-content:center;align-items:center;width:16px;height:16px;background-color:silver;border-color:#fff gray gray #fff;border-style:solid;border-width:1px;font-size:12px;line-height:1;vertical-align:middle;margin:0 2px}.tutorial-popup-footer{padding:10px 15px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid gray;flex-shrink:0}@media(max-width:480px){.tutorial-popup-footer{padding:8px 12px}}.tutorial-popup-footer .dont-show-again{display:flex;align-items:center;font-size:12px;cursor:pointer}.tutorial-popup-footer .dont-show-again input[type=checkbox]{margin-right:5px;appearance:none;width:13px;height:13px;background-color:#fff;border:1px solid gray;position:relative;cursor:pointer}.tutorial-popup-footer .dont-show-again input[type=checkbox]:checked:after{content:"✓";font-size:11px;position:absolute;top:-1px;left:1px;color:#000}.tutorial-popup-footer .win98-button{min-width:80px}