@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700;800&family=Inter:wght@400;500;600&display=swap";
@keyframes stamp{0%{opacity:0;filter:blur(3px);transform:translateY(-18px)scaleY(1.3)}55%{opacity:1;filter:blur();transform:translateY(2px)scaleY(.96)}to{opacity:1;transform:translateY(0)scaleY(1)}}@keyframes exit{to{opacity:0;filter:blur(18px);transform:scale(1.07)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.3)rotate(-10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes scanline{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ripplePulse{0%{opacity:.7;transform:scale(1)}70%{opacity:0;transform:scale(1.6)}to{opacity:0}}@keyframes loadingPulse{0%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}to{opacity:.4;transform:scale(.8)}}@keyframes spinBorder{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes drawCheck{to{stroke-dashoffset:0}}@keyframes dotPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}@keyframes timelineFill{0%{height:0}to{height:100%}}@keyframes shineSlide{0%{opacity:.6;transform:translate(-100%)skew(-15deg)}to{opacity:0;transform:translate(300%)skew(-15deg)}}@keyframes projectDrop{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-60px)rotate(-2deg)}60%{opacity:1;clip-path:inset(0 0 0%);transform:translateY(6px)rotate(.5deg)}to{opacity:1;clip-path:inset(0 0 0%);transform:translateY(0)rotate(0)}}@keyframes clipReveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}@keyframes techHoverGlow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--tech-accent) 0%, transparent)}50%{box-shadow:0 0 16px 4px color-mix(in srgb, var(--tech-accent) 40%, transparent)}}@keyframes sectionIn{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes filterBarIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes phoneRing{0%,to{transform:rotate(0)}15%{transform:rotate(-18deg)}30%{transform:rotate(18deg)}45%{transform:rotate(-12deg)}60%{transform:rotate(12deg)}75%{transform:rotate(-5deg)}90%{transform:rotate(5deg)}}@keyframes gentleRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sliceOpen{0%{clip-path:inset(45% 0);opacity:0}to{clip-path:inset(0% 0);opacity:1}}@keyframes popCircle{0%{clip-path:circle(0%);opacity:0;transform:scale(.7)}to{clip-path:circle(80%);opacity:1;transform:scale(1)}}@keyframes navDotGlow{0%,to{box-shadow:0 0 10px 2px color-mix(in srgb, var(--accent) 45%, transparent)}50%{box-shadow:0 0 18px 5px color-mix(in srgb, var(--accent) 25%, transparent)}}@keyframes navRingExpand{0%{opacity:.9;transform:scale(1)}70%{opacity:0;transform:scale(2.6)}to{opacity:0;transform:scale(2.6)}}@keyframes themeIconSpin{0%{opacity:0;transform:rotate(-30deg)scale(.7)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes barFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes pillGlow{0%,to{box-shadow:0 4px 16px color-mix(in srgb, var(--accent) 35%, transparent)}50%{box-shadow:0 6px 28px color-mix(in srgb, var(--accent) 60%, transparent),0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}}:root{--font-display:Space Grotesk, sans-serif;--font-body:Inter, sans-serif}[data-theme=light]{--bg:#fff;--surface:#f8f8f8;--surface-2:#f0f0f0;--border:#e8e8e8;--text:#0f172a;--text-muted:#64748b;--text-light:#94a3b8;--item-bg:#f4f4f4;--accent:#3164f4;--accent-dim:#3164f41f;--accent-mid:#3164f44d;--dot-inactive:#d1d5db}[data-theme=dark]{--bg:#0a0a0a;--surface:#111;--surface-2:#1a1a1a;--border:#2a2a2a;--text:#f0f0f0;--text-muted:#909090;--text-light:#555;--item-bg:#1e1e1e;--accent:#3164f4;--accent-dim:#3164f41f;--accent-mid:#3164f44d;--dot-inactive:#333}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);height:100%;transition:background-color .35s;overflow:hidden}body{background:var(--bg);height:100%;min-height:100dvh;color:var(--text);overscroll-behavior:none;transition:background-color .35s,color .2s;overflow:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{list-style:none}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;outline:none}::selection{color:#fff;background:#3164f4}
