:root{--bg-primary:#090b10;--bg-secondary:#0f131c;--bg-card:#10151ebf;--bg-card-hover:#171e2cd9;--bg-card-solid:#121722;--bg-elevated:#1a2130;--border-subtle:#ffffff14;--border-medium:#ffffff24;--border-accent:#38bdf847;--border-glow:#38bdf873;--accent-cyan:#38bdf8;--accent-cyan-rgb:56, 189, 248;--accent-blue:#60a5fa;--accent-blue-rgb:96, 165, 250;--accent-emerald:#10b981;--accent-purple:#818cf8;--text-main:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-dim:#475569;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Outfit", "Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--shadow-sm:0 2px 8px #00000059;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 16px 40px #0000008c;--shadow-glow:0 0 30px #38bdf826;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.18s cubic-bezier(.16, 1, .3, 1);--transition-normal:.3s cubic-bezier(.16, 1, .3, 1);--transition-slow:.6s cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;max-width:100vw;position:relative;overflow-x:hidden}html{scroll-behavior:smooth;background-color:var(--bg-primary);color:var(--text-main);font-size:16px;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-primary);min-height:100vh;line-height:1.6}#root,.portfolio-app{width:100%;max-width:100vw;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(90deg,#ffffff05 1px,#0000 1px),linear-gradient(#ffffff05 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0}body:after{content:"";filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#38bdf814 0%,#60a5fa08 45%,#0000 70%);width:60vw;height:45vh;position:fixed;top:-15vh;left:20vw}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-main);letter-spacing:-.02em;font-weight:700;line-height:1.2}p{color:var(--text-secondary)}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}button{cursor:pointer;touch-action:manipulation;background:0 0;border:none;outline:none;font-family:inherit}.container{z-index:1;width:100%;max-width:1240px;margin:0 auto;padding:0 24px;position:relative}@media (width<=640px){.container{padding:0 16px}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#38bdf866}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.glass-panel:hover{border-color:var(--border-accent);box-shadow:var(--shadow-glow), var(--shadow-md)}.glass-card{-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);background:linear-gradient(135deg,#161c28a6 0%,#0d111abf 100%)}@media (width>=769px){.glass-card:hover{border-color:#38bdf859;transform:translateY(-4px);box-shadow:0 12px 30px #00000073,0 0 20px #38bdf81f}}.btn-primary{border-radius:var(--radius-full);color:#fff;letter-spacing:-.01em;min-height:44px;transition:all var(--transition-normal);cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:1px solid #fff3;justify-content:center;align-items:center;gap:10px;padding:12px 24px;font-size:.92rem;font-weight:600;display:inline-flex;box-shadow:0 4px 18px #0284c759}.btn-primary:active{transform:scale(.98)}@media (width>=769px){.btn-primary:hover{background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%);transform:translateY(-2px);box-shadow:0 6px 24px #0ea5e973}}.btn-secondary{border-radius:var(--radius-full);min-height:44px;color:var(--text-main);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-normal);cursor:pointer;touch-action:manipulation;background:#ffffff0d;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:.92rem;font-weight:600;display:inline-flex}.btn-secondary:active{transform:scale(.98)}@media (width>=769px){.btn-secondary:hover{border-color:var(--border-medium);background:#ffffff17;transform:translateY(-2px)}}.btn-accent{border-radius:var(--radius-md);min-height:42px;color:var(--accent-cyan);transition:all var(--transition-normal);cursor:pointer;touch-action:manipulation;background:#38bdf81a;border:1px solid #38bdf84d;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.88rem;font-weight:600;display:inline-flex}.badge-tech{border-radius:var(--radius-full);font-family:var(--font-mono);border:1px solid var(--border-subtle);color:#cbd5e1;white-space:normal;word-break:break-word;background:#ffffff0a;align-items:center;gap:6px;max-width:100%;padding:4px 10px;font-size:.74rem;font-weight:500;display:inline-flex}.badge-ai{color:#a5b4fc;background:#818cf81a;border-color:#818cf84d}.pulse-dot{background-color:var(--accent-emerald);width:8px;height:8px;box-shadow:0 0 10px var(--accent-emerald);border-radius:50%;flex-shrink:0;animation:2s ease-in-out infinite pulseBeacon}@keyframes pulseBeacon{0%,to{opacity:.8;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}}.section-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan);align-items:center;gap:8px;margin-bottom:10px;font-size:.78rem;font-weight:600;display:inline-flex}.section-tag:before{content:"//";opacity:.6}.section-title{letter-spacing:-.03em;color:#fff;margin-bottom:14px;font-size:clamp(1.8rem,5.5vw,2.75rem);font-weight:800;line-height:1.15}.section-subtitle{color:var(--text-secondary);max-width:640px;font-size:clamp(.92rem,2.8vw,1.05rem);line-height:1.6}.gradient-text{background:linear-gradient(135deg, #fff 40%, var(--accent-cyan) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.section-spacer{z-index:1;padding:80px 0;position:relative}@media (width<=768px){.section-spacer{padding:50px 0}}pre,code{font-family:var(--font-mono);max-width:100%}pre{-webkit-overflow-scrolling:touch;overflow-x:auto}input,textarea,select{font-family:var(--font-sans);max-width:100%;font-size:16px!important}
