@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wdth,wght@100..125,200..800&family=Josefin+Slab:ital,wght@0,300..700;1,0..700&display=swap");:root{--primary:#37b4f8;--accent:#c4b5e2;--accent-alt:#ffcc5c;--accent-alt-rgb:255,204,92;--bg-dark:#050518;--glass:rgba(10,10,35,0.28);--glass-card:rgba(12,12,40,0.32);--glass-surface:rgba(10,10,32,0.38);--glass-border:rgba(127,249,255,0.13);--glass-edge:inset 1px 1px 0 rgba(255,255,255,0.05);--neural-glow:0 0 18px rgba(126,249,255,0.3),0 0 36px rgba(243,249,157,0.15);--transition:.4s cubic-bezier(.4,2,.6,1);--text:#e0e6f0;--text-glow:0 1px 16px rgba(3,3,18,0.9),0 0 6px rgba(5,5,24,0.7);--font-sans:"Space Grotesk","Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-serif:"Megrim","Josefin Slab",serif;--font-display:"Space Grotesk","Megrim","Josefin Slab","Playfair Display",serif;font-size:clamp(14px,0.9rem+0.5vw,16px)}.skip-link{position:absolute;top:-100%;left:1rem;z-index:10000;padding:.8em 1.5em;background:var(--primary);color:var(--bg-dark);font-weight:700;border-radius:0 0 8px 8px;text-decoration:none;transition:top .2s ease}.skip-link:focus{top:0}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;margin:0;padding:0;background:var(--bg-dark);color:var(--text);font-family:var(--font-sans);font-size:clamp(14px,0.9rem+0.5vw,16px);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.65;min-height:100vh;overflow-x:hidden;scroll-behavior:smooth}body{font-family:var(--font-sans);display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}h1{font-size:clamp(2.5rem,1.9rem+2.5vw,3.5rem)}h2{font-size:clamp(2rem,1.6rem+1.8vw,2.8rem)}h3{font-size:clamp(1.6rem,1.4rem+1.2vw,2rem)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;letter-spacing:.02em;color:var(--accent)}h2::after{background:linear-gradient(90deg,var(--accent-alt),transparent)}p{font-family:var(--font-sans);margin-bottom:1.5em;line-height:1.6;text-shadow:var(--text-glow)}a{color:var(--primary);text-decoration:none;transition:color .3s ease,text-shadow .3s ease}a:hover{color:var(--accent);text-shadow:0 0 8px rgba(126,249,255,0.5)}@keyframes borderBreathe{0%,100%{border-color:rgba(127,249,255,0.12)}50%{border-color:rgba(127,249,255,0.22)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:rgba(8,8,25,0.3)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--primary),var(--accent));border-radius:5px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(var(--accent),var(--primary))}select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvgxmlns='http://www.w3.org/2000/svg'width='16'height='16'fill='%2337B4F8'viewBox='001616'%3E%3Cpathd='M7.24711.142.4515.658C1.8855.0132.34543.2044h9.592a11001.7531.659l-4.7965.48a11001-1.5060z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;background-size:16px 12px;padding-right:2.5em}select:focus{border-color:var(--primary);box-shadow:0 0 12px rgba(126,249,255,0.6);transform:translateY(-2px)}#bg-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;transition:opacity .8s cubic-bezier(.4,2,.6,1)}.fade-out{opacity:0 !important;pointer-events:none;transition:opacity .6s cubic-bezier(.4,2,.6,1)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;background:rgba(8,8,25,0.5);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-right:1.5px solid var(--glass-border);box-shadow:2px 0 32px rgba(0,255,255,0.08),var(--glass-edge);z-index:1000;display:flex;flex-direction:column;align-items:stretch;transition:transform .45s cubic-bezier(.25,.8,.3,1);transform:translateX(-100%);overflow-y:auto;padding:4em 0 2em 0;will-change:transform}.sidebar.open{transform:translateX(0);transform-origin:left}.sidebar::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 30% 30%,rgba(126,249,255,0.05),transparent 70%),radial-gradient(circle at 70% 70%,rgba(243,249,157,0.05),transparent 70%);pointer-events:none}.sidebar nav{display:flex;flex-direction:column;gap:1.2em;margin-top:2em;background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;position:relative}.sidebar a{padding:.8em 1.5em;font-size:.9em;color:var(--primary);white-space:nowrap;border-radius:8px;margin:0 .5em;transition:background var(--transition),color var(--transition),transform .2s;text-align:left}.sidebar a:hover,.sidebar a:focus{background:linear-gradient(90deg,rgba(126,249,255,0.25),rgba(243,249,157,0.25));color:var(--accent);transform:translateX(5px)}.sidebar nav a{color:var(--primary);text-decoration:none;font-family:var(--font-serif);font-weight:600;font-size:1.1em;letter-spacing:.04em;padding:.4em 1em;border-radius:8px;transition:background var(--transition),color var(--transition),box-shadow var(--transition);box-shadow:0 0 0 transparent;position:relative;overflow:hidden}.sidebar nav a::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);transition:left .7s}.sidebar nav a:hover::before{left:100%}.sidebar nav a:hover,.sidebar nav a:focus{background:linear-gradient(90deg,rgba(126,249,255,0.25),rgba(243,249,157,0.25));color:var(--accent);box-shadow:0 0 16px rgba(126,249,255,0.6),0 0 32px rgba(243,249,157,0.2)}#sidebar-toggle{background:0;border:0;color:var(--primary);font-size:1em;padding:.5em;cursor:pointer;position:fixed;left:1em;top:1em;z-index:1001;transition:all .4s ease;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:rgba(8,8,25,0.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 0 12px rgba(126,249,255,0.15),var(--glass-edge);will-change:transform,color,box-shadow}#sidebar-toggle:hover,#sidebar-toggle.active{color:var(--accent);box-shadow:0 0 20px rgba(243,249,157,0.5);transform:rotate(90deg)}main{max-width:1000px;width:90%;margin:3em auto 2em auto;flex:1;background:var(--glass);border:1.5px solid var(--glass-border);border-radius:24px;padding:2.5em 2em;box-shadow:var(--neural-glow),var(--glass-edge);position:relative;z-index:2;animation:fadeInMain 1.2s cubic-bezier(.4,2,.6,1),borderBreathe 8s ease-in-out infinite;transition:filter .4s ease,transform .4s ease,opacity 1s ease-in-out}@keyframes fadeInMain{from{opacity:0;transform:translateY(40px) scale(0.98)}to{opacity:1;transform:none}}.hero{width:100%;min-height:400px;background:linear-gradient(120deg,rgba(5,5,24,0.3) 30%,rgba(126,249,255,0.08) 100%);display:flex;align-items:center;justify-content:center;border-radius:16px;margin-bottom:2em;box-shadow:0 8px 48px rgba(126,249,255,0.08),var(--glass-edge);position:relative;z-index:2;overflow:hidden;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border:1px solid rgba(127,249,255,0.08)}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 30%,rgba(126,249,255,0.1),transparent 30%),radial-gradient(circle at 70% 60%,rgba(243,249,157,0.1),transparent 40%),radial-gradient(circle at 40% 80%,rgba(255,204,92,0.08),transparent 35%);z-index:-1}.hero-content{display:grid;place-items:center;text-align:center;gap:24px;max-inline-size:60ch;padding:40px 32px;border-radius:1rem}@supports not(backdrop-filter:blur(1px)){.hero__content{background:0;border:0}}.hero-content::before{content:'';position:absolute;width:200%;height:200%;top:-50%;left:-50%;background:radial-gradient(circle at 30% 30%,rgba(126,249,255,0.08),transparent 30%),radial-gradient(circle at 70% 70%,rgba(243,249,157,0.08),transparent 30%);animation:rotate 20s linear infinite;pointer-events:none}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.hero-title{margin:0;color:var(--accent)}.hero-tagline{font-family:var(--font-sans);font-size:1.125rem;max-inline-size:45ch;margin:0 auto}.hero-btn{display:inline-block;margin-top:1em;padding:.8em 2em;font-size:1.2em;background:linear-gradient(90deg,var(--primary),var(--accent));color:#111;border-radius:12px;font-family:var(--font-serif);font-weight:bold;text-decoration:none;box-shadow:0 0 24px rgba(126,249,255,0.4);transition:background .3s,color .3s,box-shadow .3s,transform .2s;transform-origin:center;position:relative;overflow:hidden}.hero-btn::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,0.2) 0,transparent 60%);transform:rotate(0);transition:transform .5s}.hero-btn:hover::before{transform:rotate(180deg)}.hero-btn:hover{background:linear-gradient(90deg,var(--accent),var(--primary));color:#000;box-shadow:0 0 48px rgba(243,249,157,0.5);transform:scale(1.05)}.featured-project-insert{text-align:center;max-width:900px;margin:2em auto;padding:1.5em;background:rgba(12,12,38,0.2);border-radius:20px;border:1px solid var(--glass-border);backdrop-filter:blur(8px) saturate(1.3);-webkit-backdrop-filter:blur(8px) saturate(1.3);box-shadow:var(--glass-edge);position:relative;animation:slideDown .8s ease-out}@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.featured-divider{height:2px;background:linear-gradient(90deg,transparent,var(--primary),var(--accent),transparent);margin:1.5em 0;border-radius:2px;opacity:.6}.featured-badge{display:inline-block;background:linear-gradient(90deg,var(--accent),var(--primary));color:var(--bg-dark);padding:.3em 1em;border-radius:20px;font-size:.9em;font-weight:600;margin-bottom:1em;box-shadow:0 4px 15px rgba(196,181,226,0.3);animation:subtle-pulse 3s infinite}@keyframes subtle-pulse{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.featured-project-image{margin:1.5em auto;border-radius:16px;overflow:hidden;box-shadow:0 10px 40px rgba(126,249,255,0.2);max-width:600px}.featured-title{font-size:1.8em;color:var(--accent);margin:.5em 0;font-family:var(--font-serif);font-weight:600}.featured-project-image img{margin:1em 0;border-radius:12px;overflow:hidden;box-shadow:0 6px 20px rgba(126,249,255,0.15);width:100%;height:auto;max-height:400px;object-fit:cover;transition:transform .5s ease}.featured-project-image:hover img{transform:translateY(-3px);box-shadow:0 8px 25px rgba(126,249,255,0.25)}.featured-project-links{display:flex;gap:1em;justify-content:center;margin-top:1.5em}.featured-description{font-size:1.05em;line-height:1.6;margin:1em 0;color:var(--text);opacity:.95}.featured-btn{padding:.6em 1.5em;background:linear-gradient(90deg,var(--primary),var(--accent));color:#111;border-radius:10px;font-size:.95em;font-weight:600;text-decoration:none;transition:all .3s ease;box-shadow:0 3px 10px rgba(126,249,255,0.3);display:inline-flex;align-items:center;gap:.5em}.featured-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(126,249,255,0.4);background:linear-gradient(90deg,var(--accent),var(--primary))}.featured-btn-secondary{background:transparent;border:1.5px solid var(--primary);color:var(--primary)}.featured-btn-secondary:hover{background:var(--primary);color:var(--bg-dark);border-color:var(--primary)}.project-card.featured-card{border:2px solid var(--accent);box-shadow:0 0 30px rgba(196,181,226,0.3);position:relative}.featured-indicator{animation:pulse 2s infinite}.admin-featured-controls{animation:fadeIn .5s ease}.feature-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(196,181,226,0.4)}.contact-wrap{display:grid;gap:2.5rem;place-items:center;max-width:640px;margin-inline:auto;text-align:center}.contact-head h1{margin-bottom:.3rem}.contact-head p{margin-inline:auto;text-align:left;color:var(--text)}.contact-icons{list-style:none;padding:0;display:flex;justify-content:center;gap:2.2rem}.contact-icons a{font-size:1.8rem;color:var(--primary);transition:color .3s,transform .3s}.contact-icons a:hover{color:var(--accent);transform:translateY(-3px) scale(1.15)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2em;margin-top:1.5em}.projects-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2.5em;margin-top:1.5em}.about-me{display:flex;background:var(--glass-card);backdrop-filter:blur(3px) saturate(1.3);-webkit-backdrop-filter:blur(3px) saturate(1.3);align-items:center;gap:2.5em;margin-bottom:1.5em}.profile-pic{width:160px;height:160px;object-fit:cover;border:4px solid var(--primary);box-shadow:0 0 32px rgba(126,249,255,0.4);border-radius:50%;transition:transform .5s ease,box-shadow .5s ease}.profile-pic:hover{transform:scale(1.05) rotate(5deg);box-shadow:0 0 48px rgba(126,249,255,0.6),0 0 24px rgba(243,249,157,0.4)}footer{text-align:center;padding:2em 1em;margin-top:auto;background:rgba(8,8,25,0.22);border-top:1px solid rgba(127,249,255,0.1);box-shadow:0 -4px 24px rgba(126,249,255,0.04),var(--glass-edge);position:relative;z-index:2}footer::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 20%,rgba(126,249,255,0.05),transparent 60%),radial-gradient(circle at 80% 80%,rgba(243,249,157,0.05),transparent 60%);pointer-events:none;z-index:-1}footer p{margin-bottom:1.2em;position:relative;width:100%;text-align:center}.social-links{display:flex;justify-content:center;gap:1.5em;margin-top:1em}.social-links a{font-size:1.5em;height:40px;width:40px;display:flex;align-items:center;justify-content:center;color:var(--primary);border-radius:50%;transition:color .4s,transform .3s,background .4s;background:rgba(8,8,25,0.12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);position:relative}.social-links a::before{content:'';position:absolute;top:-8px;left:-8px;right:-8px;bottom:-8px;background:radial-gradient(circle,rgba(126,249,255,0.2),transparent);border-radius:50%;opacity:0;transform:scale(0);transition:transform .3s,opacity .3s}.social-links a:hover::before{opacity:1;transform:scale(1)}.social-links a:hover{color:var(--accent);transform:translateY(-3px) scale(1.2);background:rgba(8,8,25,0.4)}.container{width:min(72rem,90%);margin-inline:auto;padding-inline:1rem}@media(max-width:900px){main{padding:2em 1.5em;width:95%}.hero-content{padding:2em 1.2em;max-width:90%}.about-me{flex-direction:column;text-align:center;gap:1.5em}.photo-grid,.projects-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media(max-width:768px){.featured-project-insert{padding:1em;margin:1.5em -.5em}.featured-title{font-size:1.5em}.featured-project-links{flex-direction:column;align-items:center}.featured-btn{width:180px;justify-content:center}.featured-project-thumb{max-width:100%}}@media(max-width:700px){.hero h1{font-size:2.2em}.hero p{font-size:1em}.hero-btn{font-size:1em}h1{font-size:2.2em}h2{font-size:1.8em}.sidebar{width:85%;max-width:300px}}@media(max-width:600px){.hero{min-height:300px}.hero__title{font-size:2rem}}@media(max-width:500px){main{padding:1.5em 1em;margin:2em auto}.photo-grid,.projects-list{grid-template-columns:1fr;gap:1.5em}.hero-content{padding:1.5em 1em}.hero h1{font-size:1.8em}h1{font-size:1.8em}h2{font-size:1.5em}.project-card,.posts article{padding:1.2em 1em}.featured-project-insert{border-radius:15px}.featured-title{font-size:1.3em}.featured-description{font-size:.95em}.featured-btn{font-size:.9em;padding:.5em 1.2em}}.single-post{padding:.5em;max-width:800px;margin:0 auto}.post-header{margin-bottom:2em;position:relative}.post-title{color:var(--accent);font-size:clamp(2rem,1.6rem+2vw,3rem);margin-bottom:.5em;font-family:var(--font-serif);font-weight:700;position:relative}.post-title::after{content:'';position:absolute;bottom:-10px;left:0;width:80px;height:3px;background:linear-gradient(90deg,var(--primary),transparent)}.post-meta{font-size:.95em;margin-bottom:1.5em;color:var(--primary);display:flex;gap:1.5em;flex-wrap:wrap}.post-date{display:inline-flex;align-items:center}.post-project{display:inline-flex;align-items:center;gap:.4em}.post-project a{color:var(--accent);transition:color .3s,text-shadow .3s}.post-project a:hover{color:var(--primary);text-shadow:0 0 5px rgba(126,249,255,0.7)}.post-image{margin-bottom:2em;border-radius:16px;overflow:hidden;box-shadow:0 5px 25px rgba(126,249,255,0.15)}.post-feature-img{width:100%;max-height:500px;object-fit:cover;transition:transform .5s ease}.post-feature-img:hover{transform:scale(1.02)}.post-content{font-size:1.05rem;line-height:1.7;margin-bottom:2.5em}.post-content p{margin-bottom:1.2em}.post-content h2{margin:1.8em 0 .8em;color:var(--accent);font-size:1.6em}.post-content h3{margin:1.5em 0 .7em;color:var(--accent);font-size:1.3em}.post-content blockquote{border-left:3px solid var(--primary);padding-left:1em;margin-left:1em;color:rgba(255,255,255,0.9);font-style:italic}.post-content pre{background:rgba(6,6,24,0.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1em;border-radius:8px;overflow-x:auto;margin:1.5em 0;border-left:3px solid var(--primary)}.post-content code{font-family:monospace;background:rgba(8,8,26,0.28);padding:.2em .4em;border-radius:3px}.post-content a{color:var(--primary);text-decoration:underline;text-underline-offset:1px;transition:color .3s}.post-content a:hover{color:var(--accent)}.post-links{display:flex;gap:1em;margin:2em 0}.github-link{display:inline-flex;align-items:center;gap:.5em;padding:.7em 1.5em;background:rgba(126,249,255,0.15);border-radius:8px;color:var(--primary);font-weight:600;transition:background .3s,transform .2s,box-shadow .3s;margin-top:1.5em}.github-link:hover{background:rgba(243,249,157,0.2);transform:translateY(-3px);box-shadow:0 5px 15px rgba(126,249,255,0.3)}.post-navigation{margin-top:3em;padding-top:1.5em;border-top:1px solid rgba(126,249,255,0.2)}.back-link{display:inline-flex;align-items:center;gap:.5em;padding:.7em 1.2em;background:rgba(8,8,25,0.22);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:8px;color:var(--primary);transition:background .4s,transform .3s,box-shadow .4s}.back-link:hover{background:rgba(16,16,44,0.38);color:var(--accent);transform:translateY(-2px);box-shadow:0 5px 15px rgba(126,249,255,0.15)}.posts article,.projects-list .project-card{background:var(--glass-card);margin-bottom:2.5em;padding:1.8em 1.5em;border-radius:18px;box-shadow:0 0 16px rgba(126,249,255,0.1),var(--glass-edge);border:1.5px solid var(--glass-border);backdrop-filter:blur(5px) saturate(1.3);-webkit-backdrop-filter:blur(5px) saturate(1.3);transition:transform .5s cubic-bezier(0.23,1,0.32,1),opacity .5s cubic-bezier(0.23,1,0.32,1),box-shadow var(--transition),background .4s ease;position:relative;overflow:hidden;opacity:0;transform:translateY(24px);will-change:opacity,transform}.posts article.visible,.projects-list .project-card.visible{opacity:1;transform:translateY(0);will-change:auto}.posts article::before,.projects-list .project-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at top left,rgba(126,249,255,0.1),transparent 70%),radial-gradient(circle at bottom right,rgba(243,249,157,0.1),transparent 70%),radial-gradient(circle at center,rgba(255,204,92,0.05),transparent 60%);z-index:-1}.posts article:hover,.project-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 10px 40px rgba(126,249,255,0.2),0 5px 20px rgba(243,249,157,0.12),var(--glass-edge);background:rgba(14,14,44,0.42)}.post-thumb{width:45px;height:45px;border-radius:5px}.post-thumb,.profile-pic,.photo-card img,.project-card img{max-width:100%;border-radius:12px;box-shadow:0 0 32px rgba(126,249,255,0.3),0 0 8px rgba(243,249,157,0.15);transition:transform .5s ease,box-shadow .5s ease;object-fit:cover}.post-thumb:hover,.photo-card img:hover,.project-card img:hover{transform:scale(1.03);box-shadow:0 0 48px rgba(126,249,255,0.4),0 0 16px rgba(243,249,157,0.25)}.posts article h2{margin-top:0;position:relative;display:inline-block}.posts article h2::after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--primary),transparent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.posts article:hover h2::after{transform:scaleX(1)}.post-card .date{color:var(--primary);font-size:.9em;margin-bottom:1em;opacity:.8}.post-card h2{margin-right:15px;margin-top:-15px}.photo-card{background:var(--glass-card);padding:1.2em;border-radius:14px;text-align:center;height:auto;border:1.5px solid var(--glass-border);box-shadow:0 0 10px rgba(126,249,255,0.06),var(--glass-edge);backdrop-filter:blur(5px) saturate(1.3);-webkit-backdrop-filter:blur(5px) saturate(1.3);transition:box-shadow var(--transition),transform var(--transition),background .4s;display:flex;flex-direction:column;position:relative;overflow:hidden}.photo-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 30% 30%,rgba(126,249,255,0.08),transparent 50%),radial-gradient(circle at 70% 70%,rgba(243,249,157,0.08),transparent 50%),radial-gradient(circle at 50% 50%,rgba(255,204,92,0.05),transparent 50%);opacity:0;transition:opacity .5s ease;z-index:-1}.photo-card:hover::before{opacity:1}.photo-card:hover{box-shadow:0 8px 32px rgba(243,249,157,0.15),0 4px 16px rgba(126,249,255,0.15),var(--glass-edge);transform:scale(1.02) translateY(-5px);background:rgba(14,14,44,0.42)}.photo-card img{width:100%;height:auto;min-height:300px;max-height:350px;object-fit:contain;margin-bottom:1em;border-radius:8px}.photo-card .photo-link{display:block;width:100%;overflow:hidden;border-radius:8px;margin-bottom:1em;text-align:center}.photo-card .caption{margin-top:auto;color:var(--text);font-size:.9em}.photo-related{margin-top:1em;font-size:.9em;background:rgba(12,12,38,0.18);border-radius:8px;padding:.8em}.photo-related h4{margin-top:0;font-size:1em;margin-bottom:.5em}.photo-related ul{list-style:none;padding-left:0;margin:0}.photo-related li{margin-bottom:.3em}.project-card{padding:1.4em;border-radius:16px;background:var(--glass-card);text-align:center;border:1.5px solid var(--glass-border);box-shadow:0 0 10px rgba(126,249,255,0.08),var(--glass-edge);backdrop-filter:blur(8px) saturate(1.3);-webkit-backdrop-filter:blur(8px) saturate(1.3);transition:box-shadow var(--transition),transform var(--transition),background .4s;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.project-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at top left,rgba(126,249,255,0.08),transparent 60%),radial-gradient(circle at bottom right,rgba(243,249,157,0.08),transparent 60%),radial-gradient(circle at center,rgba(255,204,92,0.05),transparent 60%);z-index:-1;opacity:0;transition:opacity .5s ease}.project-card:hover::before{opacity:1}.project-card img{width:100%;height:180px;object-fit:cover;border-radius:10px;margin-bottom:1em;transition:transform .5s ease,box-shadow .5s ease}.project-card h3{margin-top:0;margin-bottom:.7em;position:relative;display:inline-block}.project-card h3::after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--primary),transparent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.project-card:hover h3::after{transform:scaleX(1)}.project-card p{margin-bottom:1.5em;flex-grow:1}.project-card .project-links{margin-top:auto;display:flex;justify-content:center;gap:1em}.project-card a{display:inline-block;padding:.6em 1.2em;background:linear-gradient(90deg,rgba(126,249,255,0.2),rgba(243,249,157,0.01));border-radius:8px;color:var(--primary);font-weight:600;transition:background var(--transition),color var(--transition),box-shadow var(--transition),transform .2s;position:relative;overflow:hidden}.project-card a::before{content:'';position:absolute;top:-100%;left:-100%;width:300%;height:300%;background:radial-gradient(circle,rgba(255,255,255,0.2) 0,transparent 70%);transition:transform .5s ease;transform:scale(0)}.project-card a:hover::before{transform:scale(1);animation:ripple-small 2s linear infinite}@keyframes ripple-small{from{transform:translate(-30%,-30%) scale(1)}to{transform:translate(-30%,-30%) scale(1.2);opacity:0}}.project-card a:hover{background:linear-gradient(90deg,rgba(243,249,157,0.3),rgba(126,249,255,0.3));color:var(--accent);box-shadow:0 0 16px rgba(243,249,157,0.4);transform:translateY(-3px)}.newpost-wrap{display:grid;gap:2rem;max-width:720px;margin-inline:auto}.post-form{display:grid;gap:1.6rem}.post-form label{display:flex;flex-direction:column;color:var(--primary)}.post-form label.full{grid-column:1/-1}.flex-row{display:flex;gap:1rem;flex-wrap:wrap}.flex-grow{flex:1}.file-input{display:inline-flex;align-items:center;position:relative;gap:.5rem;cursor:pointer;background:rgba(12,12,38,0.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1.5px solid var(--glass-border);border-radius:10px;padding:.8em 1.2em;transition:background .4s}.file-input input[type="file"]{display:none}.file-input .file-name{display:block;font-size:.9em;margin-top:.4em;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-input .preview{display:block;margin-top:.6em;max-width:160px;max-height:120px;border-radius:8px;box-shadow:0 0 12px rgba(0,0,0,.25);object-fit:cover}.file-input:hover{background:rgba(79,211,248,.15)}.file-input input{display:none}.char-count{font-size:.8rem;text-align:right;opacity:.7;margin-top:.2rem}.post-form textarea{resize:vertical}.post-form small{font-weight:400;color:var(--accent);font-size:.8rem}.send-btn i{margin-right:.5rem}.contact-form{display:grid;gap:1.4rem}.contact-form label{display:flex;flex-direction:column;text-align:left;color:var(--primary)}.contact-form label.full{grid-column:1/-1}.contact-form .send-btn{justify-self:center;padding:.7em 2.2em;font-size:1rem}.new-post-form{display:flex;flex-direction:column;gap:1.5em;margin-top:1.5em}input,textarea,button{font-size:1em;border-radius:8px;border:1.5px solid var(--glass-border);padding:.8em 1em;margin-top:.2em;background:rgba(8,8,28,0.3);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition),transform .2s}input:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 12px rgba(126,249,255,0.6);transform:translateY(-2px)}label{color:var(--primary);margin-bottom:.3em;display:block;font-weight:500}button{background:linear-gradient(90deg,var(--primary),var(--accent));color:#111;font-weight:bold;cursor:pointer;border:0;box-shadow:0 0 16px rgba(126,249,255,0.3);transition:background var(--transition),color var(--transition),box-shadow var(--transition),transform .2s;position:relative;overflow:hidden}button:hover,button:focus{background:linear-gradient(90deg,var(--accent),var(--primary));color:#000;box-shadow:0 0 32px rgba(243,249,157,0.5);transform:translateY(-3px)}button::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,0.3) 0,transparent 70%);opacity:0;transition:opacity .3s}button:hover::before{opacity:1;animation:ripple 1s linear}@keyframes ripple{from{transform:rotate(0)}to{transform:rotate(360deg)}}.delete-btn{background:linear-gradient(90deg,#ff6e6e,#ff9e9e);padding:.5em 1em;margin-top:1em;margin-left:.5em;margin-right:.5em;color:#111;width:15%}.delete-btn:hover{background:linear-gradient(90deg,#ff5e5e,#ff8e8e);box-shadow:0 0 16px rgba(255,110,110,0.4)}.flashes{list-style:none;padding:0;margin-bottom:1.5em}.flashes li,.no-posts-msg,.error-msg{padding:.8em 1.2em;border-radius:8px;margin-bottom:1em;animation:fadeIn .5s ease-out}.flashes li.success{color:#00ff95;background:rgba(0,255,149,0.15);border:1px solid rgba(0,255,149,0.3);text-shadow:0 0 8px rgba(0,255,149,0.5)}.flashes li.error,.error-msg{color:#ff6e6e;background:rgba(255,110,110,0.15);border:1px solid rgba(255,110,110,0.3);text-shadow:0 0 8px rgba(255,110,110,0.5)}.no-posts-msg{text-align:center;background:rgba(126,249,255,0.1);border:1px solid rgba(126,249,255,0.2);padding:2em;color:var(--primary);border-radius:12px;margin:2em 0;animation:fadeIn .8s ease-out}.end-of-posts-msg{text-align:center;padding:1.5em;margin:2em 0;background:linear-gradient(90deg,rgba(126,249,255,0.08),rgba(243,249,157,0.08));border-radius:12px;border:1px solid var(--glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--primary);font-family:var(--font-serif);font-size:1.1em;animation:fadeIn .8s ease-out;box-shadow:0 0 15px rgba(126,249,255,0.1)}.end-of-posts-msg i{margin-right:.5em;color:var(--accent)}.responsive-iframe-container{position:relative;overflow:hidden;padding-top:56.25%;margin-bottom:1.5em}.responsive-iframe-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.video-player-container{margin-bottom:1.5em}.video-player-container iframe{max-width:100%;border-radius:12px}.music-card .post-image img.post-thumb{width:100%;height:auto;max-height:200px;object-fit:cover}.review-card .post-image img.post-feature-img,.video-card .post-image img.post-feature-img{max-height:250px;object-fit:cover}.review-item-title h2{font-size:1.4em;color:var(--text);margin-bottom:.5em;font-weight:500}.review-full-content{margin-top:1.5em}@media(max-width:768px){.single-post{padding:.5em}.post-title{font-size:1.8rem}.post-content{font-size:1rem}.post-feature-img{max-height:350px}}.post-meta .music-item-type{font-style:italic;opacity:.9}.post-meta .music-item-type i{margin-right:.4em}.music-item-type-detail,.review-category-detail,.video-source-type-detail,.video-duration-detail{font-style:italic;opacity:.8}.music-item-type-detail i,.review-category-detail i,.video-source-type-detail i,.video-duration-detail i{margin-right:.3em}.music-links a{margin-right:10px}.spotify-embed-compact{display:flex;flex-direction:column;align-items:center;margin-bottom:1em;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.2);transition:box-shadow .3s ease}.spotify-embed-compact iframe{display:block;border-radius:12px}.spotify-embed-compact:hover{box-shadow:0 6px 25px rgba(29,185,84,0.3)}.spotify-embed-wrapper{position:relative;width:100%;padding-bottom:75%;height:0;overflow:hidden;margin-bottom:2em;border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,0.2);transition:box-shadow .3s ease}.spotify-embed-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:12px}.spotify-embed-wrapper:hover{box-shadow:0 6px 25px rgba(29,185,84,0.3)}.spotify-player-controls{display:flex;justify-content:center;align-items:center;padding:1em 0;margin-top:.5em}.quick-play-btn{display:none;gap:.5em;background:linear-gradient(90deg,#1db954,#1ed760);color:white;border:0;border-radius:25%;width:40px;height:40px;padding:.8em 1.5em;font-size:.7em;font-weight:600;cursor:pointer;align-items:center;justify-content:center;transition:background-color .3s ease,transform .3s ease;box-shadow:0 4px 15px rgba(29,185,84,0.4);min-width:160px}.quick-play-btn:hover{background:linear-gradient(90deg,#1ed760,#1db954);transform:translateY(-2px);box-shadow:0 6px 20px rgba(29,185,84,0.6)}.quick-play-btn i{font-size:1em}.standalone-play-btn{display:none;align-items:center;gap:.5em;background:linear-gradient(90deg,#1db954,#1ed760);color:white;border:0;border-radius:8px;padding:1em 2em;font-weight:600;cursor:pointer;font-size:.9rem;box-shadow:0 4px 15px rgba(29,185,84,0.4);transition:all .3s ease;min-width:180px;justify-content:center}.standalone-play-btn:hover{background:linear-gradient(90deg,#1ed760,#1db954);box-shadow:0 6px 20px rgba(29,185,84,0.6);transform:translateY(-2px)}.standalone-play-btn i{font-size:1.1em}.general-spotify-play-btn{display:inline-flex;align-items:center;gap:.5em;padding:.6em 1.2em;background:#1db954;color:white;border:0;border-radius:20px;font-size:.9em;font-weight:600;cursor:pointer;transition:all .3s ease}.general-spotify-play-btn:hover{background:#1ed760;transform:translateY(-2px);box-shadow:0 4px 12px rgba(29,185,84,0.3)}.spotify-connect-btn{display:none;position:fixed;bottom:20px;left:20px;background:#1db954;color:white;border:0;padding:.8em 1.5em;border-radius:25px;font-size:.7em;font-weight:600;cursor:pointer;align-items:center;gap:.5em;box-shadow:0 4px 12px rgba(29,185,84,0.3);transition:all .3s ease;z-index:1000}.spotify-connect-btn:hover{background:#1ed760;transform:translateY(-2px);box-shadow:0 6px 20px rgba(29,185,84,0.4)}.player-actions{display:flex;gap:.8em;align-items:center}.player-action-btn{background:transparent;border:1px solid var(--glass-border);color:var(--text);width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:.9em;opacity:.7}.player-action-btn:hover{opacity:1;background:rgba(55,180,248,0.15);color:var(--primary);border-color:var(--primary);transform:translateY(-1px)}#player-music-page-btn:hover{color:var(--accent);border-color:var(--accent);background:rgba(196,181,226,0.15)}#player-disconnect-btn:hover{color:#ff6e6e;border-color:#ff6e6e;background:rgba(255,110,110,0.15)}.mini-player{display:none;position:fixed;bottom:0;left:0;right:0;background:rgba(8,8,25,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:2px solid var(--glass-border);box-shadow:0 -4px 32px rgba(0,255,255,0.1);z-index:999;transition:transform .3s ease,opacity .3s ease}.mini-player.visible{display:flex}@keyframes slideUpPlayer{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.player-content{display:flex;align-items:center;justify-content:space-between;padding:1em 2em;gap:2em;max-width:1200px;margin:0 auto}.player-track-info{display:flex;align-items:center;gap:1em;flex:1;min-width:0}.player-album-art{width:50px;height:50px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.3);transition:transform .3s ease}.player-album-art:hover{transform:scale(1.05)}.player-text-info{flex:1;overflow:hidden}.player-track-name{color:var(--text);font-weight:600;font-size:.95em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.2em}.player-artist-name{color:var(--primary);font-size:.85em;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-controls{display:flex;align-items:center;gap:1em}.player-btn{background:transparent;border:2px solid var(--glass-border);color:var(--primary);width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:1em}.player-btn:hover{background:rgba(55,180,248,0.2);color:var(--accent);transform:scale(1.1)}.player-btn:active{transform:scale(0.95)}#player-play-pause-btn.player-play-btn{background:linear-gradient(90deg,var(--primary),var(--accent));color:#111;font-size:1.1rem;width:45px;height:45px;border:0}#player-play-pause-btn.player-play-btn:hover{background:linear-gradient(90deg,var(--accent),var(--primary));color:#000;box-shadow:0 0 15px rgba(126,249,255,0.5)}.player-progress{display:flex;align-items:center;gap:.8em;flex:1;max-width:300px}.player-time{font-size:.85em;color:var(--text);opacity:.8;min-width:40px;text-align:center}.player-progress .progress-bar{flex:1;height:4px;background:rgba(255,255,255,0.1);border-radius:2px;overflow:hidden;cursor:pointer;position:relative}.player-progress .progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px;transition:width .1s linear;box-shadow:0 0 6px rgba(126,249,255,0.5)}.player-progress .progress-bar:hover .progress-fill{box-shadow:0 0 10px rgba(126,249,255,0.8)}body:has(.mini-player[style*="flex"]) footer,body:has(.mini-player.visible) footer{padding-bottom:calc(4em + 70px)}.spotify-status-message{position:fixed;top:20px;right:20px;background:rgba(8,8,25,0.95);border:1px solid var(--glass-border);padding:12px 16px;border-radius:8px;color:var(--text);font-size:.9rem;z-index:1001;opacity:0;transform:translateX(100%);transition:opacity .3s ease,transform .3s ease}.spotify-status-message.show{opacity:1;transform:translateX(0)}.spotify-status-message.success{border-color:#1db954;background:rgba(29,185,84,0.2);color:#1db954}.spotify-status-message.error{border-color:#ff6e6e;background:rgba(255,110,110,0.2);color:#ff6e6e}@media(max-width:768px){.spotify-connect-btn{bottom:70px;left:10px;padding:.6em 1.2em;font-size:.85em}.quick-play-btn{padding:.7em 1.2em;font-size:.85em;min-width:140px}.standalone-play-btn{padding:.8em 1.5em;font-size:.9em;min-width:160px}.spotify-player-controls{padding:.8em 0}.player-content{padding:.8em 1em;flex-wrap:wrap;gap:1em}.player-track-info{flex:1 1 100%;order:1}.player-controls{order:2}.player-progress{flex:1 1 100%;order:3;max-width:none}.player-album-art{width:40px;height:40px}.player-btn{width:35px;height:35px;font-size:.9em}#player-play-pause{width:45px;height:45px;font-size:1.1em}}@media(max-width:500px){.quick-play-btn{padding:.6em 1em;font-size:.8em;min-width:120px}.standalone-play-btn{padding:.7em 1.2em;font-size:.85em;min-width:140px}.spotify-player-controls{padding:.6em 0}.player-content{padding:.6em .8em}.player-track-name,.player-artist-name{font-size:.85em}.spotify-status-message{right:10px;left:10px;font-size:.9em}}#bg-canvas{transition:opacity .8s ease}.animation-toggle{position:fixed;bottom:15px;right:15px;background:rgba(8,8,25,0.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1.5px solid var(--glass-border);color:var(--primary);width:24px;height:36px;border-radius:50%;font-size:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1001;transition:all .4s ease;box-shadow:0 0 10px rgba(126,249,255,0.1),var(--glass-edge)}.animation-toggle:hover,.animation-toggle:focus{color:var(--accent);background:rgba(20,20,50,0.8);box-shadow:0 0 20px rgba(243,249,157,0.4);transform:scale(1.1)}.animation-toggle[aria-checked="false"]{color:var(--accent-alt);border-color:var(--accent-alt)}.animation-toggle[aria-checked="false"]:hover{background:rgba(20,20,50,0.9);box-shadow:0 0 20px rgba(255,204,92,0.5)}.performance-notice{position:fixed;bottom:70px;right:15px;background:rgba(8,8,25,0.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);padding:.5em 1em;border-radius:8px;font-size:.8em;max-width:240px;color:var(--text);z-index:1000;box-shadow:0 4px 12px rgba(0,0,0,0.15),var(--glass-edge);opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease;pointer-events:none}.performance-notice.show{opacity:1;transform:translateY(0);pointer-events:all}.performance-notice button{background:var(--primary);color:#000;border:0;padding:.3em .6em;margin-top:.5em;border-radius:4px;cursor:pointer;font-size:.9em}.progress-bar{width:280px;height:4px;background:rgba(255,255,255,0.1);border-radius:2px;margin-top:15px;overflow:hidden;position:relative}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--accent));position:absolute;top:0;left:0;box-shadow:0 0 10px var(--primary);transition:width .3s ease-in-out}.loader{margin:2em auto;position:relative;width:60px;height:60px;transition:opacity .5s ease-out,transform .5s ease-out}.loader::before,.loader::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:var(--primary);animation:spin 1.5s linear infinite}.loader::before{z-index:10}.loader::after{border:3px solid transparent;border-bottom-color:var(--accent);animation:spin 2s linear infinite reverse}.loader.pulsing{animation:pulse 1s infinite alternate}.loader.disappearing{opacity:0;transform:scale(0.8)}.fade-in{opacity:0;transform:translateY(24px);will-change:opacity,transform;transition:opacity .5s cubic-bezier(0.23,1,0.32,1),transform .5s cubic-bezier(0.23,1,0.32,1)}.fade-in.visible{opacity:1;transform:translateY(0);will-change:auto}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes pulse{0%,100%{opacity:.7}50%{opacity:1}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media(max-width:500px){.animation-toggle{width:40px;height:40px;font-size:1em;bottom:10px;right:10px}.performance-notice{bottom:60px;right:10px;max-width:200px;font-size:.75em}}