@keyframes floatingRow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes floatDoodle{0%,to{transform:translateY(0)rotate(0)scale(1)}50%{transform:translateY(-30px)rotate(15deg)scale(1.1)}}@keyframes pulseGlow{0%,to{opacity:.2}50%{opacity:.5}}@keyframes floatingCard{0%,to{transform:translateY(0) rotate(calc(var(--base-rotation) - .5deg))}50%{transform:translateY(-4px) rotate(calc(var(--base-rotation) + .5deg))}}@keyframes nebulaPulse{0%{opacity:.6;transform:scale(1)translate(0)}to{opacity:.9;transform:scale(1.2)translate(2%,2%)}}.projects-section{scroll-snap-align:start}@supports (scroll-snap-stop:always){.projects-section{scroll-snap-stop:always}}.projects-section{box-sizing:border-box;background:radial-gradient(circle,#0000 20%,#0006 100%),linear-gradient(#020305 0%,#1b334b 35%,#2d4660 60%,#8095b8 100%);flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100dvh;padding:2rem clamp(1.25rem,5vw,3rem);display:flex;position:relative;overflow:hidden}.projects-section:before{content:"";opacity:.15;pointer-events:none;z-index:10;background:repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 1px 2px) 0 0/200px,repeating-linear-gradient(90deg,#ffffff05 0 1px,#0000 1px 3px) 0 0/100% 3px;position:absolute;inset:0}.projects-section:after{content:"";pointer-events:none;z-index:0;filter:blur(60px);background:radial-gradient(circle at 20% 30%,#62a6f026 0%,#0000 50%),radial-gradient(circle at 80% 70%,#488aec1a 0%,#0000 50%),radial-gradient(circle at 50% 10%,#449ded14 0%,#0000 40%);transition:opacity .6s cubic-bezier(.4,0,.2,1);animation:20s ease-in-out infinite alternate nebulaPulse;position:absolute;inset:0;box-shadow:inset 0 0 150px #000c}.projects-section .stars-container{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.projects-section .stars-container .stars-canvas{object-fit:cover;width:100%;height:100%;display:block}@media (width<=1024px){.projects-section{height:auto;min-height:100vh;padding:4rem 0 calc(5rem + env(safe-area-inset-bottom));overflow:hidden}}.projects-section .section-header{text-align:center;z-index:10;flex-shrink:0;width:100%;margin-bottom:1.5rem;padding-top:.5rem;position:relative;top:0;left:0}.projects-section .section-content{z-index:5;box-sizing:border-box;flex-direction:column;flex:1;justify-content:center;width:100%;max-width:1200px;min-height:0;margin:0 auto;display:flex;position:relative}@media (width<=1024px){.projects-section .section-content{justify-content:center}}.projects-section .section-header{text-align:center;z-index:10;flex-shrink:0;margin-bottom:1.5rem}@media (height<=700px) and (width>=1025px){.projects-section .section-header{margin-bottom:.5rem}}.projects-section .section-header .section-title{margin-bottom:.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:800;display:inline-block;position:relative}.projects-section .section-header .section-title .title-glow{background:linear-gradient(135deg,#d0e1fa 30%,#91c1f4 100%);-webkit-text-fill-color:transparent;text-shadow:0 0 20px #d0e1fa33,0 0 40px #91c1f41a;-webkit-background-clip:text;background-clip:text;position:relative}.projects-section .section-header .title-underline{transform-origin:50%;background:linear-gradient(135deg,#d0e1fa 30%,#91c1f4 100%);border-radius:10px;width:120px;height:3px;margin:10px auto 0;animation:3s ease-in-out infinite alternate neon-pulse-projects;box-shadow:0 0 20px #d0e1fa}.projects-section .projects-container{box-sizing:border-box;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#5eace880 transparent;flex-direction:row;justify-content:flex-start;align-items:stretch;gap:clamp(2rem,4vw,5rem);width:100%;max-width:1400px;max-height:80vh;padding-bottom:1rem;scroll-padding-left:.5rem;animation:8s ease-in-out infinite floatingRow;display:flex;overflow:auto hidden}.projects-section .projects-container::-webkit-scrollbar{height:8px}.projects-section .projects-container::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.projects-section .projects-container::-webkit-scrollbar-thumb{background:#5eace880;border-radius:4px}.projects-section .projects-container::-webkit-scrollbar-thumb:hover{background:#5eace8bf}@media (width<=1024px){.projects-section .projects-container{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.75rem;max-height:none;padding:.25rem 9vw 1.25rem;scroll-padding-inline:9vw;animation:none}.projects-section .projects-container::-webkit-scrollbar{display:none}}@media (width>=1025px) and (width<=1280px){.projects-section .projects-container{gap:2rem}}@media (height<=800px) and (width>=1025px){.projects-section .projects-container{gap:1.5rem}}.projects-section .music-card{scroll-snap-align:center;flex:0 0 280px;min-width:260px;max-width:300px}@media (width<=1024px){.projects-section .music-card{box-sizing:border-box;scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 82vw;width:82vw;min-width:0;max-width:82vw}}.projects-section .music-card{background:#121b25;border:3px solid #000;border-radius:24px;flex-direction:column;padding:1.25rem 1rem;transition:transform .3s;display:flex;box-shadow:10px 10px #0000004d}.projects-section .music-card:hover{transform:translateY(-8px)rotate(1deg)}@media (width>=1025px){.projects-section .music-card{aspect-ratio:auto;max-height:100%}}.projects-section .music-card .card-hardware{flex-direction:column;gap:10px;height:100%;display:flex}.projects-section .music-card .album-art{aspect-ratio:16/10;background:#000;border:2px solid #000;border-radius:12px;flex-shrink:0;width:100%;height:auto;max-height:none;position:relative;overflow:hidden;box-shadow:inset 0 0 15px #000c}@media (height<=750px) and (width>=1025px){.projects-section .music-card .album-art{aspect-ratio:16/9}}.projects-section .music-card .album-art .art-img{object-fit:cover;object-position:top;filter:brightness(.8)contrast(1.1);width:100%;height:100%;transition:object-position 3s ease-in-out,filter .5s,transform .5s}.projects-section .music-card .album-art .art-img:hover{filter:brightness()contrast(1.1);object-position:bottom;transform:scale(1.05)}.projects-section .music-card .album-art .screen-glare{pointer-events:none;background:linear-gradient(135deg,#ffffff26 0%,#0000 50%,#ffffff0d 100%);position:absolute;inset:0}.projects-section .music-card .project-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;margin:4px 0;font-size:1.4rem;font-weight:800;overflow:hidden}.projects-section .music-card .project-tech-stack{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.projects-section .music-card .project-tech-stack .tech-tag{text-transform:uppercase;background:#0006;border:1px solid;border-radius:4px;padding:2px 8px;font-size:.8rem}.projects-section .music-card .project-desc{-webkit-line-clamp:3;color:#fff9;-webkit-box-orient:vertical;flex-grow:1;margin-bottom:10px;font-size:.85rem;line-height:1.4;display:-webkit-box;overflow:hidden}@media (width<=1024px){.projects-section .music-card .project-desc{-webkit-line-clamp:unset}}.projects-section .music-card .playback-unit{cursor:default;background:#0006;border:1px solid #ffffff0d;border-radius:16px;flex-shrink:0;margin-top:auto;padding:12px}.projects-section .music-card .playback-unit .progress-bg{background:#000;border-radius:10px;height:5px;margin-bottom:6px;overflow:hidden}.projects-section .music-card .playback-unit .progress-fill{background-color:var(--accent-color,#d0e1fa);width:100%;height:100%;box-shadow:0 0 10px var(--accent-color,#d0e1fa);border-radius:inherit;transition:background-color .3s,box-shadow .3s}.projects-section .music-card .playback-unit .time-info{color:#d0e1fa;opacity:.7;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.75rem;display:flex}.projects-section .music-card .playback-unit .time-info span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.projects-section .music-card .playback-unit .time-info span:last-child{white-space:nowrap;flex:none}.projects-section .music-card .player-controls{justify-content:space-around;align-items:center;margin-top:10px;display:flex}.projects-section .music-card .player-controls .control-btn{cursor:pointer;background:0 0;border:none;padding:0}.projects-section .music-card .player-controls .control-btn:disabled{cursor:not-allowed;opacity:.35}.projects-section .music-card .player-controls svg{opacity:.4}.projects-section .music-card .player-controls .main-play-btn{cursor:pointer;background-color:var(--accent-color,#d0e1fa);border:none;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:transform .2s,background-color .3s,box-shadow .3s;display:flex;box-shadow:0 0 10px #ffffff1a}.projects-section .classified-overlay{background:#1a1a1a;border:2px dashed #ffffff4d;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.projects-section .classified-overlay span{color:#4685ed;letter-spacing:5px;background:#fff;padding:5px 15px;font-weight:900;transform:rotate(-5deg)}.projects-section .audio-visualizer{z-index:20;pointer-events:none;justify-content:center;align-items:flex-end;gap:4px;width:auto;min-width:200px;height:10vh;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.projects-section .audio-visualizer .bar{background:var(--active-visualizer-color,#d0e1fa);opacity:.5;width:5px;animation:visualizerPulse var(--duration,1.2s) infinite ease-in-out;border-radius:10px 10px 0 0;transition:background .5s}@keyframes visualizerPulse{0%{height:5px}25%{height:30px}50%{height:15px}75%{height:35px}to{height:5px}}@keyframes neon-pulse-projects{0%{opacity:.8;transform:scaleX(.9);box-shadow:0 0 10px #d0e1fa,0 0 5px #fff}to{opacity:1;transform:scaleX(1.1);box-shadow:0 0 25px #d0e1fa,0 0 10px #fff,0 0 5px #91c1f4}}@media (prefers-reduced-motion:reduce){.projects-section .projects-section *{transition:none!important;animation:none!important}.projects-section .audio-visualizer .bar{height:20px!important}}.projects-section .player-controls,.projects-section .player-controls .control-btn,.projects-section .player-controls .main-play-btn{pointer-events:auto}.projects-section .sparkle-doodle{z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.2;position:absolute}.projects-section .sparkle-doodle svg{filter:blur(.5px)drop-shadow(0 0 5px);transition:opacity .6s cubic-bezier(.4,0,.2,1)}
