:root{--bg-primary: #000000;--bg-secondary: #0a0a0a;--text-primary: #ffffff;--text-secondary: #9ca3af;--accent-green: #22c55e;--accent-cyan: #06b6d4;--accent-purple: #a855f7;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px)}.light-theme{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b}.glass-nav{background:#000000d9;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:1px solid rgba(34,197,94,.15);box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff14 inset,0 0 60px #22c55e14}.light-theme .glass-nav{background:#ffffffd9;border:1px solid rgba(34,197,94,.2);box-shadow:0 8px 32px #00000026,0 0 0 1px #fffc inset,0 0 40px #22c55e1a}.noise-texture{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}.mobile-drawer-glass{background:#0a0a0af2;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border-left:1px solid rgba(255,255,255,.1);box-shadow:-10px 0 40px #00000080}.light-theme .mobile-drawer-glass{background:#fffffff2;border-left:1px solid rgba(0,0,0,.1);box-shadow:-10px 0 40px #00000026}.mobile-nav-item{opacity:0;transform:translate(20px);animation:slideInFromRight .4s ease-out forwards}@keyframes slideInFromRight{to{opacity:1;transform:translate(0)}}.pt-safe-top{padding-top:max(1rem,var(--safe-area-top))}.pb-safe-bottom{padding-bottom:max(1rem,var(--safe-area-bottom))}.will-change-transform{will-change:transform,opacity}.duration-400{transition-duration:.4s}.touch-manipulation{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@keyframes spin-once{0%{transform:rotate(0)}to{transform:rotate(180deg)}}.animate-spin-once{animation:spin-once .3s ease-out forwards}@keyframes ping-slow{0%{transform:scale(1);opacity:.5}75%,to{transform:scale(1.3);opacity:0}}.animate-ping-slow{animation:ping-slow 1.5s cubic-bezier(0,0,.2,1) infinite}.mobile-bottom-nav-glass{background:#000000eb;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:1px solid rgba(34,197,94,.2);box-shadow:0 -8px 32px #00000080,0 0 0 1px #ffffff1a inset,0 0 40px #22c55e1a}.light-theme .mobile-bottom-nav-glass{background:#fffffff2;border:1px solid rgba(34,197,94,.25);box-shadow:0 -8px 32px #00000026,0 0 0 1px #fffc inset,0 0 30px #22c55e1f}.drop-shadow-glow{filter:drop-shadow(0 0 12px rgba(34,197,94,.7)) drop-shadow(0 0 4px rgba(34,197,94,.9))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.stagger-animation>*{opacity:0;animation:fadeSlideIn .5s ease-out forwards}.stagger-animation>*:nth-child(1){animation-delay:0ms}.stagger-animation>*:nth-child(2){animation-delay:.1s}.stagger-animation>*:nth-child(3){animation-delay:.2s}.stagger-animation>*:nth-child(4){animation-delay:.3s}.stagger-animation>*:nth-child(5){animation-delay:.4s}.stagger-animation>*:nth-child(6){animation-delay:.5s}@keyframes skillFill{0%{width:0%}}.skill-bar{animation:skillFill 1s ease-out forwards}.glow-green{box-shadow:0 0 20px #22c55e4d}.glow-purple{box-shadow:0 0 20px #a855f74d}.text-glow:hover{text-shadow:0 0 10px currentColor}*{transition-property:background-color,border-color;transition-duration:.3s;transition-timing-function:ease-in-out}.preload *{transition:none!important}
