/* LEO SOLIVERES — PIXEL ART PORTFOLIO v2 */
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Grotesk:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&display=swap');
:root{--bg-deep:#0a0612;--bg-mid:#130a24;--bg-surface:#1a1030;--purple:#b07cff;--purple-dark:#7b4fc9;--purple-light:#d4b5ff;--cyan:#62d8ff;--pink:#ff6bb5;--neon-glow:0 0 20px rgba(176,124,255,.4),0 0 60px rgba(176,124,255,.15);--font-pixel:'Press Start 2P',monospace;--font-body:'Space Grotesk',sans-serif;--font-display:'Playfair Display',serif;--tr:.25s cubic-bezier(.4,0,.2,1)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-deep);color:rgba(255,255,255,.88);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}
body::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.05) 2px,rgba(0,0,0,.05) 4px);mix-blend-mode:multiply}
.pixel-grid::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(rgba(176,124,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(176,124,255,.04) 1px,transparent 1px);background-size:4px 4px;opacity:.5}

/* HEADER */
.site-header{position:sticky;top:0;z-index:100;background:rgba(10,6,18,.92);backdrop-filter:blur(16px);border-bottom:2px solid rgba(176,124,255,.15);box-shadow:0 2px 30px rgba(176,124,255,.08)}
.header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:70px}
.logo{display:flex;align-items:center;gap:12px}
.logo-pixel{width:40px;height:40px;background:linear-gradient(135deg,var(--purple),var(--cyan));border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--font-pixel);font-size:10px;color:#fff;box-shadow:var(--neon-glow);animation:logoPulse 3s ease-in-out infinite}
@keyframes logoPulse{0%,100%{box-shadow:var(--neon-glow)}50%{box-shadow:0 0 30px rgba(176,124,255,.6),0 0 80px rgba(176,124,255,.2)}}
.logo-text{display:flex;flex-direction:column;gap:2px}.logo-name{font-family:var(--font-display);font-style:italic;font-weight:700;font-size:20px;color:#fff}.logo-sub{font-family:var(--font-pixel);font-size:7px;letter-spacing:1px;color:var(--purple-light);opacity:.7}
.site-nav{display:flex;gap:6px;align-items:center}.site-nav a{font-family:var(--font-pixel);font-size:8px;letter-spacing:1px;padding:8px 14px;border-radius:4px;color:rgba(255,255,255,.65);transition:var(--tr);border:1px solid transparent}
.site-nav a:hover,.site-nav a.active{color:#fff;background:rgba(176,124,255,.1);border-color:rgba(176,124,255,.3);text-shadow:0 0 12px rgba(176,124,255,.5)}.site-nav a.active{background:rgba(176,124,255,.15);border-color:rgba(176,124,255,.5);box-shadow:0 0 16px rgba(176,124,255,.15)}
.header-actions{display:flex;gap:8px;align-items:center}
.icon-btn{width:38px;height:38px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.75);transition:var(--tr)}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{border-color:rgba(176,124,255,.4);color:#fff;transform:translateY(-1px)}
.icon-btn--spotify{border-color:rgba(29,185,84,.4);color:#1db954}.icon-btn--spotify:hover{box-shadow:0 0 16px rgba(29,185,84,.25)}.icon-btn--ig{border-color:rgba(225,48,108,.4);color:#e1306c}.icon-btn--ig:hover{box-shadow:0 0 16px rgba(225,48,108,.25)}.icon-btn--mail{border-color:rgba(98,216,255,.4);color:var(--cyan)}.icon-btn--mail:hover{box-shadow:0 0 16px rgba(98,216,255,.25)}.icon-btn--cv{border-color:rgba(176,124,255,.4);color:var(--purple-light);font-family:var(--font-pixel);font-size:8px;width:auto;padding:0 14px}.icon-btn--cv:hover{box-shadow:0 0 16px rgba(176,124,255,.25)}
.menu-toggle{display:none;width:38px;height:38px;flex-direction:column;gap:5px;align-items:center;justify-content:center}.menu-toggle span{width:22px;height:2px;background:#fff;border-radius:1px;transition:var(--tr)}
@media(max-width:960px){.menu-toggle{display:flex}.site-nav{position:fixed;top:70px;left:0;right:0;background:rgba(10,6,18,.97);backdrop-filter:blur(20px);flex-direction:column;padding:20px;gap:4px;border-bottom:2px solid rgba(176,124,255,.2);transform:translateY(-120%);transition:transform .3s ease;z-index:99}.site-nav.open{transform:translateY(0)}.site-nav a{width:100%;text-align:center;padding:14px}.header-actions{display:none}}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,var(--bg-deep) 0%,#1a0732 40%,#24104a 70%,var(--bg-deep) 100%)}
.hero-bg{position:absolute;inset:0;z-index:0}.stars-canvas{position:absolute;inset:0}
.hero-bg::before{content:"";position:absolute;width:800px;height:800px;top:-200px;left:-200px;background:radial-gradient(circle,rgba(176,124,255,.2),transparent 70%);animation:orbFloat 8s ease-in-out infinite}
.hero-bg::after{content:"";position:absolute;width:600px;height:600px;bottom:-100px;right:-100px;background:radial-gradient(circle,rgba(98,216,255,.18),transparent 70%);animation:orbFloat 10s ease-in-out infinite reverse}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-30px) scale(1.1)}}
.hero-content{position:relative;z-index:2;text-align:center;padding:40px 24px;max-width:900px}
.hero-photo-stack{position:relative;left:50%;transform:translateX(-50%);width:min(calc(100vw - 24px),1400px);height:372px;margin:0 auto 30px;display:flex;align-items:flex-end;justify-content:center}
.hero-notes{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}
.hero-note{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);color:var(--color);opacity:.06;transform:translate(-50%,-50%) rotate(var(--rotate));transform-origin:center;animation:heroNoteFloat var(--duration) cubic-bezier(.33,0,.18,1) infinite;animation-delay:var(--delay);filter:drop-shadow(0 0 10px currentColor) drop-shadow(0 0 24px currentColor);mix-blend-mode:screen;pointer-events:auto;cursor:default;isolation:isolate;transition:filter 1.12s cubic-bezier(.19,1,.22,1),opacity 1.12s cubic-bezier(.19,1,.22,1)}
.hero-note svg{width:100%;height:100%;display:block;transition:transform .95s cubic-bezier(.22,1,.36,1),filter .95s cubic-bezier(.22,1,.36,1)}
.hero-note::after{content:"";position:absolute;inset:-15px;border-radius:999px;background:radial-gradient(circle,currentColor 0%,transparent 72%);opacity:0;transform:scale(.58);filter:blur(8px);pointer-events:none;z-index:-1;transition:opacity 1.45s cubic-bezier(.19,1,.22,1),transform 1.55s cubic-bezier(.19,1,.22,1),filter 1.55s cubic-bezier(.19,1,.22,1)}
@keyframes heroNoteFloat{0%,100%{transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.96);opacity:.015}18%{opacity:.04}36%{transform:translate(calc(-50% + var(--drift-x)),calc(-50% + var(--drift-y))) rotate(calc(var(--rotate) + 2deg)) scale(1.02);opacity:calc(var(--alpha-max) * .76)}56%{transform:translate(calc(-50% + var(--drift-x)),calc(-50% + var(--drift-y))) rotate(calc(var(--rotate) + 1deg)) scale(1.03);opacity:var(--alpha-max)}80%{transform:translate(calc(-50% + var(--drift-x2)),calc(-50% + var(--drift-y2))) rotate(calc(var(--rotate) - 2deg)) scale(1.01);opacity:calc(var(--alpha-max) * .58)}94%{opacity:.03}}
.hero-photo{width:220px;height:220px;border-radius:12px;margin:0 0 18px;border:3px solid rgba(176,124,255,.5);box-shadow:var(--neon-glow);overflow:hidden;position:relative;z-index:2}.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo::after{content:"";position:absolute;inset:-4px;border:4px solid transparent;border-image:repeating-linear-gradient(90deg,var(--purple) 0 4px,transparent 4px 8px) 4;pointer-events:none;animation:borderShift 4s linear infinite}
@keyframes borderShift{0%{border-image:repeating-linear-gradient(90deg,var(--purple) 0 4px,var(--cyan) 4px 8px) 4}50%{border-image:repeating-linear-gradient(90deg,var(--cyan) 0 4px,var(--pink) 4px 8px) 4}100%{border-image:repeating-linear-gradient(90deg,var(--purple) 0 4px,var(--cyan) 4px 8px) 4}}
.hero h1{font-family:var(--font-pixel);font-size:clamp(28px,5vw,52px);line-height:1.4;background:linear-gradient(135deg,#fff 0%,var(--purple-light) 50%,var(--cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:16px;animation:titleGlow 3s ease-in-out infinite alternate;letter-spacing:2px}
@keyframes titleGlow{0%{filter:drop-shadow(0 0 8px rgba(176,124,255,.3))}100%{filter:drop-shadow(0 0 20px rgba(176,124,255,.6))}}
.hero-roles{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:28px}
.hero-role{display:inline-flex;align-items:center;justify-content:center;text-align:center;font-family:var(--font-pixel);font-size:8px;letter-spacing:1.5px;padding:8px 18px;border-radius:4px;border:1px solid rgba(176,124,255,.3);background:rgba(176,124,255,.08);color:var(--purple-light);text-shadow:0 0 10px rgba(176,124,255,.3);animation:roleFloat 3s ease-in-out infinite}
.hero-role:nth-child(2){animation-delay:.5s;border-color:rgba(98,216,255,.35);color:var(--cyan);background:rgba(98,216,255,.1);text-shadow:0 0 10px rgba(98,216,255,.4)}
.hero-role:nth-child(3){animation-delay:1s;border-color:rgba(255,107,181,.35);color:var(--pink);background:rgba(255,107,181,.1);text-shadow:0 0 10px rgba(255,107,181,.4)}
@keyframes roleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.hero-desc{font-size:15px;color:rgba(255,255,255,.7);max-width:600px;margin:0 auto 32px;line-height:1.7}
.social-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:32px}
.social-icon{width:52px;height:52px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(10,6,18,.6);backdrop-filter:blur(8px);display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:var(--tr)}.social-icon svg{width:22px;height:22px}.social-icon:hover{transform:translateY(-3px) scale(1.05);color:#fff}
.social-icon--spotify{border-color:rgba(29,185,84,.5);color:#1db954;box-shadow:0 0 12px rgba(29,185,84,.12)}.social-icon--spotify:hover{box-shadow:0 0 24px rgba(29,185,84,.3)}
.social-icon--soundcloud{border-color:rgba(255,107,0,.5);color:#ff6b00;box-shadow:0 0 12px rgba(255,107,0,.12)}.social-icon--soundcloud:hover{box-shadow:0 0 24px rgba(255,107,0,.3)}
.social-icon--ig{border-color:rgba(225,48,108,.5);color:#e1306c;box-shadow:0 0 12px rgba(225,48,108,.12)}.social-icon--ig:hover{box-shadow:0 0 24px rgba(225,48,108,.3)}
.social-icon--linkedin{border-color:rgba(10,102,194,.5);color:#0a66c2;box-shadow:0 0 12px rgba(10,102,194,.12)}.social-icon--linkedin:hover{box-shadow:0 0 24px rgba(10,102,194,.3)}
.social-icon--mail{border-color:rgba(98,216,255,.5);color:var(--cyan);box-shadow:0 0 12px rgba(98,216,255,.12)}.social-icon--mail:hover{box-shadow:0 0 24px rgba(98,216,255,.3)}
.social-icon--x{border-color:rgba(240,240,255,.38);color:#f4f6ff;box-shadow:0 0 12px rgba(244,246,255,.1)}.social-icon--x:hover{box-shadow:0 0 24px rgba(244,246,255,.24)}
.social-icon--tiktok{border-color:rgba(37,244,238,.45);color:#25f4ee;box-shadow:0 0 12px rgba(37,244,238,.12)}.social-icon--tiktok:hover{box-shadow:0 0 24px rgba(254,44,85,.2),0 0 18px rgba(37,244,238,.22)}
.social-icon--twitch{border-color:rgba(145,70,255,.5);color:#9146ff;box-shadow:0 0 12px rgba(145,70,255,.14)}.social-icon--twitch:hover{box-shadow:0 0 24px rgba(145,70,255,.3)}
.social-icon--youtube{border-color:rgba(255,0,51,.5);color:#ff0033;box-shadow:0 0 12px rgba(255,0,51,.14)}.social-icon--youtube:hover{box-shadow:0 0 24px rgba(255,0,51,.32)}
.social-icon--facebook{border-color:rgba(24,119,242,.5);color:#1877f2;box-shadow:0 0 12px rgba(24,119,242,.14)}.social-icon--facebook:hover{box-shadow:0 0 24px rgba(24,119,242,.28)}
.hero-cta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-pixel);font-size:10px;letter-spacing:1px;padding:14px 32px;border:2px solid var(--purple);border-radius:4px;background:rgba(176,124,255,.1);color:#fff;transition:var(--tr);text-shadow:0 0 10px rgba(176,124,255,.4);box-shadow:var(--neon-glow);animation:ctaPulse 2s ease-in-out infinite}
.hero-cta:hover{background:rgba(176,124,255,.25);transform:translateY(-2px);box-shadow:0 0 30px rgba(176,124,255,.5),0 0 80px rgba(176,124,255,.2)}
@keyframes ctaPulse{0%,100%{box-shadow:var(--neon-glow)}50%{box-shadow:0 0 28px rgba(176,124,255,.5),0 0 70px rgba(176,124,255,.2)}}

/* BANDS */
.section-band{position:relative;min-height:50vh;display:flex;align-items:center;overflow:hidden;border-top:1px solid rgba(176,124,255,.06)}
.section-band--gradient{background:linear-gradient(180deg,rgba(26,7,50,.95),rgba(36,16,74,.9) 40%,rgba(20,0,28,.95))}
.band-bg{position:absolute;inset:0;z-index:0;overflow:hidden}.band-bg img{width:100%;height:100%;object-fit:cover;object-position:center;filter:hue-rotate(12deg) saturate(.9) contrast(1.2) brightness(.35) blur(1px);transform:scale(1.05);transition:transform .6s ease}
.section-band:hover .band-bg img{transform:scale(1.12)}
.band-content{position:relative;z-index:2;max-width:1400px;margin:0 auto;padding:80px 40px;width:100%}
.band-content h2{font-family:var(--font-pixel);font-size:clamp(32px,5vw,64px);margin-bottom:16px;background:linear-gradient(135deg,#fff,var(--purple-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.band-content p{font-size:16px;color:rgba(255,255,255,.7);max-width:500px;margin-bottom:24px}
.band-cta{display:inline-block;font-family:var(--font-pixel);font-size:9px;letter-spacing:1px;padding:12px 28px;border:2px solid var(--cyan);border-radius:4px;background:rgba(98,216,255,.08);color:#fff;transition:var(--tr);box-shadow:0 0 12px rgba(98,216,255,.15)}
.band-cta:hover{background:rgba(98,216,255,.2);transform:translateY(-2px);box-shadow:0 0 24px rgba(98,216,255,.3)}

/* Bottom social */
.bottom-social{position:relative;padding:80px 24px 60px;text-align:center;background:linear-gradient(180deg,var(--bg-deep),#1a0732 50%,var(--bg-deep));border-top:1px solid rgba(176,124,255,.06)}
.bottom-social h2{font-family:var(--font-pixel);font-size:clamp(24px,4vw,48px);margin-bottom:12px;background:linear-gradient(135deg,var(--pink),var(--purple-light),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.bottom-social p{color:rgba(255,255,255,.55);margin-bottom:28px;font-size:14px}

/* Reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}

/* PAGE SHELLS */
.page-shell{max-width:1400px;margin:0 auto;padding:40px 24px 60px;position:relative;min-height:calc(100vh - 160px)}
.page-intro{margin-bottom:40px;animation:fadeInUp .6s ease}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.page-kicker{font-family:var(--font-pixel);font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--cyan);margin-bottom:8px;text-shadow:0 0 10px rgba(98,216,255,.4)}
.page-intro h1{font-family:var(--font-pixel);font-size:clamp(28px,6vw,56px);background:linear-gradient(135deg,#fff,var(--purple-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px;letter-spacing:1px}
.page-lead{font-size:15px;color:rgba(255,255,255,.65);max-width:600px}

/* MUSIC */
.music-platforms{display:flex;gap:10px;margin-bottom:32px;flex-wrap:wrap}
.platform-pill{font-family:var(--font-pixel);font-size:8px;letter-spacing:1px;padding:10px 22px;border-radius:4px;border:1px solid;transition:var(--tr)}
.platform-pill--spotify{border-color:rgba(29,185,84,.5);color:#1db954;background:rgba(29,185,84,.08)}.platform-pill--spotify:hover{background:rgba(29,185,84,.2);box-shadow:0 0 20px rgba(29,185,84,.2);transform:translateY(-2px)}
.platform-pill--soundcloud{border-color:rgba(255,107,0,.5);color:#ff6b00;background:rgba(255,107,0,.08)}.platform-pill--soundcloud:hover{background:rgba(255,107,0,.2);box-shadow:0 0 20px rgba(255,107,0,.2);transform:translateY(-2px)}
.tracklist{display:flex;flex-direction:column;gap:2px;border-radius:8px;overflow:hidden;border:1px solid rgba(176,124,255,.15);background:rgba(10,6,18,.5)}
.track{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:16px;padding:14px 20px;background:rgba(176,124,255,.03);border-bottom:1px solid rgba(176,124,255,.08);transition:var(--tr);cursor:pointer}.track:last-child{border-bottom:none}.track:hover{background:rgba(176,124,255,.08)}.track.playing{background:rgba(176,124,255,.12);box-shadow:inset 0 0 24px rgba(176,124,255,.08)}
.track-play{width:42px;height:42px;border-radius:8px;border:1px solid rgba(176,124,255,.3);background:rgba(176,124,255,.08);display:flex;align-items:center;justify-content:center;color:var(--purple-light);transition:var(--tr)}.track-play:hover{background:rgba(176,124,255,.2);box-shadow:0 0 12px rgba(176,124,255,.2)}.track-play svg{width:18px;height:18px}
.track-info{display:flex;flex-direction:column;gap:6px;min-width:0}.track-title{font-family:var(--font-pixel);font-size:9px;letter-spacing:.5px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-progress{width:100%;height:4px;border-radius:2px;background:rgba(176,124,255,.15);cursor:pointer;overflow:hidden}.track-progress i{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,var(--purple),var(--cyan));transition:width .1s linear;box-shadow:0 0 6px rgba(176,124,255,.4)}
.track-time{font-family:var(--font-pixel);font-size:8px;color:rgba(255,255,255,.5);min-width:45px;text-align:right}.track.playing .track-title{text-shadow:0 0 10px rgba(176,124,255,.4)}
.nowbar{position:fixed;bottom:0;left:0;right:0;background:rgba(10,6,18,.95);backdrop-filter:blur(16px);border-top:2px solid rgba(176,124,255,.3);box-shadow:0 -4px 30px rgba(176,124,255,.1);padding:10px 24px;z-index:90;display:none;align-items:center;gap:16px}.nowbar.on{display:flex;animation:nowGlow 3s ease-in-out infinite}
@keyframes nowGlow{0%,100%{box-shadow:0 -4px 30px rgba(176,124,255,.1)}50%{box-shadow:0 -4px 40px rgba(176,124,255,.2)}}
.nowbar .np-play{width:40px;height:40px;border-radius:8px;border:1px solid rgba(176,124,255,.4);background:rgba(176,124,255,.1);display:flex;align-items:center;justify-content:center;color:#fff;transition:var(--tr)}.nowbar .np-play:hover{background:rgba(176,124,255,.25)}.nowbar .np-play svg{width:18px;height:18px}
.nowbar .np-title{font-family:var(--font-pixel);font-size:9px;color:#fff;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nowbar .np-progress{flex:2;height:4px;border-radius:2px;background:rgba(176,124,255,.15);cursor:pointer}.nowbar .np-progress i{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,var(--purple),var(--cyan));box-shadow:0 0 6px rgba(176,124,255,.4)}
.nowbar .np-time{font-family:var(--font-pixel);font-size:8px;color:rgba(255,255,255,.5)}

/* PROJECTS */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.proj-card{position:relative;border-radius:8px;overflow:hidden;border:1px solid rgba(176,124,255,.15);background:rgba(176,124,255,.04);cursor:pointer;transition:var(--tr);animation:cardIn .5s ease both}
.proj-card:nth-child(2){animation-delay:.08s}.proj-card:nth-child(3){animation-delay:.16s}.proj-card:nth-child(4){animation-delay:.24s}.proj-card:nth-child(5){animation-delay:.32s}.proj-card:nth-child(6){animation-delay:.4s}
@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.proj-card:hover{border-color:rgba(255,107,181,.4);transform:translateY(-4px);box-shadow:0 8px 32px rgba(255,107,181,.12),0 0 20px rgba(176,124,255,.1)}
.proj-card img{width:100%;height:200px;object-fit:cover;filter:saturate(.9) brightness(.85);transition:var(--tr)}.proj-card:hover img{filter:saturate(1) brightness(.95);transform:scale(1.03)}
.proj-card::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(98,216,255,.05) 50%,transparent 60%);background-size:300% 300%;animation:shimmer 4s ease infinite;pointer-events:none}
@keyframes shimmer{0%{background-position:100% 100%}50%{background-position:0 0}100%{background-position:100% 100%}}
.proj-body{padding:16px}.proj-title{font-family:var(--font-pixel);font-size:10px;color:#fff;margin-bottom:6px;letter-spacing:.5px}.proj-meta{font-family:var(--font-pixel);font-size:7px;letter-spacing:.5px;color:rgba(255,255,255,.5)}

/* MODAL */
.backdrop{position:fixed;inset:0;z-index:200;background:rgba(10,6,18,.9);backdrop-filter:blur(10px);display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 20px}.backdrop.open{display:flex}
.modal{width:min(900px,100%);background:var(--bg-surface);border:1px solid rgba(176,124,255,.25);border-radius:12px;overflow:hidden;animation:modalIn .3s ease;box-shadow:0 0 60px rgba(176,124,255,.1)}
@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(176,124,255,.15)}.modal-head strong{font-family:var(--font-pixel);font-size:11px;color:#fff}
.modal-close{font-family:var(--font-pixel);font-size:8px;letter-spacing:1px;padding:8px 18px;border-radius:4px;border:1px solid rgba(176,124,255,.3);color:var(--purple-light);transition:var(--tr)}.modal-close:hover{background:rgba(176,124,255,.15)}
.modal-body{padding:24px}.modal-grid{display:grid;grid-template-columns:1fr 280px;gap:24px}
.modal-video iframe,.modal-video video{width:100%;aspect-ratio:16/9;border-radius:8px;border:none;background:#000}
.modal-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:16px}.modal-gallery img{width:100%;border-radius:6px;border:1px solid rgba(176,124,255,.15);transition:var(--tr)}.modal-gallery img:hover{border-color:rgba(176,124,255,.4)}
.modal-side .label{font-family:var(--font-pixel);font-size:7px;letter-spacing:1px;color:var(--cyan);text-transform:uppercase;margin-bottom:4px;margin-top:16px}.modal-side .label:first-child{margin-top:0}.modal-side .value{font-size:13px;color:rgba(255,255,255,.75);line-height:1.5}
.modal-links{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}.modal-link{font-family:var(--font-pixel);font-size:7px;letter-spacing:.5px;padding:6px 14px;border-radius:4px;border:1px solid rgba(98,216,255,.3);color:var(--cyan);transition:var(--tr)}.modal-link:hover{background:rgba(98,216,255,.15)}
@media(max-width:700px){.modal-grid{grid-template-columns:1fr}}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:1140px;margin:0 auto}
.service-card{padding:28px;border-radius:8px;border:1px solid rgba(176,124,255,.15);background:rgba(176,124,255,.04);transition:var(--tr);position:relative;overflow:hidden}
.service-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pink),var(--purple),var(--cyan));opacity:0;transition:var(--tr)}
.service-card:hover{border-color:rgba(98,216,255,.3);transform:translateY(-2px);box-shadow:0 0 20px rgba(98,216,255,.1)}.service-card:hover::before{opacity:1}
.service-icon{font-size:32px;margin-bottom:16px}.service-card h3{font-family:var(--font-pixel);font-size:10px;color:#fff;margin-bottom:10px;letter-spacing:.5px}.service-card p{font-size:14px;color:rgba(255,255,255,.6);line-height:1.7}
.service-card--game{border-color:rgba(255,107,181,.2)}.service-card--game:hover{border-color:rgba(255,107,181,.4);box-shadow:0 0 24px rgba(255,107,181,.12)}
.service-card--anim{border-color:rgba(98,216,255,.2)}.service-card--anim:hover{border-color:rgba(98,216,255,.4);box-shadow:0 0 24px rgba(98,216,255,.12)}

/* ABOUT */
.about-wrap{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start}
.about-photo{border-radius:8px;overflow:hidden;border:2px solid rgba(176,124,255,.3);box-shadow:var(--neon-glow);position:relative}.about-photo img{width:100%;display:block}
.about-photo::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(176,124,255,.03) 3px,rgba(176,124,255,.03) 4px)}
.about-text{font-size:15px;line-height:1.8;color:rgba(255,255,255,.75)}
@media(max-width:700px){.about-wrap{grid-template-columns:1fr}.about-photo{max-width:280px}}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:minmax(0,420px);justify-content:center;gap:20px;max-width:420px;margin:8px auto 0}
.contact-card{padding:28px;border-radius:8px;border:1px solid rgba(176,124,255,.15);background:rgba(176,124,255,.04);text-align:center;transition:var(--tr)}.contact-card:hover{border-color:rgba(98,216,255,.3);transform:translateY(-2px);box-shadow:0 0 24px rgba(98,216,255,.1)}
.contact-card h3{font-family:var(--font-pixel);font-size:9px;color:var(--cyan);margin-bottom:10px}.contact-card p{font-size:14px;color:rgba(255,255,255,.6)}.contact-card a{color:var(--cyan)}.contact-card a:hover{text-decoration:underline}
.contact-form{margin-top:32px;padding:32px;border-radius:12px;border:1px solid rgba(176,124,255,.2);background:rgba(176,124,255,.04)}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.contact-form label{display:block;font-family:var(--font-pixel);font-size:7px;letter-spacing:1px;color:var(--purple-light);margin-bottom:6px;text-transform:uppercase}
.contact-form input,.contact-form textarea{width:100%;padding:12px 16px;border-radius:6px;font-family:var(--font-body);font-size:14px;border:1px solid rgba(176,124,255,.2);background:rgba(10,6,18,.6);color:#fff;transition:var(--tr);outline:none}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--cyan);box-shadow:0 0 16px rgba(98,216,255,.15)}
.contact-form input:invalid:not(:placeholder-shown),.contact-form textarea:invalid:not(:placeholder-shown){border-color:rgba(255,107,181,.52);box-shadow:0 0 0 1px rgba(255,107,181,.12),0 0 18px rgba(255,107,181,.12)}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,.3)}
.contact-form textarea{min-height:140px;resize:vertical}.contact-form .form-group{margin-bottom:16px}
.contact-form .form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px}
.contact-honeypot{display:none}
.contact-status{min-height:24px;margin-top:14px;font-size:14px;color:rgba(255,255,255,.62);opacity:0;transform:translateY(4px);transition:opacity .35s ease,transform .35s ease,text-shadow .35s ease}
.contact-status.is-visible{opacity:1;transform:translateY(0)}
.contact-status.is-success{color:#9ef7d6;text-shadow:0 0 18px rgba(158,247,214,.24)}
.contact-status.is-error{color:#ff9dc9;text-shadow:0 0 18px rgba(255,107,181,.18)}
.btn-send{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-pixel);font-size:9px;letter-spacing:1px;padding:12px 28px;border:2px solid var(--pink);border-radius:4px;background:rgba(255,107,181,.1);color:#fff;transition:var(--tr);box-shadow:0 0 12px rgba(255,107,181,.15);cursor:pointer}
.btn-send:hover{background:rgba(255,107,181,.25);box-shadow:0 0 24px rgba(255,107,181,.3);transform:translateY(-2px)}
.btn-send[aria-busy="true"]{box-shadow:0 0 24px rgba(255,107,181,.22)}
.btn-send[disabled]{opacity:.72;cursor:wait;transform:none}
.btn-alt{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-pixel);font-size:8px;letter-spacing:.5px;padding:10px 22px;border:1px solid rgba(176,124,255,.3);border-radius:4px;color:var(--purple-light);transition:var(--tr)}.btn-alt:hover{background:rgba(176,124,255,.1)}
@media(max-width:600px){.contact-form .form-row{grid-template-columns:1fr}}

/* FOOTER */
.site-footer{border-top:2px solid rgba(176,124,255,.12);margin-top:60px;background:rgba(10,6,18,.5)}
.footer-inner{max-width:1400px;margin:0 auto;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;font-family:var(--font-pixel);font-size:7px;letter-spacing:.5px;color:rgba(255,255,255,.4)}
@media(max-width:600px){.footer-inner{flex-direction:column;gap:8px;text-align:center}}

/* PIXEL MOTES (#13) */
.pixel-mote{position:fixed;pointer-events:none;z-index:9998;image-rendering:pixelated;opacity:0}
.pixel-mote--note{animation:moteDriftNote 7s ease-in-out infinite;filter:drop-shadow(0 0 4px currentColor) drop-shadow(0 0 12px currentColor);mix-blend-mode:screen;isolation:isolate}
.pixel-mote--note svg{display:block;transition:transform 1.02s cubic-bezier(.22,1,.36,1),filter 1.02s cubic-bezier(.22,1,.36,1)}
.pixel-mote--note::after{content:"";position:absolute;inset:-12px;border-radius:999px;background:radial-gradient(circle,currentColor 0%,transparent 72%);opacity:0;transform:scale(.56);filter:blur(7px);pointer-events:none;z-index:-1;transition:opacity 1.55s cubic-bezier(.19,1,.22,1),transform 1.7s cubic-bezier(.19,1,.22,1),filter 1.7s cubic-bezier(.19,1,.22,1)}
@keyframes moteDriftNote{0%{opacity:0;transform:translate(0,0) rotate(0deg)}15%{opacity:.55}85%{opacity:.2}100%{opacity:0;transform:translate(30px,-90vh) rotate(180deg)}}
.pixel-mote--diamond{animation:moteSway 8s ease-in-out infinite}
@keyframes moteSway{0%{opacity:0;transform:translate(0,0) scale(.8)}20%{opacity:.5}50%{transform:translate(20px,-50vh) scale(1.2)}80%{opacity:.15}100%{opacity:0;transform:translate(-10px,-95vh) scale(.6)}}
.pixel-mote--cross{animation:moteSpin 6s linear infinite}
@keyframes moteSpin{0%{opacity:0;transform:translate(0,0) rotate(0deg)}10%{opacity:.5}90%{opacity:.15}100%{opacity:0;transform:translate(-20px,-85vh) rotate(360deg)}}

/* LOADER */
.loader{position:fixed;inset:0;z-index:10000;background:var(--bg-deep);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .4s ease}.loader.done{opacity:0;pointer-events:none}
.loader-text{font-family:var(--font-pixel);font-size:12px;color:var(--purple-light);animation:loaderBlink 1s step-end infinite}
@keyframes loaderBlink{0%,100%{opacity:1}50%{opacity:0}}
.loader-bar{width:200px;height:8px;margin-top:20px;border:2px solid var(--purple);overflow:hidden}
.loader-fill{height:100%;width:0;background:linear-gradient(90deg,var(--purple),var(--cyan),var(--pink));animation:loaderFill 1.35s ease forwards}
@keyframes loaderFill{to{width:100%}}

/* EXTRA */
main{animation:pageIn .5s ease}@keyframes pageIn{from{opacity:0}to{opacity:1}}
.hero-photo-stack:hover .hero-note{filter:drop-shadow(0 0 10px currentColor) drop-shadow(0 0 26px currentColor)}
.hero-note:is(:hover,.note-hovered){opacity:1 !important;filter:drop-shadow(0 0 22px currentColor) drop-shadow(0 0 54px currentColor) drop-shadow(0 0 110px currentColor) brightness(2) saturate(1.28);z-index:4;animation-play-state:paused}
.hero-note:is(:hover,.note-hovered) svg{transform:scale(1.26);filter:drop-shadow(0 0 16px currentColor) brightness(1.48)}
.hero-note:is(:hover,.note-hovered)::after{opacity:.64;transform:scale(1.82);filter:blur(18px)}
.hero-note.note-cooling{opacity:.58 !important;filter:drop-shadow(0 0 14px currentColor) drop-shadow(0 0 32px currentColor) drop-shadow(0 0 64px currentColor) brightness(1.45) saturate(1.12);z-index:3}
.hero-note.note-cooling svg{transform:scale(1.1);filter:drop-shadow(0 0 8px currentColor) brightness(1.16)}
.hero-note.note-cooling::after{opacity:.3;transform:scale(1.28);filter:blur(14px)}
.note-trail{position:fixed;left:var(--trail-x);top:var(--trail-y);width:var(--trail-size);height:var(--trail-size);color:var(--trail-color);pointer-events:none;z-index:10002;mix-blend-mode:screen;filter:drop-shadow(0 0 16px currentColor) drop-shadow(0 0 40px currentColor) drop-shadow(0 0 92px currentColor);animation:noteTrailFloat 1.42s cubic-bezier(.19,1,.22,1) forwards}
.note-trail svg{width:100%;height:100%;display:block;animation:noteTrailGlyph 1.42s cubic-bezier(.19,1,.22,1) forwards}
.note-trail::after{content:"";position:absolute;inset:-16px;border-radius:999px;background:radial-gradient(circle,currentColor 0%,transparent 72%);opacity:.62;filter:blur(16px);animation:noteTrailAura 1.52s cubic-bezier(.19,1,.22,1) forwards}
@keyframes noteTrailFloat{0%{opacity:.94;transform:translate(-50%,-50%) rotate(var(--trail-rotate)) scale(1)}100%{opacity:0;transform:translate(calc(-50% + var(--trail-dx)),calc(-50% + var(--trail-dy))) rotate(calc(var(--trail-rotate) + var(--trail-spin))) scale(1.38)}}
@keyframes noteTrailGlyph{0%{transform:scale(1);filter:drop-shadow(0 0 16px currentColor) brightness(1.46)}100%{transform:scale(1.18);filter:drop-shadow(0 0 8px currentColor) brightness(1.08)}}
@keyframes noteTrailAura{0%{opacity:.62;transform:scale(.86);filter:blur(14px)}100%{opacity:0;transform:scale(2.3);filter:blur(22px)}}
@media(hover:hover){.pixel-mote--note{pointer-events:auto;cursor:pointer;transition:filter 1.12s cubic-bezier(.19,1,.22,1),opacity 1.12s cubic-bezier(.19,1,.22,1)}.pixel-mote--note:is(:hover,.note-hovered){opacity:1 !important;filter:drop-shadow(0 0 20px currentColor) drop-shadow(0 0 46px currentColor) drop-shadow(0 0 96px currentColor) brightness(1.95) saturate(1.25);z-index:9999;animation-play-state:paused}.pixel-mote--note:is(:hover,.note-hovered) svg{transform:scale(1.26);filter:drop-shadow(0 0 16px currentColor) brightness(1.48)}.pixel-mote--note:is(:hover,.note-hovered)::after{opacity:.6;transform:scale(1.78);filter:blur(17px)}.pixel-mote--note.note-cooling{opacity:.52 !important;filter:drop-shadow(0 0 12px currentColor) drop-shadow(0 0 28px currentColor) drop-shadow(0 0 58px currentColor) brightness(1.4) saturate(1.12)}.pixel-mote--note.note-cooling svg{transform:scale(1.08);filter:drop-shadow(0 0 8px currentColor) brightness(1.15)}.pixel-mote--note.note-cooling::after{opacity:.28;transform:scale(1.26);filter:blur(13px)}}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--purple),var(--cyan));border-radius:4px}
::selection{background:rgba(176,124,255,.35);color:#fff}
@media(max-width:600px){.hero-photo-stack{width:min(calc(100vw - 20px),430px);height:320px}.hero-note{filter:drop-shadow(0 0 6px currentColor)}}
@media(max-width:900px){.page-shell{padding:32px 20px 48px}.band-content{padding:64px 24px}.proj-grid,.contact-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:780px}}
@media(max-width:700px){.header-inner{padding:0 16px}.hero-content{padding:28px 16px 40px}.hero-photo{width:190px;height:190px;margin-bottom:12px}.hero h1{line-height:1.18;letter-spacing:1px}.hero-roles{gap:8px;margin-bottom:22px}.hero-role{font-size:7px;padding:8px 12px}.hero-desc{font-size:14px;padding:0 6px}.social-row{gap:10px;margin-bottom:24px}.social-icon{width:48px;height:48px}.band-content{padding:56px 20px}.band-content p{font-size:14px}.page-intro{margin-bottom:28px}.page-lead{font-size:14px}.proj-grid,.services-grid,.contact-grid{grid-template-columns:minmax(0,1fr)}.track{grid-template-columns:48px 1fr;align-items:start}.track-time{min-width:0;text-align:left}.about-wrap{gap:24px}.contact-form{padding:24px 18px}.modal-head{padding:16px 18px}.modal-body{padding:18px}.modal-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.header-inner{padding:0 14px;height:64px}.site-nav{top:64px}.logo-pixel{width:34px;height:34px;font-size:8px}.logo-name{font-size:16px}.logo-sub{display:none}.page-shell{padding:28px 14px 40px}.hero-photo-stack{width:min(calc(100vw - 12px),360px);height:280px}.hero-photo{width:172px;height:172px}.hero h1{font-size:clamp(24px,9vw,34px)}.hero-role{width:100%;justify-content:center}.track{grid-template-columns:42px 1fr;gap:10px;padding:12px 14px}.track-play{width:38px;height:38px}.track-title{font-size:8px;white-space:normal}.track-time{font-size:7px}.contact-card,.service-card{padding:22px}.contact-form{padding:20px 14px}.form-actions>*{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-note,.pixel-mote{display:none!important}}
