:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scrollbar-gutter:stable}a{font-weight:500;color:#ff8c42;text-decoration:inherit}a:hover{color:#ff7a2e}body{margin:0;min-width:320px;min-height:100vh;background-color:#fff;overflow-x:auto;overflow-y:auto;scrollbar-gutter:stable}*{box-sizing:border-box}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:#f9f9f9;cursor:pointer;transition:border-color .25s}button:hover{border-color:#ff8c42}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:1rem 0;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:none;scrollbar-gutter:stable}.header-content{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.logo{text-decoration:none;color:inherit;display:flex;align-items:center;gap:.5rem}.header-fhole{width:24px;height:auto;object-fit:contain;flex-shrink:0}.header-fhole-right{transform:scaleX(-1)}.logo h1{margin:0;font-size:2rem;font-weight:600;background:linear-gradient(135deg,#ff8c42,#ffa366);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family:Pixelify Sans,sans-serif}.nav-links{display:flex;gap:1.7rem;flex-wrap:wrap}.nav-links a{color:#213547;text-decoration:none;font-size:1.1rem;font-weight:500;transition:color .2s;padding:.5rem 0;font-family:Pixelify Sans,sans-serif}.nav-links a:hover,.nav-links a.active{color:#ff8c42}.header-contact{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.email-link{color:#213547;text-decoration:none;font-size:.9rem;transition:color .2s}.email-link:hover{color:#ff8c42}.external-links{display:flex;gap:1rem}.external-links a{color:#666;text-decoration:none;font-size:.9rem;transition:color .2s}.external-links a:hover{color:#ff8c42}@media(max-width:768px){.header-content{flex-direction:column;align-items:flex-start}.nav-links{width:100%}.header-contact{width:100%;flex-direction:column;align-items:flex-start}}.footer{background-color:#fff;border-top:1px solid #e0e0e0;padding:1rem 0;margin-top:auto;opacity:1;transform:translateY(0);transition:opacity .6s ease-out,transform .6s ease-out;min-height:fit-content;scrollbar-gutter:stable}.footer.home-footer-hidden{opacity:0;visibility:visible;transform:translateY(0)}.footer.home-footer-hidden{opacity:0}.footer.home-footer-hidden.animate-in{opacity:1;transform:translateY(0);animation:fadeInUp .6s ease-out var(--footer-delay, 1.7s) both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(0)}to{opacity:1;transform:translateY(0)}}.footer-content{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem}.footer-content a{color:#666;text-decoration:none;transition:color .2s;font-family:Pixelify Sans,sans-serif}.footer-content a:hover{color:#ff8c42}@media(max-width:768px){.footer-content{flex-direction:column;gap:1rem}}.home{max-width:1200px;margin:0 auto;padding:1rem;box-sizing:border-box;width:100%;display:flex;flex-direction:column;min-height:calc(100vh - var(--footer-height, 100px))}.home-header{text-align:center;padding:2.5rem 0 0;margin-bottom:0;opacity:0;transform:translateY(-20px);transition:opacity .6s ease-out,transform .6s ease-out}.home-header.animate-in{opacity:1;transform:translateY(0);animation-delay:0s}.home-header h1{margin:0;font-size:var(--header-font-size, 40px);font-weight:500;color:#000;font-family:Pixelify Sans,sans-serif}.hero{text-align:center;padding:4rem 0;margin-bottom:4rem}.hero-title{font-size:3.5rem;margin:0 0 1rem;background:linear-gradient(135deg,#ff8c42,#ffa366);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.5rem;color:#666;margin:0}.music-staff-section{padding:0;display:flex;justify-content:center;align-items:center;flex:1;box-sizing:border-box;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out .5s,transform .6s ease-out .5s}.music-staff-section.animate-in{opacity:1;transform:translateY(0)}.staff-container{position:relative;width:var(--staff-width, 1200px);margin:0 auto}.music-staff{width:var(--staff-width, 1200px);height:var(--staff-height, 200px);display:block}.staff-line{stroke-width:var(--stroke-width, 2px);vector-effect:non-scaling-stroke}.notes-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:flex-start;align-items:flex-start;gap:var(--note-gap, 156px);padding:0 var(--notes-right-padding, 80px) 0 var(--notes-left-padding, 192px);padding-top:0;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out 1s,transform .6s ease-out 1s}.notes-container.animate-in{opacity:1;transform:translateY(0)}.note-link{display:flex;flex-direction:column;align-items:center;text-decoration:none;transition:all .3s ease;cursor:pointer;position:relative}.note-link:nth-child(1){margin-top:calc(13.5 / 200 * 100% - var(--note-size, 63px) * .6 / 2);align-self:flex-start}.note-link:nth-child(2){margin-top:calc(11.6 / 200 * 100% - var(--note-size, 63px) * .6 / 2);align-self:flex-start}.note-link:nth-child(3){margin-top:calc(9.3 / 200 * 100% - var(--note-size, 63px) * .6 / 2);align-self:flex-start}.note-link:nth-child(4){margin-top:calc(13.5 / 200 * 100% - var(--note-size, 63px) * .6 / 2);align-self:flex-start}.note-link:nth-child(5){margin-top:calc(5.1 / 200 * 100% - var(--note-size, 63px) * .6 / 2);align-self:flex-start}.note-image-wrapper{position:relative;display:inline-block}.music-note{width:var(--note-size, 63px);height:calc(var(--note-size, 63px) * 1.4);object-fit:fill;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12));display:block;transition:filter .3s ease,transform .3s ease}.note-link:hover .music-note{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)) sepia(100%) saturate(500%) hue-rotate(350deg) brightness(1.1);transform:scale(1.1)}.staff-container:has(.note-link:nth-child(1):hover) .label-link:nth-child(1) .note-label{color:#ff8c42;transform:scale(1.1)}.staff-container:has(.note-link:nth-child(2):hover) .label-link:nth-child(2) .note-label{color:#ff8c42;transform:scale(1.1)}.staff-container:has(.note-link:nth-child(3):hover) .label-link:nth-child(3) .note-label{color:#ff8c42;transform:scale(1.1)}.staff-container:has(.note-link:nth-child(4):hover) .label-link:nth-child(4) .note-label{color:#ff8c42;transform:scale(1.1)}.staff-container:has(.note-link:nth-child(5):hover) .label-link:nth-child(5) .note-label{color:#ff8c42;transform:scale(1.1)}.staff-container:has(.label-link:nth-child(1):hover) .note-link:nth-child(1) .music-note{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)) sepia(100%) saturate(500%) hue-rotate(350deg) brightness(1.1);transform:scale(1.1)}.staff-container:has(.label-link:nth-child(2):hover) .note-link:nth-child(2) .music-note{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)) sepia(100%) saturate(500%) hue-rotate(350deg) brightness(1.1);transform:scale(1.1)}.staff-container:has(.label-link:nth-child(3):hover) .note-link:nth-child(3) .music-note{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)) sepia(100%) saturate(500%) hue-rotate(350deg) brightness(1.1);transform:scale(1.1)}.staff-container:has(.label-link:nth-child(4):hover) .note-link:nth-child(4) .music-note{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)) sepia(100%) saturate(500%) hue-rotate(350deg) brightness(1.1);transform:scale(1.1)}.staff-container:has(.label-link:nth-child(5):hover) .note-link:nth-child(5) .music-note{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)) sepia(100%) saturate(500%) hue-rotate(350deg) brightness(1.1);transform:scale(1.1)}.labels-container{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:flex-start;align-items:center;gap:var(--note-gap, 156px);padding:0 var(--labels-right-padding, 80px) 0 var(--labels-left-padding, 184px);padding-top:0;margin-top:12%;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out 1s,transform .6s ease-out 1s}.labels-container.animate-in{opacity:1;transform:translateY(0)}.label-link{text-decoration:none;display:flex;align-items:center;justify-content:center;width:var(--note-size, 63px)}.note-label{font-size:var(--label-font-size, 16px);font-weight:500;color:#333;font-family:Pixelify Sans,sans-serif;transition:color .3s ease,transform .3s ease;white-space:nowrap}.label-link:hover .note-label{color:#ff8c42;transform:scale(1.1)}@media(max-width:768px){.notes-container{gap:var(--note-gap, 156px);padding:0 var(--notes-right-padding, 80px) 0 var(--notes-left-padding, 192px)}.music-note{width:var(--note-size, 63px);height:calc(var(--note-size, 63px) * 1.4);object-fit:fill}.labels-container{gap:var(--note-gap, 156px);padding:0 var(--labels-right-padding, 80px) 0 var(--labels-left-padding, 184px)}.label-link{width:var(--note-size, 70px)}.note-label{font-size:var(--label-font-size, 16px)}}.about-me{margin-bottom:4rem}.about-me h2{font-size:2rem;margin-bottom:1.5rem;color:#213547}.about-content{background-color:#f9f9f9;padding:2rem;border-radius:12px;border:1px solid #e0e0e0}.about-content p{font-size:1.1rem;line-height:1.8;color:#333;margin:0 0 1rem}.about-content p:last-child{margin-bottom:0}.navigation-cards{margin-bottom:2rem}.navigation-cards h2{font-size:2rem;margin-bottom:2rem;color:#ffffffde}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.nav-card{background-color:#1a1a1a;border:1px solid #333;border-radius:12px;padding:2rem;text-decoration:none;color:inherit;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;text-align:center}.nav-card:hover{transform:translateY(-5px);border-color:#646cff;box-shadow:0 10px 30px #646cff33}.card-icon{font-size:3rem;margin-bottom:1rem}.nav-card h3{margin:0 0 .5rem;font-size:1.5rem;color:#ffffffde}.nav-card p{margin:0;color:#ffffffb3;font-size:.95rem;line-height:1.5}@media(max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}.cards-grid{grid-template-columns:1fr}}.page{margin:0 auto;padding:2rem 1rem 1rem;padding-bottom:0;min-height:calc(100vh - 100px - 2rem);overflow-x:visible;overflow-y:auto;scrollbar-gutter:stable;position:relative}.resume-page{padding-top:.5rem}.page h1{font-size:2.5rem;margin-bottom:2rem;background:linear-gradient(135deg,#ff8c42,#ffa366);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family:Pixelify Sans,sans-serif}.about-me-heading{text-align:center;font-size:2.5rem;margin-bottom:1rem;color:#000!important;background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:#000000!important;background-clip:unset!important;font-family:Pixelify Sans,sans-serif}.page-content{background-color:transparent;padding:1rem;border-radius:0;border:none;font-family:Electrolize,sans-serif;flex:0 0 var(--text-width, 800px);width:var(--text-width, 800px);min-width:var(--text-width, 800px);overflow:hidden;margin-left:var(--bracket-to-text-gap, 32px);margin-right:var(--text-to-barline-gap, 32px)}.music-page .page{padding-top:.5rem}.music-page .page-content{max-width:900px;width:100%;min-width:auto;margin-left:auto;margin-right:auto;padding-top:0;opacity:0;visibility:visible;scrollbar-gutter:stable}.music-page .page-content.animate-in-music-content{animation:fadeInMusic .7s ease forwards;animation-delay:.2s}.music-staff-image{opacity:0;visibility:visible;scrollbar-gutter:stable}.music-staff-image.animate-in-music-content{animation:fadeInMusic .7s ease forwards;animation-delay:.2s}.music-images-container{opacity:0;visibility:visible;scrollbar-gutter:stable}.music-images-container.animate-in-music-content{animation:fadeInMusic .7s ease forwards;animation-delay:.2s}@keyframes fadeInMusic{0%{opacity:0}to{opacity:1}}.page-content p{font-size:1rem;line-height:1.6;color:#333;margin:0 0 1rem;font-family:Electrolize,sans-serif;word-wrap:break-word;overflow-wrap:break-word}.emma-fruit-image{width:200px;height:auto;float:left;margin:0 1.5rem 1rem 0;shape-outside:margin-box;display:block}.music-images-container{float:right;margin:0 -20px 1rem 2rem;display:flex;flex-direction:column;gap:.5rem;shape-outside:margin-box}.music-image-wrapper{position:relative;width:250px;display:inline-block;vertical-align:top}.music-image{width:250px;height:auto;object-fit:contain;display:block;transition:opacity .3s ease}.music-image-text{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1rem;background-color:#fffffff2;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;box-sizing:border-box;pointer-events:none}.music-image-text p{margin:.5rem 0;text-align:center;color:#333;font-family:Electrolize,sans-serif;font-size:.9rem;line-height:1.4}.music-image-wrapper.hover-enabled:hover .music-image{opacity:.99}.music-image-wrapper.hover-enabled:hover .music-image-text{opacity:1;visibility:visible}.music-staff-image{width:1400px;height:25px;display:block;margin-bottom:.9rem;margin-top:0;margin-left:-73px}.music-staff-image .staff-line{stroke-width:1;stroke:#333}.page-content b,.page-content strong{font-weight:600;color:#000;font-size:1.05em;letter-spacing:.2px;text-shadow:.3px 0 0 currentColor,-.3px 0 0 currentColor}.page-content a{color:#ff8c42;text-decoration:none;transition:color .2s ease}.page-content a:hover{color:#ffa366;text-decoration:underline}.page-content p:last-child{margin-bottom:0}.about-me-container{display:flex;align-items:stretch;justify-content:center;gap:0;position:relative;padding:0 var(--barline-to-right-edge-margin, 20px) 0 var(--left-edge-to-bracket-margin, 20px);margin:0 auto;min-height:var(--about-container-height, 600px);height:auto;min-width:fit-content;width:100%}.music-brace-container{width:var(--bracket-width, 70px);max-width:var(--bracket-width, 70px);min-width:var(--bracket-width, 70px);align-self:stretch;display:flex;overflow:hidden;margin-left:0;margin-right:0;padding-right:0;flex:0 0 var(--bracket-width, 70px);position:absolute;left:var(--left-edge-to-bracket-margin, 20px)}.music-brace{width:var(--bracket-width, 70px);height:100%;min-width:var(--bracket-width, 70px);max-width:var(--bracket-width, 70px);object-fit:fill;object-position:center;transform:scaleX(-1);display:block;align-self:stretch;flex:0 0 auto;position:static;overflow:hidden}.projects-tabs-container{display:flex;justify-content:center;gap:1rem;margin-bottom:.25rem;padding-top:.2rem;position:sticky;top:0;background-color:#fff;z-index:5;padding-bottom:.1rem;opacity:0;visibility:visible;scrollbar-gutter:stable}.projects-tabs-container.animate-in{animation:fadeInProjects .7s ease forwards;animation-delay:0s}.projects-tab-button{padding:.3rem .7rem;background-color:#fff;color:#333;border:2px solid #ff8c42;cursor:pointer;font-family:Pixelify Sans,sans-serif;font-size:.95rem;font-weight:500;transition:background-color .2s ease,color .2s ease;border-radius:4px;outline:none;position:relative;display:flex;flex-direction:column;align-items:center;gap:.25rem}.projects-tab-button:focus{outline:none}.projects-tab-button:hover{background-color:#fff5f0}.projects-tab-button.active{background-color:#ff8c42;color:#fff;font-weight:700}.projects-tab-fermata{width:24px;height:auto;object-fit:contain;position:absolute;top:-17px;left:0;transition:none;pointer-events:none;z-index:6;filter:brightness(0) saturate(100%) invert(58%) sepia(95%) saturate(2000%) hue-rotate(-9deg) brightness(.95)}.projects-tab-fermata.fermata-transition-enabled{transition:transform .3s ease}.projects-content{width:100%;opacity:1;visibility:visible;scrollbar-gutter:stable;position:relative;min-height:calc(100vh - 160px - 2rem);padding-bottom:0;margin-bottom:0}@keyframes fadeInProjects{0%{opacity:0}to{opacity:1}}.about-me-container .music-brace-container,.about-me-container .bar-line-container{opacity:0;visibility:visible;scrollbar-gutter:stable}.about-me-container .music-brace-container.animate-in-bracket,.about-me-container .bar-line-container.animate-in-bracket{animation:fadeInAboutMe .7s ease forwards;animation-delay:.3s}.about-me-container .page-content{opacity:0;visibility:visible;scrollbar-gutter:stable}.about-me-container .page-content.animate-in-content{animation:fadeInAboutMe .7s ease forwards;animation-delay:.95s}@keyframes fadeInAboutMe{0%{opacity:0}to{opacity:1}}.technical-skills-icon-container{opacity:0;visibility:visible;scrollbar-gutter:stable;height:60px;display:flex;align-items:left;justify-content:left;margin-bottom:.5rem}.technical-skills-icon-container.animate-in-skills-icons{animation:fadeInSkills .7s ease forwards;animation-delay:.2s}.technical-skills-icon-container.animate-in-skills-icons-initial{animation:fadeInSkills .7s ease forwards;animation-delay:.5s}.technical-skills-column-content{opacity:0;visibility:visible;scrollbar-gutter:stable}.technical-skills-column-content.animate-in-skills-columns{animation:fadeInSkills .7s ease forwards;animation-delay:.2s}.technical-skills-column-content.animate-in-skills-columns-initial{animation:fadeInSkills .7s ease forwards;animation-delay:.5s}@keyframes fadeInSkills{0%{opacity:0}to{opacity:1}}.experience-tab{opacity:0;visibility:visible;scrollbar-gutter:stable}.experience-tab.animate-in-experience-content{animation:fadeInProjects .7s ease forwards;animation-delay:.2s}.experience-tab.animate-in-experience-content-initial{animation:fadeInProjects .7s ease forwards;animation-delay:.5s}.experience-carousel-controls{opacity:0;visibility:visible;scrollbar-gutter:stable;bottom:2.7rem!important}.experience-carousel-controls.animate-in-experience-controls{animation:fadeInProjects .7s ease forwards;animation-delay:.2s}.experience-carousel-controls.animate-in-experience-controls-initial{animation:fadeInProjects .7s ease forwards;animation-delay:.5s}.carousel-container.animate-in-projects-content{animation:fadeInProjects .7s ease forwards;animation-delay:.2s}.carousel-container.animate-in-projects-content-initial{animation:fadeInProjects .7s ease forwards;animation-delay:.5s}.carousel-controls.animate-in-projects-controls{animation:fadeInProjects .7s ease forwards;animation-delay:.2s}.carousel-controls.animate-in-projects-controls-initial{animation:fadeInProjects .7s ease forwards;animation-delay:.5s}.resume-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:calc(100vh - 80px - 2rem);padding:.5rem 1rem 1rem;gap:1rem}.resume-controls{display:flex;justify-content:center;width:100%;max-width:900px}.resume-fullscreen-button{padding:.5rem 1rem;background-color:#ff8c42;color:#fff;border:none;border-radius:4px;font-family:Pixelify Sans,sans-serif;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s ease;outline:none}.resume-fullscreen-button:hover{background-color:#ffa366}.resume-fullscreen-button:focus{outline:none}.resume-pdf{width:100%;max-width:900px;height:100%;border:none;border-radius:4px;box-shadow:0 2px 8px #0000001a;flex:1}.carousel-experience-meta{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem;align-items:center}.carousel-experience-year{font-weight:700;color:#666;font-family:Electrolize,sans-serif}.carousel-experience-org{color:#ff8c42;font-style:italic;font-family:Electrolize,sans-serif;font-size:1.1rem}.carousel-experience-org-link{color:#ff8c42;font-style:italic;font-family:Electrolize,sans-serif;font-size:1.1rem;text-decoration:underline;transition:color .2s ease}.carousel-experience-org-link:hover{color:#e67a2e}.technical-skills-container{display:flex;justify-content:center;align-items:flex-start;gap:3rem;padding:1rem 2rem 2rem;max-width:1200px;margin:0 auto}.technical-skills-column{display:flex;flex-direction:column;align-items:left;gap:0;flex:0 1 auto;max-width:300px}.technical-skills-icon-container-treble{justify-content:left;margin-left:-.8rem}.technical-skills-icon-container-alto{justify-content:left;margin-left:-.2rem}.technical-skills-icon-container-bass{justify-content:left;margin-left:.1rem}.technical-skills-icon{height:auto;object-fit:contain}.technical-skills-icon-treble{width:45px}.technical-skills-icon-alto{width:30px}.technical-skills-icon-bass{width:25px}.technical-skill-item{padding:0;margin:0;font-family:Electrolize,sans-serif;font-size:1rem;color:#333;text-align:left;line-height:1.7}.music-notes-container{display:flex;align-items:center;justify-content:center;gap:.5rem}.music-note-indicator{width:28px;height:auto;object-fit:contain;transition:transform .3s ease;transform:scaleY(1.15)}.music-note-indicator.music-note-up{animation:musicNoteUp .5s ease}@keyframes musicNoteUp{0%{transform:scaleY(1.15) translateY(0)}50%{transform:scaleY(1.15) translateY(-20px)}to{transform:scaleY(1.15) translateY(0)}}.carousel-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:calc(100vh - 310px - 3rem);padding:1rem 0 0;padding-bottom:0;margin-bottom:0;position:relative;scrollbar-gutter:stable;opacity:0;visibility:visible}.carousel-content-wrapper{position:relative;width:100%;display:flex;justify-content:center}.carousel-content{display:flex;flex-direction:row;align-items:flex-start;justify-content:center;gap:2rem;max-width:1100px;padding:.25rem 1.5rem .75rem;font-family:Electrolize,sans-serif;scrollbar-gutter:stable;flex-shrink:0;transform:translate(0);opacity:1}.carousel-content.swipe-exit-left{position:absolute;animation:swipeExitLeft .3s ease forwards}.carousel-content.swipe-exit-right{position:absolute;animation:swipeExitRight .3s ease forwards}.carousel-content.swipe-enter-left{animation:swipeEnterLeft .3s ease forwards}.carousel-content.swipe-enter-right{animation:swipeEnterRight .3s ease forwards}@keyframes swipeExitLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-100px);opacity:0}}@keyframes swipeExitRight{0%{transform:translate(0);opacity:1}to{transform:translate(100px);opacity:0}}@keyframes swipeEnterLeft{0%{transform:translate(100px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes swipeEnterRight{0%{transform:translate(-100px);opacity:0}to{transform:translate(0);opacity:1}}.carousel-text-content{display:flex;flex-direction:column;align-items:flex-start;text-align:left;flex:1}.experience-tab .carousel-text-content{align-items:center;text-align:center}.experience-tab .carousel-content h2,.experience-tab .carousel-content p{text-align:center}.experience-tab .carousel-experience-meta{justify-content:center}.experience-tab .carousel-content{max-width:600px}.carousel-text-content h2{font-size:1.75rem;margin-bottom:.5rem;color:#000;font-family:Electrolize,sans-serif;font-weight:700;letter-spacing:.3px;text-shadow:.4px 0 0 currentColor,-.4px 0 0 currentColor;text-align:left}.carousel-text-content p{font-size:1rem;line-height:1.6;color:#333;margin:0;text-align:left}.carousel-project-image{width:350px;height:auto;max-height:350px;border-radius:4px;object-fit:contain;flex-shrink:0;border:2px solid #e0e0e0;margin-top:1rem}.carousel-tech-stack{color:#666;font-family:Electrolize,sans-serif;font-size:.95rem;margin-bottom:.5rem;font-style:italic}.carousel-project-link{color:#ff8c42;text-decoration:none;transition:color .2s ease;display:block;margin-bottom:.5rem;font-family:Electrolize,sans-serif;font-size:1rem}.carousel-project-link:hover{color:#ff7a2e;text-decoration:underline}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:0;width:100%;flex-shrink:0;height:auto;min-height:0;position:fixed;bottom:0;left:0;right:0;z-index:10;opacity:0;visibility:visible}.carousel-button{padding:.5rem 1.5rem;background-color:#fff;color:#333;border:2px solid #ff8c42;cursor:pointer;font-family:Pixelify Sans,sans-serif;font-size:1rem;font-weight:500;transition:background-color .2s ease,color .2s ease;border-radius:4px;outline:none}.carousel-button-triangle{padding:.15rem 1rem 0;font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;background:none!important;background-color:transparent!important;border:none!important;color:#333;box-shadow:none!important}.carousel-button:hover{background-color:#ff8c42;color:#fff}.carousel-button-triangle:hover{background:none!important;background-color:transparent!important;color:#ff8c42!important}.carousel-button:focus{outline:none}.piano-conveyor-container{width:105px;height:110px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:flex-start}.piano-conveyor-track{display:flex;align-items:center;gap:0;transform:translate(-210px);will-change:transform}.piano-conveyor-container.piano-left .piano-conveyor-track{animation:pianoSlideLeft .6s ease forwards}.piano-conveyor-container.piano-right .piano-conveyor-track{animation:pianoSlideRight .6s ease forwards}.carousel-indicator-image{width:105px;height:auto;object-fit:contain;flex-shrink:0;display:block;margin:0;padding:0}@keyframes pianoSlideLeft{0%{transform:translate(-210px)}to{transform:translate(-315px)}}@keyframes pianoSlideRight{0%{transform:translate(-210px)}to{transform:translate(-105px)}}.bar-line-container{width:var(--barline-width, 20px);max-width:var(--barline-width, 20px);min-width:var(--barline-width, 20px);align-self:stretch;display:flex;overflow:hidden;margin-left:0;padding-left:0;flex:0 0 var(--barline-width, 20px);position:absolute;right:var(--barline-to-right-edge-margin, 20px)}.bar-line{width:var(--barline-width, 20px);height:100%;min-width:var(--barline-width, 20px);max-width:var(--barline-width, 20px);object-fit:fill;transform:scaleX(-1);display:block;flex:0 0 auto;position:static}.app{display:flex;flex-direction:column;min-height:100vh;scrollbar-gutter:stable}.main-content{flex:1;width:100%;min-height:calc(100vh - 200px);scrollbar-gutter:stable}
