@import"https://api.fontshare.com/v2/css?f[]=switzer@400,600,700&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes ball-pulse-sync{33%{transform:translateY(10px)}66%{transform:translateY(-10px)}to{transform:translateY(0)}}.ball-pulse-sync>div:nth-child(0){animation:ball-pulse-sync .6s -.21s infinite ease-in-out}.ball-pulse-sync>div:nth-child(1){animation:ball-pulse-sync .6s -.14s infinite ease-in-out}.ball-pulse-sync>div:nth-child(2){animation:ball-pulse-sync .6s -.07s infinite ease-in-out}.ball-pulse-sync>div:nth-child(3){animation:ball-pulse-sync .6s 0s infinite ease-in-out}.ball-pulse-sync>div{background-color:#fff;width:15px;height:15px;border-radius:100%;margin:2px;animation-fill-mode:both;display:inline-block}:root{--background-color: #f5f5f7;--text-color: #1d1d1f;--container-bg: #ffffff;--container-border: #e5e5e5;--card-bg: #f5f5f7;--card-border: #e5e5e5;--subtle-text-color: #666669;--headshot-border: #e5e5e5;--shadow-color: rgba(0, 0, 0, .08);--accent-color: red;--container-shadow: 0 8px 32px rgba(0, 0, 0, .08)}[data-theme=dark]{--background-color: #2a2a2a;--text-color: #e1e1e1;--container-bg: #1e1e1e;--container-border: #333333;--card-bg: #2a2a2a;--card-border: #333333;--subtle-text-color: #a0a0a0;--headshot-border: #333333;--shadow-color: rgba(225, 225, 225, .05);--accent-color: red;--container-shadow: 0 8px 32px rgba(0, 0, 0, .32)}body{margin:0;font-family:Switzer,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-color);transition:background-color .3s,color .3s}.App{padding:2rem;display:grid;place-items:center;min-height:100vh;box-sizing:border-box}.App .ball-pulse-sync>div{background-color:var(--text-color)}.main-container{background-color:var(--container-bg);border-radius:18px;padding:3rem;box-shadow:var(--container-shadow);border:1.5px solid var(--container-border);width:100%;max-width:1000px;box-sizing:border-box;transition:background-color .3s,border-color .3s,box-shadow .3s}header{display:flex;justify-content:space-between;align-items:flex-start}.header-title h1{font-size:2.5rem;margin:0;display:flex;align-items:center;gap:.75rem}.name-section{display:flex;flex-direction:row;align-items:center;gap:20px}.headshot{width:150px;aspect-ratio:1026 1050;animation:morph 5s ease-in-out infinite;background-repeat:no-repeat;background-size:cover;border:3px solid var(--headshot-border);border-radius:60% 40% 30% 70%/60% 30% 70% 40%;position:relative;transition:all 1s ease-in-out}@keyframes morph{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}25%{border-radius:40% 60% 30%/40% 30% 60% 70%}50%{border-radius:30% 60% 70% 40%/50% 60% 30%}75%{border-radius:70% 30% 60% 40%/30% 60% 40% 70%}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}}.header-nav{display:flex;gap:3rem}.nav-section{display:flex;flex-direction:column;gap:.5rem}.nav-section a,.social-links a{text-decoration:none;color:var(--text-color);font-weight:500;font-size:.95rem}.nav-section a:hover,.social-links a:hover{text-decoration:underline}.intro-text{max-width:450px;font-size:1.25rem;line-height:1.6;margin:0}.status-bar{display:flex;justify-content:flex-end;align-items:center;margin-top:1rem;font-size:.9rem;color:var(--subtle-text-color)}.card-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1rem}.project-gallery{grid-template-columns:repeat(3,1fr);gap:1rem}.card{background:var(--card-bg);border:1.5px solid var(--card-border);border-radius:18px;padding:1.5rem;min-height:100px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out,background-color .3s,border-color .3s}.card:hover{transform:translateY(-5px);box-shadow:0 12px 24px var(--shadow-color)}.card h3{margin-top:0;font-size:1.2rem}.card p{color:var(--subtle-text-color);font-size:.95rem}.card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--subtle-text-color);margin-top:1rem}.card-footer-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:1.5rem}.card-meta-left{color:var(--subtle-text-color);font-size:.95rem;font-weight:500}.card-meta-link{color:inherit;text-decoration:none}.card-meta-link:hover{text-decoration:underline}.card-meta-right{color:var(--subtle-text-color);font-size:.95rem;font-weight:500;text-align:right}.portfolio-container{max-width:900px;margin:40px auto;padding:32px 24px;background:var(--container-bg);border-radius:18px;box-shadow:0 4px 24px #00000012;font-family:Inter,Arial,sans-serif}.profile-header{display:flex;align-items:center;gap:28px;margin-bottom:36px}.profile-avatar{width:110px;height:110px;border-radius:50%;object-fit:cover;border:4px solid var(--container-border);box-shadow:0 2px 8px #0000000f}.subtitle{color:var(--subtle-text-color);font-size:1.1rem;margin-top:6px}h2{font-size:1.4rem;margin-bottom:18px;color:var(--text-color)}.education-item,.experience-item,.project-item{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--container-border)}.education-item:last-child,.experience-item:last-child,.project-item:last-child{border-bottom:none}.education-details,.education-degree,.experience-meta,.experience-skills,.experience-description,.project-technologies{color:var(--subtle-text-color);font-size:.98rem;margin-top:2px}.education-meta,.experience-meta{min-width:180px;text-align:right;color:var(--subtle-text-color);font-size:.97rem}.project-link{color:var(--text-color);text-decoration:underline;font-weight:500;margin-left:24px;align-self:center}@media (max-width: 700px){.portfolio-container{padding:12px 2vw}.profile-header{flex-direction:column;align-items:flex-start;gap:14px}.education-meta,.experience-meta{min-width:unset;text-align:left;margin-top:6px}.education-item,.experience-item,.project-item{flex-direction:column;align-items:flex-start}.project-link{margin-left:0;margin-top:8px}}.section-title{margin:1rem 0;font-size:.875rem;font-weight:600;color:var(--subtle-text-color);text-transform:uppercase;letter-spacing:.5px}main>.section-title:first-of-type{margin-top:1rem}.section-divider{height:1px;background-color:var(--container-border);margin:2rem 0}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.card-header h3{font-size:20px;display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.card-header a .github-icon{color:var(--subtle-text-color);transition:color .2s ease-in-out}.card-header a:hover .github-icon{color:var(--text-color)}.card-header a,.external-link-icon{text-decoration:none!important;cursor:pointer}.card-subtitle{color:var(--subtle-text-color);font-size:.9rem;margin:.25rem 0 0;font-weight:400}.main-footer{margin-top:3rem;padding-top:1.5rem;border-top:1.5px solid var(--container-border);display:flex;justify-content:space-between;align-items:center;color:var(--subtle-text-color);font-size:.9rem}.fade-in{animation:fadeInAnimation .5s ease-in}.fade-out{animation:fadeOutAnimation .5s ease-out forwards}@keyframes fadeInAnimation{0%{opacity:0}to{opacity:1}}@keyframes fadeOutAnimation{0%{opacity:1}to{opacity:0}}@media (max-width: 840px){.App{padding:1rem}.main-container{padding:1.5rem}header{flex-direction:column;align-items:flex-start;gap:1.5rem}.header-title h1{font-size:2rem}.card-gallery,.project-gallery{grid-template-columns:1fr}.project-gallery{gap:2rem}}@media (max-width: 480px){.name-section{flex-direction:column;align-items:flex-start}.headshot{width:100px}}.theme-toggle-button{position:fixed;bottom:2rem;right:2rem;background-color:var(--container-bg);color:var(--text-color);border:1.5px solid var(--container-border);border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #0000001a;transition:all .3s ease-in-out;z-index:1000}.theme-toggle-button:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0000001f}.theme-toggle-button svg{width:24px;height:24px}.games-gallery{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.game-card h3{margin-bottom:.75rem;font-size:1.2rem}.game-info{display:flex;flex-direction:column;gap:.25rem;color:var(--subtle-text-color);font-size:1rem}.game-info strong{color:var(--text-color);font-weight:600}.live-indicator{display:flex;align-items:center;gap:.3em;font-size:1rem;font-weight:600;color:var(--accent-color)}.live-dot{width:.7em;height:.7em;border-radius:50%;background:var(--accent-color);display:inline-block;animation:blink 1s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.external-link-icon{margin-left:.5em;color:var(--subtle-text-color);transition:color .2s}.card-header a:hover .external-link-icon{color:var(--text-color)}.spotify-title{display:flex;align-items:center;gap:.75rem}.spotify-song-card{display:flex;align-items:center;justify-content:space-between;background:var(--card-bg);border:1.5px solid var(--card-border);border-radius:18px;padding:1.5rem 2rem;margin-top:1rem;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out,background-color .3s,border-color .3s}.spotify-song-card:hover{transform:translateY(-5px);box-shadow:0 4px 16px var(--shadow-color)}.spotify-song-info{display:flex;flex-direction:column;gap:.4rem}.spotify-song-title{font-size:1.25rem;font-weight:700;color:var(--text-color)}.spotify-song-artists{font-size:1.05rem;color:var(--subtle-text-color);font-weight:500}.spotify-song-album{font-size:1rem;color:var(--subtle-text-color)}.spotify-album-art{margin-left:2.5rem;display:flex;align-items:center}.spotify-album-art img{width:120px;height:120px;border-radius:12px;box-shadow:0 2px 8px var(--shadow-color);object-fit:cover;background:var(--container-bg);transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.spotify-link{display:block;text-decoration:none;height:120px;transition:transform .2s ease-in-out}.spotify-link:hover img{box-shadow:0 4px 16px var(--shadow-color)}.spotify-album-placeholder{width:116.67px;height:116.67px;border-radius:12px;background:var(--card-bg);border:2px dashed var(--card-border);display:flex;align-items:center;justify-content:center;color:var(--subtle-text-color)}.spotify-song-card.error{border-color:#ff6b6b;background:#ff6b6b0d}.spotify-song-card.error .spotify-song-title{color:#ff6b6b}@media (max-width: 600px){.spotify-link{height:76.67px;width:76.67px}.spotify-song-card{flex-direction:column;align-items:flex-start;padding:1rem}.spotify-album-art{margin-left:0;margin-top:1rem}.spotify-album-art img,.spotify-album-placeholder{width:76.67px;height:76.67px}}.spotify-play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2}
