.floating-shapes{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.floating-shape{position:absolute;opacity:.08;animation-timing-function:linear;animation-iteration-count:infinite}.floating-shape.circle{border-radius:50%;background:var(--color-primary)}.floating-shape.square{background:var(--color-secondary);transform:rotate(45deg)}.floating-shape.triangle{width:0;height:0;background:transparent;border-left:30px solid transparent;border-right:30px solid transparent;border-bottom:52px solid var(--color-primary)}@keyframes float-1{0%{transform:translate(0) rotate(0)}50%{transform:translate(100px,-100px) rotate(180deg)}to{transform:translate(0) rotate(360deg)}}@keyframes float-2{0%{transform:translate(0) rotate(0)}50%{transform:translate(-80px,120px) rotate(-180deg)}to{transform:translate(0) rotate(-360deg)}}@keyframes float-3{0%{transform:translate(0) scale(1)}50%{transform:translate(60px,-80px) scale(1.3)}to{transform:translate(0) scale(1)}}@keyframes float-4{0%{transform:translate(0) rotate(0) scale(1)}33%{transform:translate(-50px,100px) rotate(120deg) scale(.8)}66%{transform:translate(80px,-60px) rotate(240deg) scale(1.2)}to{transform:translate(0) rotate(360deg) scale(1)}}@keyframes glitch-1{0%,to{transform:translate(0);opacity:1}20%{transform:translate(-2px,2px);opacity:.8}40%{transform:translate(2px,-2px);opacity:.8}60%{transform:translate(-2px,-2px);opacity:.8}80%{transform:translate(2px,2px);opacity:.8}}@keyframes glitch-2{0%,to{clip-path:inset(0);transform:translate(0)}10%{clip-path:inset(10% 0 85% 0);transform:translate(-5px)}20%{clip-path:inset(80% 0 0 0);transform:translate(5px)}30%{clip-path:inset(20% 0 60% 0);transform:translate(-5px)}40%{clip-path:inset(60% 0 20% 0);transform:translate(5px)}}@keyframes text-flicker{0%,to{opacity:1;text-shadow:0 0 10px var(--color-primary)}41%,43%,45%,47%{opacity:.7;text-shadow:0 0 20px var(--color-primary),0 0 30px var(--color-secondary)}42%,44%,46%,48%{opacity:1}}.glitch-text{position:relative;animation:glitch-1 .3s ease-in-out}.glitch-text:before,.glitch-text:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-text:before{animation:glitch-2 .3s ease-in-out;color:var(--color-primary);z-index:-1}.glitch-text:after{animation:glitch-2 .3s ease-in-out reverse;color:var(--color-secondary);z-index:-2}.cursor-trail{position:fixed;width:8px;height:8px;border-radius:50%;background:var(--color-primary);pointer-events:none;z-index:9998;box-shadow:0 0 15px var(--color-primary);animation:trail-fade .6s ease-out forwards}@keyframes trail-fade{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(.3)}}@keyframes h1-glitch-main{0%,to{transform:translate(0) skew(0);text-shadow:0 0 0 transparent}10%{transform:translate(-5px,2px) skew(-2deg);text-shadow:5px 0 0 rgba(0,255,255,.8),-5px 0 0 rgba(255,0,255,.8)}20%{transform:translate(5px,-2px) skew(2deg);text-shadow:-5px 0 0 rgba(255,0,0,.8),5px 0 0 rgba(0,255,0,.8)}30%{transform:translate(-3px,-3px) skew(1deg);text-shadow:3px 0 0 rgba(255,255,0,.8),-3px 0 0 rgba(0,0,255,.8)}40%{transform:translate(3px,3px) skew(-1deg);text-shadow:-3px 0 0 rgba(0,255,255,.7),3px 0 0 rgba(255,0,255,.7)}50%{transform:translate(0) skew(0);text-shadow:0 0 0 transparent}}@keyframes h1-glitch-slice{0%,to{clip-path:inset(0)}10%{clip-path:inset(15% 0 70% 0)}20%{clip-path:inset(60% 0 25% 0)}30%{clip-path:inset(30% 0 50% 0)}40%{clip-path:inset(50% 0 30% 0)}50%{clip-path:inset(0)}}@keyframes h1-glitch-color{0%,to{filter:hue-rotate(0deg) saturate(1)}20%{filter:hue-rotate(90deg) saturate(1.5)}40%{filter:hue-rotate(180deg) saturate(1.5)}60%{filter:hue-rotate(270deg) saturate(1.5)}80%{filter:hue-rotate(360deg) saturate(1)}}.glitch-h1{position:relative;display:inline-block;animation:h1-glitch-main .6s cubic-bezier(.25,.46,.45,.94)}.glitch-h1:before,.glitch-h1:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;opacity:.9}.glitch-h1:before{animation:h1-glitch-slice .6s steps(4),h1-glitch-color .6s ease-in-out;color:#0ff;z-index:-1;text-shadow:-4px 0 #ff00ff,-8px 0 #00ffff;mix-blend-mode:screen}.glitch-h1:after{animation:h1-glitch-slice .6s steps(4) reverse,h1-glitch-color .6s ease-in-out reverse;color:red;z-index:-2;text-shadow:4px 0 #00ff00,8px 0 #ff0000;mix-blend-mode:screen}.glitch-rgb:before{animation:glitch-2 .3s ease-in-out;color:red;text-shadow:-3px 0 #ff0000;opacity:.8}.glitch-rgb:after{animation:glitch-2 .3s ease-in-out reverse;color:#0ff;text-shadow:3px 0 #00ffff;opacity:.8}@keyframes glitch-shake{0%,to{transform:translate(0)}10%{transform:translate(-4px,3px)}20%{transform:translate(4px,-3px)}30%{transform:translate(-3px,-4px)}40%{transform:translate(3px,4px)}50%{transform:translate(-2px,2px)}60%{transform:translate(2px,-2px)}}.glitch-shake{animation:glitch-shake .3s ease-in-out}.glitch-shake:before{color:#f0f;text-shadow:-2px 0 #ff00ff;opacity:.7}.glitch-shake:after{color:#0f0;text-shadow:2px 0 #00ff00;opacity:.7}@keyframes glitch-scan{0%,to{transform:translate(0);clip-path:inset(0)}10%{transform:translate(-3px);clip-path:inset(0 0 90% 0)}20%{transform:translate(3px);clip-path:inset(10% 0 80% 0)}30%{transform:translate(-2px);clip-path:inset(20% 0 70% 0)}40%{transform:translate(2px);clip-path:inset(30% 0 60% 0)}50%{transform:translate(-3px);clip-path:inset(40% 0 50% 0)}60%{transform:translate(3px);clip-path:inset(50% 0 40% 0)}70%{transform:translate(-2px);clip-path:inset(60% 0 30% 0)}80%{transform:translate(2px);clip-path:inset(70% 0 20% 0)}90%{transform:translate(-3px);clip-path:inset(80% 0 10% 0)}}.glitch-scan{animation:glitch-scan .4s steps(10) forwards}.glitch-scan:before{animation:glitch-scan .4s steps(10) forwards;color:#ff0;text-shadow:-2px 0 #ffff00,0 2px #ff00ff;opacity:.85;mix-blend-mode:screen}.glitch-scan:after{animation:glitch-scan .4s steps(10) reverse forwards;color:#0ff;text-shadow:2px 0 #00ffff,0 -2px #ff0000;opacity:.85;mix-blend-mode:screen}@keyframes glitch-distort{0%,to{transform:translate(0) scale(1);filter:blur(0px);opacity:1}15%{transform:translate(-5px,2px) scale(1.05,.95);filter:blur(1px);opacity:.9}30%{transform:translate(5px,-2px) scale(.95,1.05);filter:blur(0px);opacity:.85}45%{transform:translate(-3px,-3px) scale(1.03,.97);filter:blur(1px);opacity:.9}60%{transform:translate(4px,3px) scale(.97,1.03);filter:blur(0px);opacity:.95}75%{transform:translate(-2px,1px) scale(1.02,.98);filter:blur(1px);opacity:.9}}.glitch-distort{animation:glitch-distort .5s ease-in-out}.glitch-distort:before{animation:glitch-distort .5s ease-in-out;color:#f60;text-shadow:-4px 0 #ff6600,0 4px #00ffff;opacity:.75;filter:saturate(2)}.glitch-distort:after{animation:glitch-distort .5s ease-in-out reverse;color:#0f8;text-shadow:4px 0 #00ff88,0 -4px #ff00ff;opacity:.75;filter:saturate(2)}@keyframes pulse-green{0%,to{box-shadow:0 0 #22c55e00;border-color:#ffffff40}50%{box-shadow:0 0 30px 10px #22c55e66;border-color:#22c55ecc}}@keyframes pulse-cyan{0%,to{box-shadow:0 0 #0ff0;border-color:#ffffff40}50%{box-shadow:0 0 30px 10px #0ff6;border-color:#0ffc}}@keyframes pulse-orange{0%,to{box-shadow:0 0 #fb923c00;border-color:#ffffff40}50%{box-shadow:0 0 30px 10px #fb923c66;border-color:#fb923ccc}}.pulse-green{animation:pulse-green 1.5s ease-in-out}.pulse-cyan{animation:pulse-cyan 1.5s ease-in-out}.pulse-orange{animation:pulse-orange 1.5s ease-in-out}@keyframes particle-float{0%{transform:translateY(0) translate(0);opacity:0}10%{opacity:.3}90%{opacity:.3}to{transform:translateY(-100vh) translate(50px);opacity:0}}.particle{position:absolute;width:4px;height:4px;background:var(--color-primary);border-radius:50%;animation:particle-float linear infinite;pointer-events:none}.chatbot-container{font-family:inherit;position:fixed;bottom:0;right:0;z-index:9999}.chatbot-fab{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);z-index:10000}.chatbot-fab-button{width:64px;height:64px;border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:0 8px 24px #00ffff4d;transition:all .3s ease}.chatbot-fab-button:hover{transform:scale(1.1);box-shadow:0 12px 32px #0ff6}.chatbot-fab-button:focus{outline:none;box-shadow:0 0 0 4px #00ffff4d}.chatbot-window{position:fixed;bottom:calc(64px + var(--spacing-lg) + var(--spacing-sm));right:var(--spacing-lg);width:400px;height:600px;z-index:9999;background:#0f172af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(0,255,255,.3);border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000080,0 0 40px #00ffff26;display:flex;flex-direction:column;overflow:hidden;animation:chatbot-slide-up .3s ease-out}@keyframes chatbot-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chatbot-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid rgba(0,255,255,.2);background:#00ffff0d;flex-shrink:0;position:relative}.chatbot-header-title{display:flex;align-items:center;gap:var(--spacing-sm)}.chatbot-status-dot{width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-primary);animation:chatbot-pulse 2s infinite}@keyframes chatbot-pulse{0%,to{opacity:1}50%{opacity:.5}}.chatbot-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary);margin:0}.chatbot-close-btn,.chatbot-clear-btn{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.chatbot-close-btn:hover,.chatbot-clear-btn:hover{color:var(--color-text-primary);background:#ffffff1a;border-radius:var(--radius-sm)}.chatbot-clear-btn:hover{color:#ff6b6b}.chatbot-messages{flex:1;padding:var(--spacing-md);overflow-y:auto;scroll-behavior:smooth}.chatbot-messages::-webkit-scrollbar{width:6px}.chatbot-messages::-webkit-scrollbar-track{background:#ffffff0d;border-radius:var(--radius-sm)}.chatbot-messages::-webkit-scrollbar-thumb{background:#00ffff4d;border-radius:var(--radius-sm)}.chatbot-messages::-webkit-scrollbar-thumb:hover{background:#00ffff80}.chatbot-input-container{padding:var(--spacing-md);border-top:1px solid rgba(0,255,255,.2);background:#00ffff08;flex-shrink:0}.chatbot-input-wrapper{display:flex;align-items:center;gap:var(--spacing-xs);background:#0f172acc;border:1px solid rgba(71,85,105,.5);border-radius:var(--radius-full);padding:4px;transition:all .2s ease}.chatbot-input-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ff3}.chatbot-input{flex:1;background:transparent;border:none;color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);outline:none}.chatbot-input::placeholder{color:var(--color-text-muted)}.chatbot-input:disabled{opacity:.5;cursor:not-allowed}.chatbot-send-btn{background:var(--gradient-primary);border:none;color:#fff;padding:10px;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.chatbot-send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #00ffff4d}.chatbot-send-btn:disabled{opacity:.5;cursor:not-allowed;background:var(--color-text-muted)}.chatbot-send-btn:focus{outline:none;box-shadow:0 0 0 3px #00ffff4d}@media (max-width: 768px){.chatbot-window{position:fixed;top:60px;left:0;right:0;bottom:88px;width:100%;height:auto;border-radius:0}.chatbot-fab{bottom:var(--spacing-md);right:var(--spacing-md)}.chatbot-fab-button{width:56px;height:56px}.chatbot-input-container{padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom))}.chatbot-send-btn{padding:12px;min-width:44px;min-height:44px}}@media (max-width: 480px){.chatbot-fab{bottom:var(--spacing-sm);right:var(--spacing-sm)}}:root[data-theme=purple]{--color-primary: #A855F7;--color-primary-dark: #7C3AED;--color-secondary: #EC4899;--color-bg-primary: #000000;--color-bg-secondary: #09090B;--color-bg-tertiary: #18181B;--color-bg-card: rgba(168, 85, 247, .02);--color-text-primary: #FFFFFF;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-muted: rgba(255, 255, 255, .4);--color-border: rgba(168, 85, 247, .1);--color-border-hover: rgba(168, 85, 247, .4);--gradient-primary: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));--gradient-bg: linear-gradient(to bottom, var(--color-bg-secondary), var(--color-bg-primary));--gradient-text: linear-gradient(to bottom right, white, var(--color-primary));--shadow-glow: 0 0 20px rgba(168, 85, 247, .3);--shadow-glow-hover: 0 20px 40px rgba(168, 85, 247, .15)}:root[data-theme=green]{--color-primary: #10B981;--color-primary-dark: #059669;--color-secondary: #FBBF24;--color-bg-primary: #000000;--color-bg-secondary: #09090B;--color-bg-tertiary: #18181B;--color-bg-card: rgba(16, 185, 129, .02);--color-text-primary: #FFFFFF;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-muted: rgba(255, 255, 255, .4);--color-border: rgba(16, 185, 129, .1);--color-border-hover: rgba(16, 185, 129, .4);--gradient-primary: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));--gradient-bg: linear-gradient(to bottom, var(--color-bg-secondary), var(--color-bg-primary));--gradient-text: linear-gradient(to bottom right, white, var(--color-primary));--shadow-glow: 0 0 20px rgba(16, 185, 129, .3);--shadow-glow-hover: 0 20px 40px rgba(16, 185, 129, .15)}:root[data-theme=light]{--color-primary: #0EA5E9;--color-primary-dark: #0284C7;--color-secondary: #F97316;--color-bg-primary: #F5F7FA;--color-bg-secondary: #EEF2F6;--color-bg-tertiary: #E5E9EE;--color-bg-card: rgba(14, 165, 233, .03);--color-text-primary: #0F172A;--color-text-secondary: rgba(15, 23, 42, .7);--color-text-muted: rgba(15, 23, 42, .5);--color-border: rgba(14, 165, 233, .15);--color-border-hover: rgba(14, 165, 233, .4);--gradient-primary: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));--gradient-bg: linear-gradient(to bottom, var(--color-bg-primary), var(--color-bg-secondary));--gradient-text: linear-gradient(to bottom right, var(--color-primary-dark), var(--color-primary));--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .15);--shadow-glow: 0 0 30px rgba(14, 165, 233, .2);--shadow-glow-hover: 0 20px 40px rgba(14, 165, 233, .15)}:root[data-theme=light] .app:before{background-image:linear-gradient(rgba(14,165,233,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.05) 1px,transparent 1px)}:root[data-theme=light] .header{background-color:#fffffff2;border-bottom:1px solid var(--color-border)}:root[data-theme=light] .header:before{background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:root[data-theme=light] .hero-glow-1{background:var(--color-primary);opacity:.08}:root[data-theme=light] .hero-glow-2{background:var(--color-secondary);opacity:.08}:root[data-theme=light] .theme-selector,:root[data-theme=light] .language-selector{position:relative;z-index:1050!important}:root[data-theme=light] .theme-dropdown-toggle,:root[data-theme=light] .language-dropdown-toggle{background-color:#0ea5e914;color:var(--color-text-primary);border:1px solid var(--color-border)}:root[data-theme=light] .theme-dropdown-toggle:hover,:root[data-theme=light] .language-dropdown-toggle:hover{background-color:#0ea5e926;border-color:var(--color-primary)}:root[data-theme=light] .theme-dropdown-menu,:root[data-theme=light] .language-dropdown-menu{background-color:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);box-shadow:var(--shadow-lg)}:root[data-theme=light] .theme-dropdown-menu li a,:root[data-theme=light] .language-dropdown-menu li a{color:var(--color-text-primary)}:root[data-theme=light] .theme-dropdown-menu li a:hover,:root[data-theme=light] .language-dropdown-menu li a:hover{background-color:#0ea5e91a;color:var(--color-primary)}.portfolio-section{padding:var(--spacing-2xl) 0;background:transparent;position:relative}.portfolio-section:before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;filter:blur(140px);opacity:.11;pointer-events:none;z-index:0;background:var(--color-secondary);top:-320px;left:-200px}.portfolio-section:after{content:"";position:absolute;width:680px;height:680px;border-radius:50%;filter:blur(145px);opacity:.12;pointer-events:none;z-index:0;background:var(--color-primary);bottom:-340px;right:-200px}.portfolio-container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}.portfolio-header{text-align:center;margin-bottom:var(--spacing-2xl)}.portfolio-title{font-size:var(--font-size-4xl);font-weight:700;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-sm)}.portfolio-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.carousel-wrapper{position:relative;padding:0 var(--spacing-xl)}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-full);width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--color-primary);transition:all var(--transition-base);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.carousel-btn:hover{background:var(--color-primary);color:var(--color-bg-primary);border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.carousel-btn-prev{left:0}.carousel-btn-next{right:0}.carousel-track{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media (max-width: 768px){.carousel-track{grid-template-columns:1fr}}.project-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-base)}.project-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-glow-hover);transform:translateY(-4px)}.project-image{position:relative;width:100%;height:500px;overflow:hidden;cursor:pointer}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.project-card:hover .project-image img{transform:scale(1.05)}.project-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-base);color:var(--color-primary)}.project-image:hover .project-overlay{opacity:1}.category-badge{position:absolute;top:var(--spacing-sm);left:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.category-ecommerce{background:linear-gradient(135deg,#fb923c33,#fb923c1a);border:1px solid rgba(251,146,60,.3);color:#fb923c}.category-education{background:linear-gradient(135deg,#3b82f633,#3b82f61a);border:1px solid rgba(59,130,246,.3);color:#3b82f6}.category-ai{background:linear-gradient(135deg,#a855f733,#a855f71a);border:1px solid rgba(168,85,247,.3);color:#a855f7}.category-fintech{background:linear-gradient(135deg,#22c55e33,#22c55e1a);border:1px solid rgba(34,197,94,.3);color:#22c55e}.category-mobile{background:linear-gradient(135deg,#ec489933,#ec48991a);border:1px solid rgba(236,72,153,.3);color:#ec4899}.category-crm{background:linear-gradient(135deg,#06b6d433,#06b6d41a);border:1px solid rgba(6,182,212,.3);color:#06b6d4}.category-b2b{background:linear-gradient(135deg,#6366f133,#6366f11a);border:1px solid rgba(99,102,241,.3);color:#6366f1}.status-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.status-live{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.status-dev{background:#eab3081a;border:1px solid rgba(234,179,8,.3);color:#eab308}.status-soon{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.project-info{padding:var(--spacing-xl)}.project-name{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.project-desc{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.6}.tech-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.tech-tag{padding:8px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:500;color:var(--color-text-secondary)}.tech-tag-more{padding:4px 12px;background:var(--color-primary);color:var(--color-bg-primary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.project-actions{display:flex;gap:var(--spacing-sm)}.btn-primary{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--gradient-primary);color:var(--color-bg-primary);border-radius:var(--radius-md);font-weight:600;transition:all var(--transition-base)}.btn-primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-secondary{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);transition:all var(--transition-base)}.btn-secondary:hover{border-color:var(--color-border-hover);color:var(--color-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--spacing-lg);animation:fadeIn var(--transition-base)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);max-width:1200px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp var(--transition-base)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-primary);transition:all var(--transition-base);z-index:10}.modal-close:hover{background:var(--color-primary);color:var(--color-bg-primary);border-color:var(--color-primary)}.screenshot-carousel{position:relative;width:100%;aspect-ratio:16/9;background:var(--color-bg-primary)}.screenshot-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.screenshot-image{width:100%;height:100%;object-fit:contain}.screenshot-btn{position:absolute;top:50%;transform:translateY(-50%);background:#0009;border:1px solid var(--color-border);border-radius:var(--radius-full);width:56px;height:56px;display:flex;align-items:center;justify-content:center;color:var(--color-primary);transition:all var(--transition-base);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.screenshot-btn:hover{background:var(--color-primary);color:var(--color-bg-primary);border-color:var(--color-primary)}.screenshot-btn-prev{left:var(--spacing-md)}.screenshot-btn-next{right:var(--spacing-md)}.modal-info{padding:var(--spacing-xl)}.modal-title{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.modal-description{font-size:var(--font-size-lg);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.modal-tech-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.modal-tech-tag{padding:var(--spacing-xs) var(--spacing-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary)}.screenshot-dots{display:flex;justify-content:center;gap:var(--spacing-sm)}.dot{width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);border:1px solid var(--color-border);transition:all var(--transition-base)}.dot:hover{border-color:var(--color-border-hover)}.dot-active{background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 0 10px #00ffff80}@media (max-width: 768px){.portfolio-title{font-size:var(--font-size-3xl)}.carousel-wrapper{padding:0}.carousel-btn{width:40px;height:40px}.project-image{height:200px}.modal-overlay{padding:var(--spacing-sm)}.modal-info{padding:var(--spacing-lg)}.modal-title{font-size:var(--font-size-2xl)}.screenshot-btn{width:48px;height:48px}}.cookie-consent-overlay{position:fixed;bottom:0;left:0;right:0;z-index:99999;padding:var(--spacing-md);pointer-events:none;animation:slideUp .4s ease-out}.cookie-consent-banner{max-width:1200px;margin:0 auto;background:#18181bfa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 10px 40px #00000080;pointer-events:auto;position:relative}.cookie-close-btn{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.5rem;border-radius:var(--radius-sm);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.cookie-close-btn:hover{background:#ffffff1a;color:var(--color-text-primary)}.cookie-content{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-right:2rem}.cookie-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fb923c1a;border:1px solid rgba(251,146,60,.3);border-radius:var(--radius-md);color:var(--color-secondary)}.cookie-text{flex:1}.cookie-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.cookie-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.6;margin:0}.cookie-link{color:var(--color-primary);text-decoration:underline;transition:color .2s ease}.cookie-link:hover{color:var(--color-secondary)}.cookie-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;flex-wrap:wrap}.cookie-btn{padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all .2s ease;border:none;font-family:inherit;white-space:nowrap}.cookie-btn-primary{background:linear-gradient(135deg,var(--color-secondary) 0%,#ff8c42 100%);color:var(--color-text-primary);box-shadow:0 4px 15px #fb923c4d}.cookie-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #fb923c80}.cookie-btn-secondary{background:#ffffff0d;color:var(--color-text-secondary);border:1px solid rgba(255,255,255,.2)}.cookie-btn-secondary:hover{background:#ffffff1a;color:var(--color-text-primary);border-color:#ffffff4d}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.cookie-consent-banner{padding:var(--spacing-md)}.cookie-content{gap:var(--spacing-sm)}.cookie-icon{width:40px;height:40px}}@media (max-width: 768px){.cookie-consent-overlay{padding:var(--spacing-sm)}.cookie-content{flex-direction:column;text-align:center;padding-right:0;margin-bottom:var(--spacing-md)}.cookie-icon{margin:0 auto}.cookie-close-btn{top:var(--spacing-sm);right:var(--spacing-sm)}.cookie-actions{flex-direction:column-reverse}.cookie-btn{width:100%}.cookie-title{font-size:var(--font-size-base)}.cookie-description{font-size:var(--font-size-sm)}}
