@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700&family=Syne:wght@700;800&family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap";:root{--bg-primary: #0a0a0c;--bg-secondary: #121214;--text-primary: #f2f2f2;--text-secondary: #a1a1aa;--accent-primary: #d4af37;--accent-secondary: #aa8c2c;--dot-color: rgba(212, 175, 55, .15);--dot-color-light: rgba(170, 140, 44, .2);--border-subtle: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--border-color: rgba(255, 255, 255, .1);--card-bg: rgba(255, 255, 255, .03);--card-hover: rgba(255, 255, 255, .06);--accent-gold: var(--accent-primary);--color-typescript: #3178c6;--color-python: #3776ab;--color-golang: #00add8;--color-rust: #dea584;--font-sans: "Space Grotesk", var(--font-fallback-sans);--font-heading: "Outfit", var(--font-fallback-sans);--font-logo: "Syne", sans-serif;--font-accent: "Outfit", sans-serif;--font-serif: "Playfair Display", serif;--font-fallback-sans: system-ui, -apple-system, sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--max-width: 1400px;--nav-height: 80px;--radius-sm: 4px;--radius-md: 12px;--transition-fast: .2s;--ease-out: cubic-bezier(.25, 1, .5, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6;margin:0}.app-container{background-color:var(--bg-primary);background-image:radial-gradient(var(--dot-color) 1px,transparent 1px);background-size:24px 24px;background-attachment:fixed;min-height:100dvh;color:var(--text-primary);transition:background-color .3s ease,color .3s ease}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f4f4f5;--text-primary: #18181b;--text-secondary: #52525b;--border-subtle: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .2);--dot-color: var(--dot-color-light);--border-color: rgba(0, 0, 0, .08);--card-bg: rgba(0, 0, 0, .02);--card-hover: rgba(0, 0, 0, .04)}.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background:transparent;z-index:1000;border-bottom:none}.nav-container{display:flex;align-items:center;justify-content:space-between;height:100%}.nav-logo{font-family:var(--font-logo);font-size:1.1rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;text-decoration:none;position:relative;z-index:1001}.logo-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--border-subtle);background-color:var(--bg-secondary)}.nav-actions{display:flex;align-items:center;gap:var(--space-8)}.nav-links-wrapper{display:flex;align-items:center}.nav-links{display:flex;gap:var(--space-8)}.nav-controls{display:flex;align-items:center;gap:var(--space-4);position:relative;z-index:1001}.theme-toggle{background:none;border:1px solid var(--border-subtle);padding:.5rem;border-radius:50%;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:all .3s ease}.theme-toggle:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;background:none;border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;padding:0 10px;z-index:1001}.hamburger-line{display:block;width:100%;height:2px;background-color:var(--text-primary);transition:all .3s ease;border-radius:1px}.menu-toggle.active .hamburger-line:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.active .hamburger-line:nth-child(2){opacity:0}.menu-toggle.active .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-link{font-size:.9375rem;font-weight:500;color:var(--text-secondary);position:relative;text-decoration:none;transition:color .3s ease}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background-color:var(--accent-primary);border-radius:2px}@media(max-width:800px){.logo-text{display:none}.nav-container{padding:0 var(--space-4)}.nav-actions{gap:var(--space-4)}.menu-toggle{display:flex}.nav-links-wrapper{position:fixed;inset:0;background-color:var(--bg-primary);z-index:1000;flex-direction:column;justify-content:center;align-items:center;transform:translate(100%);transition:transform .4s cubic-bezier(.23,1,.32,1)}.nav-links-wrapper.open{transform:translate(0)}.nav-links{flex-direction:column;align-items:center;gap:var(--space-8)}.nav-link{font-size:2rem;font-family:var(--font-heading)}}.footer{border-top:1px solid var(--border-subtle);padding:var(--space-8) 0;margin-top:auto;background-color:var(--bg-secondary)}.footer-content{display:flex;justify-content:space-between;align-items:center}.play-link{position:relative;display:flex;align-items:center;gap:8px}.play-arrow{display:flex;align-items:center;color:var(--accent-primary);opacity:.8;animation:bounceLeft 1.5s infinite var(--ease-in-out)}.play-link:hover .play-arrow{opacity:1;animation:none;transform:translate(-4px)}@keyframes bounceLeft{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.home-container{min-height:calc(100dvh - var(--nav-height));display:flex;flex-direction:column;justify-content:flex-start;align-items:center;overflow-y:auto;overflow-x:hidden;padding:var(--space-20) 0}@media(min-height:800px){.home-container{justify-content:center}}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center;width:100%;flex:1;margin-top:var(--space-10)}.home-content{display:flex;flex-direction:column;justify-content:center}.hero-title-wrapper{height:clamp(6.5rem,10vw,11rem);display:flex;align-items:center;margin-bottom:var(--space-4);overflow:hidden}.hero-title{font-family:var(--font-heading);letter-spacing:-.01em;font-size:clamp(1.5rem,2.8vw,2.8rem);font-weight:400;line-height:1.25;margin:0;color:var(--text-primary);text-shadow:0 4px 10px rgba(0,0,0,.3);animation:titleSlideUp .8s var(--ease-out) forwards}@keyframes titleSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-subtitle{font-size:clamp(1.15rem,1.8vw,1.45rem);color:var(--text-secondary);max-width:100%;margin-bottom:var(--space-8);font-weight:400;line-height:1.75;letter-spacing:-.01em}.hero-actions{display:flex;gap:var(--space-6);margin-bottom:var( --space-12 )}.home-about{padding-top:var(--space-8);border-top:1px solid var(--border-subtle);width:100%;max-width:100%}.home-about p{color:var(--text-secondary);font-size:clamp(1.1rem,1.4vw,1.25rem);line-height:1.7;margin-bottom:.75rem}.home-image-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5}.gallery-container{position:relative;width:100%;height:480px;display:flex;align-items:center;justify-content:center}.draggable-card{width:clamp(280px,25vw,400px);aspect-ratio:1;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:0;box-shadow:var(--shadow-xl);border:1px solid var(--border-subtle);overflow:hidden;transition:box-shadow .3s ease}.draggable-card:hover{box-shadow:0 10px 30px #0006}.profile-image{width:100%;height:100%;object-fit:cover;pointer-events:none;display:block}.hero-socials{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-24);z-index:20;position:relative}.social-link{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:transparent;border:1.5px solid var(--accent-primary);color:var(--accent-primary);transition:all .3s ease;box-shadow:0 4px 15px #0003}[data-theme=light] .social-link{background:var(--accent-primary);border:1.5px solid #ffffff;color:#fff;box-shadow:0 4px 15px #d4af3733}.social-link:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;transform:translateY(-3px);box-shadow:0 5px 15px #d4af374d}[data-theme=light] .social-link:hover{background:#fff;border-color:var(--accent-primary);color:var(--accent-primary)}.social-link svg{transition:transform .3s ease}.social-link:hover svg{transform:scale(1.1)}.home-associations-container{width:100%;margin-top:var(--space-24);padding:var(--space-10) var(--space-8) var(--space-24);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:10}.associations-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:var(--space-8);display:block}.associations-grid{display:flex;flex-wrap:wrap;gap:var(--space-12);align-items:center;justify-content:center}.association-item{position:relative;cursor:pointer;color:var(--text-secondary);transition:color .3s ease,transform .3s ease}.association-item:hover{color:var(--accent-primary);transform:translateY(-2px)}.fancy-underline{position:relative;display:inline;padding-bottom:2px}.fancy-underline:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:8px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="10" viewBox="0 0 100 10"><path d="M0 5 Q 15 0, 30 5 T 60 5 T 90 5" fill="none" stroke="%23d4af37" stroke-width="3" stroke-linecap="round"/></svg>');background-repeat:repeat-x;background-size:40px 10px;opacity:.6;transition:opacity .3s ease,transform .3s ease;pointer-events:none}.fancy-underline:hover:after{opacity:1;transform:translateY(1px)}.text-accent{color:var(--accent-primary);font-weight:600}.text-flowing-gold{background:linear-gradient(90deg,var(--accent-primary) 0%,#fef9e7 50%,var(--accent-primary) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700;animation:flowingGold 3s linear infinite;display:inline-block}@keyframes flowingGold{to{background-position:200% center}}.highlight-pill{background:#d4af371a;color:var(--accent-primary);padding:2px 8px;border-radius:4px;font-size:.9em;font-weight:500;border:1px solid rgba(212,175,55,.2);white-space:nowrap}.association-logo{width:140px;height:50px;display:flex;align-items:center;justify-content:center;filter:grayscale(1) opacity(.5);transition:all .4s cubic-bezier(.23,1,.32,1);position:relative;border-radius:var(--radius-md);z-index:1}.association-logo:before{content:"";position:absolute;top:50%;left:50%;width:0%;height:120%;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 60"><path d="M10,30 C30,15 70,45 100,30 C130,15 170,45 190,30" fill="none" stroke="%23d4af37" stroke-width="45" stroke-linecap="round" stroke-linejoin="round" opacity="0.9"/></svg>');background-size:100% 100%;background-repeat:no-repeat;background-position:center;transform:translate(-50%,-50%) rotate(-2deg);z-index:-1;opacity:0;transition:width .4s cubic-bezier(.23,1,.32,1),opacity .3s ease}[data-theme=light] .association-logo{filter:grayscale(1) brightness(.2) opacity(.4)}.association-item:hover .association-logo{filter:grayscale(0) opacity(1);transform:translateY(-5px) scale(1.05)}.association-item:hover .association-logo:before{width:130%;opacity:1}[data-theme=light] .association-item:hover .association-logo{filter:grayscale(0) brightness(1) opacity(1)}.association-logo img{max-width:90%;max-height:80%;width:auto;height:auto;object-fit:contain;position:relative;z-index:2}.achievement-card{position:absolute;bottom:120%;left:50%;transform:translate(-50%) translateY(10px);width:320px;background:#0f0f12f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:0 10px 30px #00000080;opacity:0;visibility:hidden;transition:all .4s cubic-bezier(.23,1,.32,1);z-index:100;pointer-events:none}[data-theme=light] .achievement-card{background:#fffffffa;border-color:#0000001a;box-shadow:0 10px 30px #0000001a}[data-theme=light] .card-role{color:#18181b}[data-theme=light] .card-name,[data-theme=light] .card-achievements li{color:#52525b}.association-item:hover .achievement-card{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.card-header{margin-bottom:var(--space-4)}.card-period{font-family:var(--font-mono);font-size:.7rem;color:var(--accent-secondary);display:block;margin-bottom:2px}.card-role{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.card-name{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin:0}.card-achievements{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.card-achievements li{font-size:.875rem;line-height:1.5;color:var(--text-secondary);padding-left:var(--space-4);position:relative}.card-achievements li:before{content:"—";position:absolute;left:0;color:var(--accent-primary);font-weight:700}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in{opacity:0;animation:slideInUp .7s var(--ease-out) forwards}.slide-in.delay-6{animation-delay:.6s}.slide-in.delay-7{animation-delay:.7s}.slide-in.delay-8{animation-delay:.8s}.slide-in.delay-9{animation-delay:.9s}@media(max-width:1100px){.home-grid{gap:var(--space-4)}}@media(max-width:960px){.home-container{height:auto;min-height:calc(100dvh - var(--nav-height));overflow-y:auto;padding:var(--space-8) var(--space-4)}.home-grid{grid-template-columns:1fr;text-align:center;gap:var(--space-12);display:flex;flex-direction:column}.hero-title-wrapper{justify-content:center;text-align:center;margin-bottom:var(--space-8)}.hero-title{text-align:center}.hero-actions{justify-content:center}.home-image-wrapper{order:-1;margin-bottom:var(--space-8)}.gallery-container{height:400px}.draggable-card{width:280px}.home-associations-container{margin-top:var(--space-16)}.associations-grid{justify-content:center;flex-wrap:wrap;gap:var(--space-8)}.achievement-card{display:none}}@media(max-width:480px){.hero-title-wrapper{height:auto;margin-bottom:var(--space-6)}.hero-title{font-size:2.2rem}.gallery-container{height:320px}.draggable-card{width:240px}.hero-socials{margin-top:var(--space-12)}.associations-label{font-size:.65rem}.association-logo{width:100px;height:40px}}.projects-container{min-height:calc(100vh - var(--nav-height));display:flex;flex-direction:column;padding-top:calc(var(--nav-height) + var(--space-8))}.projects-header{padding:var(--space-4) 0 var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.projects-header-top{display:flex;justify-content:space-between;align-items:center;width:100%}.projects-title{font-family:var(--font-heading);font-size:clamp(2rem,4vw,2.25rem);font-weight:700;margin:0;color:var(--text-primary);line-height:1.1}.projects-subtitle{color:var(--text-secondary);font-size:clamp(1.1rem,1.5vw,1.25rem);max-width:600px;margin:0}.projects-tabs{display:flex;gap:var(--space-8);margin-bottom:var(--space-8);border-bottom:1px solid var(--border-subtle);overflow-x:auto;white-space:nowrap;scrollbar-width:none}.projects-tabs::-webkit-scrollbar{display:none}.tab-button{background:none;border:none;padding:var(--space-4) 0;color:var(--text-secondary);font-size:.9375rem;font-weight:500;cursor:pointer;position:relative;transition:color .3s ease}.tab-button:hover{color:var(--text-primary)}.tab-button.active{color:var(--accent-primary)}.tab-button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--accent-primary);box-shadow:0 0 10px #d4af3766}.projects-scroll-area{flex:1;padding-right:0;padding-bottom:var(--space-12)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12)}.project-card{background:#ffffff05;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-10);transition:all .4s cubic-bezier(.23,1,.32,1);position:relative;overflow:hidden}[data-theme=light] .project-card{background:#fff;border-color:#0000000a;box-shadow:0 4px 20px #00000003}.project-card:hover{transform:translateY(-8px);border-color:var(--accent-primary);background:#ffffff08;box-shadow:0 20px 40px #0000004d}[data-theme=light] .project-card:hover{background:#fff;box-shadow:0 15px 35px #0000000a}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start}.project-title{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary);line-height:1.2}.project-stars{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-primary);display:flex;align-items:center;gap:4px}.project-description{color:var(--text-secondary);font-size:.9375rem;line-height:1.6;margin:0;flex:1}.project-tech{display:flex;gap:var(--space-4);flex-wrap:wrap}.tech-tag{font-size:.7rem;font-weight:550;padding:3px 10px;background:#d4af370f;color:var(--accent-primary);border-radius:100px;border:1px solid rgba(212,175,55,.12)}.project-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-primary);text-decoration:none;font-weight:600;font-size:.85rem;margin-top:var(--space-2);transition:color .2s ease}.project-link:hover{color:var(--accent-primary)}.projects-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-12) 0;margin-top:auto}.pagination-info{font-size:.875rem;color:var(--text-secondary);font-family:var(--font-heading)}@media(max-width:800px){.projects-container{padding-top:calc(var(--nav-height) + var(--space-8));height:auto;min-height:calc(100dvh - var(--nav-height));text-align:left}.projects-grid{grid-template-columns:1fr;gap:var(--space-6)}.projects-header-top{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4)}.projects-title{font-size:2.25rem}.projects-subtitle{font-size:.9375rem;line-height:1.6;margin:0;max-width:100%}.projects-tabs{justify-content:flex-start;gap:var(--space-6);margin-top:var(--space-2)}.project-card{padding:var(--space-8)}}.speaking-container{min-height:calc(100vh - var(--nav-height));display:flex;flex-direction:column;padding-top:calc(var(--nav-height) + var(--space-12))}.speaking-header{padding:var(--space-4) 0 var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}.speaking-header-top{display:flex;justify-content:space-between;align-items:center;width:100%}.speaking-title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,2.5rem);font-weight:700;margin:0;color:var(--text-primary);line-height:1.1}.speaking-subtitle{color:var(--text-secondary);font-size:clamp(1.1rem,1.5vw,1.25rem);max-width:600px;margin:0}.speaking-scroll-area{flex:1;padding-right:0}.speaking-list{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}.speaking-row{display:grid;grid-template-columns:80px 1fr 240px 120px;align-items:center;gap:var(--space-8);padding:var(--space-8) 0;border-bottom:1px solid var(--border-subtle);transition:background .3s ease;position:relative}.speaking-row:hover{background:#ffffff03}[data-theme=light] .speaking-row:hover{background:#00000003}.speaking-date{font-family:var(--font-mono);font-size:.9rem;color:var(--text-tertiary)}.speaking-main h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 6px;line-height:1.3}.speaking-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-primary);font-weight:600}.speaking-event{display:flex;flex-direction:column}.event-name{font-weight:500;color:var(--text-primary);font-size:.9375rem}.event-location{font-size:.8125rem;color:var(--text-secondary)}.speaking-actions{display:flex;justify-content:flex-end}.slides-btn{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;color:var(--text-primary);text-decoration:none;padding:.5rem 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:all .3s ease;white-space:nowrap}.slides-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#d4af370d;transform:translate(2px)}.speaking-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-12) 0}@media(max-width:600px){.speaking-pagination{gap:var(--space-4)}}.speaking-row{grid-template-columns:80px 140px 1fr 240px 100px}.speaking-preview{width:120px;height:70px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-subtle);background:var(--card-bg);position:relative;z-index:1;transition:transform .3s cubic-bezier(.4,0,.2,1),z-index 0s}.speaking-preview img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.speaking-row:hover .speaking-preview{transform:scale(2.5);z-index:100;box-shadow:0 10px 30px #00000080,0 0 0 1px var(--accent-gold);border-color:var(--accent-gold)}@media(max-width:1024px){.speaking-row:hover .speaking-preview{transform:none;z-index:1;box-shadow:none;border-color:var(--border-subtle)}.speaking-container{padding-top:calc(var(--nav-height) + var(--space-8))}.speaking-row{grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-8) 0;text-align:center;justify-items:center}.speaking-preview{width:100%;max-width:500px;height:auto;aspect-ratio:16 / 9;margin:0 auto var(--space-2)}.speaking-header-top{flex-direction:column;align-items:center;gap:var(--space-4);text-align:center}.speaking-title{font-size:2.2rem}.speaking-subtitle{font-size:1rem;line-height:1.5;margin:0 auto}.speaking-main{margin-bottom:0}.speaking-event{margin-bottom:var(--space-2)}.speaking-actions{justify-content:center;width:100%;margin-top:var(--space-2)}.speaking-date{font-size:.85rem;color:var(--accent-primary);margin-bottom:0}}.blog-container{min-height:calc(100vh - var(--nav-height));display:flex;flex-direction:column;padding-top:calc(var(--nav-height) + var(--space-8))}.blog-header{padding:var(--space-4) 0 var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}.blog-title{font-family:var(--font-heading);font-size:clamp(2rem,4vw,2.25rem);font-weight:700;margin:0;color:var(--text-primary);line-height:1.1}.blog-subtitle{color:var(--text-secondary);font-size:clamp(1.1rem,1.5vw,1.25rem);max-width:600px;margin:0}.blog-header-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--space-8);margin-bottom:var(--space-4)}.blog-header-actions{display:flex;align-items:center;gap:var(--space-8)}.blog-filters{display:flex;gap:var(--space-4);align-items:center}.blog-select{background:transparent;border:none;color:var(--text-secondary);padding:4px 18px 4px 0;font-size:.9rem;font-weight:500;cursor:pointer;outline:none;font-family:inherit;transition:color .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center}.blog-select:hover{color:var(--text-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}[data-theme=light] .blog-select:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2318181b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}.blog-scroll-area{flex:1;padding-right:0}.blog-list{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}.blog-post-card{display:block;text-decoration:none;padding:var(--space-8) 0;border-bottom:1px solid var(--border-subtle);transition:transform .3s ease}.blog-post-card:hover{transform:translate(8px)}.post-meta{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);font-size:.8rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.post-date{color:var(--text-tertiary)}.post-tag{color:var(--accent-primary);font-weight:600}.post-title{font-size:1.35rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1) 0;line-height:1.3}.blog-post-card:hover .post-title{color:var(--accent-primary)}.post-excerpt{color:var(--text-secondary);font-size:.9375rem;line-height:1.5;max-width:800px;margin:0}.post-detail-container{max-width:800px;margin:0 auto;padding:calc(var(--nav-height) + var(--space-12)) var(--space-4) var(--space-20)}.post-header{margin-bottom:var(--space-12);text-align:center}.post-header .post-title{font-size:clamp(2.25rem,5vw,3.5rem);margin-bottom:var(--space-6);letter-spacing:-.02em}.post-content{font-size:1.125rem;line-height:1.8;color:var(--text-primary)}.post-content p{margin-bottom:var(--space-8)}.post-content h2{font-size:1.75rem;margin:var(--space-12) 0 var(--space-6)}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);text-decoration:none;font-weight:500;margin-bottom:var(--space-12);transition:color .2s ease}.back-link:hover{color:var(--accent-primary)}.blog-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-12) 0}@media(max-width:800px){.blog-container{padding-top:calc(var(--nav-height) + var(--space-8));text-align:left}.blog-header-top{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}.blog-header-actions{width:100%;justify-content:space-between;gap:var(--space-4)}.blog-header-actions .btn{white-space:nowrap}.blog-title-area{width:100%;display:flex;flex-direction:column;align-items:flex-start}.blog-filters{width:100%;justify-content:flex-start;gap:var(--space-6);margin-top:var(--space-2)}.blog-title{font-size:2.25rem}.blog-subtitle{font-size:.9375rem;line-height:1.6;margin:0 auto}.post-title{font-size:1.25rem;text-align:left}.post-meta,.post-excerpt{text-align:left}.blog-post-card{padding:var(--space-8) 0}.blog-post-card:hover{transform:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-15px)}to{transform:translateY(0)}}@keyframes textReveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.animate-up{opacity:0;animation:fadeInUp .8s var(--ease-out, ease-out) forwards}.animate-float{animation:float 6s var(--ease-in-out, ease-in-out) infinite}.animate-reveal{animation:textReveal 1.2s var(--ease-out, ease-out) forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;scroll-behavior:smooth;margin:0;padding:0;background-color:var(--bg-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}h1,h2,h3,.h1,.h2,.h3{font-family:var(--font-heading);letter-spacing:-.02em}.h1{font-size:3.5rem;font-weight:700;line-height:1.1}.h2{font-size:2.5rem;font-weight:600;line-height:1.2}.h3{font-size:1.75rem;font-weight:600;line-height:1.3}.body-lg{font-size:1.125rem}.body-sm{font-size:.875rem;color:var(--text-secondary)}.container{max-width:var(--max-width);margin:0 auto;padding-left:var(--space-4);padding-right:var(--space-4)}.section{padding:var(--space-16) 0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:.9375rem;text-decoration:none;transition:all var(--transition-fast);cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:500}.btn-primary{background-color:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.btn-primary:hover{background-color:transparent;color:var(--text-primary);border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 15px #d4af3733}.btn-secondary{background-color:transparent;color:var(--text-primary);border-color:#fff3}.btn-secondary:hover{background-color:#ffffff0d;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-2px)}[data-theme=light] .btn-primary{background-color:#f2f2f2;border-color:#d4d4d8;color:#18181b}[data-theme=light] .btn-primary:hover{background-color:#fff;border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:0 4px 15px #d4af371a}[data-theme=light] .btn-secondary{background-color:transparent;border-color:#e4e4e7;color:#52525b}[data-theme=light] .btn-secondary:hover{border-color:var(--accent-primary);color:var(--accent-primary);background-color:#fafafa}.lab-container{padding-top:calc(var(--nav-height) + var(--space-12));padding-bottom:var(--space-20);min-height:100vh;display:flex;flex-direction:column;gap:var(--space-8)}.lab-header{text-align:center}.game-selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-8);margin-top:var(--space-12)}.game-choice-card{position:relative;background:var(--card-bg);border:1px solid var(--border-color);padding:var(--space-10);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s ease;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-4)}.game-choice-card:hover{transform:translateY(-5px);border-color:var(--accent-gold);background:var(--card-hover);box-shadow:0 10px 30px #0000001a}.game-choice-card h3{font-family:var(--font-mono);font-size:1.5rem;color:var(--text-primary)}.game-choice-card p{color:var(--text-secondary);line-height:1.6}.game-tag{display:inline-block;padding:4px 12px;background:var(--bg-secondary);border-radius:20px;font-size:.8rem;font-family:var(--font-mono);color:var(--accent-gold);width:fit-content;margin-top:auto}.game-active-container{display:flex;flex-direction:column;gap:var(--space-6);flex:1}.back-to-selection{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-family:var(--font-mono);font-size:.9rem;width:fit-content;transition:color .2s}.back-to-selection:hover{color:var(--accent-gold)}.game-stage{flex:1;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--space-10);min-height:500px;position:relative;background-image:radial-gradient(circle at 2px 2px,rgba(212,175,55,.05) 1px,transparent 0);background-size:24px 24px}@media(max-width:480px){.game-stage{min-height:480px;padding:var(--space-6) var(--space-4)}}.game-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(#12101000 50%,#0000001a 50%),linear-gradient(90deg,#ff000008,#00ff0003,#0000ff08);background-size:100% 2px,3px 100%;pointer-events:none;z-index:1}.placeholder-game{font-family:var(--font-mono);color:var(--text-secondary);font-style:italic}.card-glitch-overlay{position:absolute;top:0;left:0;width:100%;height:5px;background:linear-gradient(90deg,transparent,var(--accent-gold),transparent);opacity:0;transition:opacity .3s}.game-choice-card:hover .card-glitch-overlay{opacity:.5;animation:glitch-slide 2s linear infinite}@keyframes glitch-slide{0%{transform:translateY(0)}50%{transform:translateY(100%)}to{transform:translateY(0)}}.tictactoe-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);width:100%;position:relative}.game-info{text-align:center}.status{font-family:var(--font-mono);font-size:1.2rem;color:var(--text-primary);margin-bottom:var(--space-2)}[data-theme=light] .status{color:var(--accent-secondary)}.entropy-hint{font-size:.8rem;color:var(--text-secondary);font-style:italic}.ttt-grid{display:grid;grid-template-columns:repeat(3,var(--cell-size, 100px));grid-template-rows:repeat(3,var(--cell-size, 100px));gap:var(--space-2);background:var(--border-color);padding:var(--space-2);border-radius:var(--radius-md)}@media(max-width:480px){.ttt-grid{--cell-size: 80px}.mark{font-size:2rem}}.ttt-cell{background:var(--card-bg);border:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden}.ttt-cell.decaying{border:1px dashed var(--accent-gold)}.ttt-cell.decaying:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(212,175,55,.1) 5px,rgba(212,175,55,.1) 10px);animation:decay-pulse 2s infinite}@keyframes decay-pulse{0%,to{opacity:.3}50%{opacity:.6}}.mark{font-family:var(--font-mono);font-size:2.5rem;font-weight:800}.mark.x{color:var(--accent-gold)}.mark.o{color:#ff4d4d}.hero-game-stage{width:100%;height:100%;position:relative;background:var(--bg-primary);cursor:none}.game-hud{position:absolute;top:var(--space-4);right:var(--space-4);z-index:10}.score-display{font-family:var(--font-mono);color:var(--accent-gold);font-size:.9rem;background:#00000080;padding:4px 12px;border-radius:4px;border:1px solid rgba(212,175,55,.3)}.game-packet{position:absolute;width:30px;height:30px;background:var(--accent-gold);border-radius:50%;box-shadow:0 0 20px var(--accent-gold);z-index:5}.game-obstacle{position:absolute;height:10px;background:#ff4d4d;box-shadow:0 0 10px #ff4d4d80;border-radius:2px}.ttt-result-card{width:100%;max-width:340px;background:var(--card-bg);border:1px solid var(--accent-gold);border-radius:var(--radius-md);padding:var(--space-6);text-align:center;display:flex;flex-direction:column;gap:var(--space-4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px #0003;margin-top:var(--space-2)}.ddos-result-card{width:100%;max-width:600px;background:var(--card-bg);border:1px solid var(--accent-gold);border-radius:var(--radius-md);padding:var(--space-6);text-align:left;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--space-6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px #0003;margin-top:var(--space-4);animation:slide-up .3s ease-out}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ddos-result-content{flex:1}.ddos-result-card h2{font-family:var(--font-mono);font-size:1.1rem;margin:0 0 var(--space-1);text-transform:uppercase;letter-spacing:1px}.ddos-result-card.victory h2{color:var(--accent-gold)}.ddos-result-card.fail h2{color:#ff4d4d}.ddos-result-card p{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin:0}.ddos-result-actions{display:flex;gap:var(--space-3)}@media(max-width:600px){.ddos-result-card{flex-direction:column;text-align:center;gap:var(--space-4)}}.ttt-result-card.win{border-color:var(--color-typescript)}.ttt-result-card.loss{border-color:#ff4d4d}.ttt-result-card.draw{border-color:var(--text-secondary)}.ttt-result-card h2{font-family:var(--font-mono);font-size:1.1rem;margin:0;text-transform:uppercase;letter-spacing:1px}.ttt-result-card p{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin:0}.game-overlay{position:absolute;inset:0;background:#0000001a;display:flex;align-items:center;justify-content:center;z-index:20;cursor:not-allowed}[data-theme=light] .game-overlay{background:#ffffff1a}.modal-overlay{position:absolute;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-over-modal{position:relative;background:var(--bg-primary);border:1px solid var(--accent-gold);padding:var(--space-8);border-radius:var(--radius-lg);text-align:center;max-width:400px;width:90%;display:flex;flex-direction:column;gap:var(--space-6);box-shadow:0 0 30px #d4af3733;pointer-events:auto!important}@media(max-height:600px){.game-over-modal{padding:var(--space-6);gap:var(--space-4)}.game-over-modal h2{font-size:1.2rem}}.instructions-body{display:flex;flex-direction:column;gap:var(--space-4);color:var(--text-secondary)}.control-hint{font-family:var(--font-mono);font-size:.85rem;padding:var(--space-4);background:var(--card-bg);border-radius:var(--radius-md);border:1px dashed var(--border-color)}.text-danger{color:#ff4d4d}[data-theme=light] .game-over-modal{border-color:var(--border-color);box-shadow:0 20px 40px #0000001a}.glitch-text{color:#ff4d4d;font-family:var(--font-mono);font-weight:800;letter-spacing:2px}.modal-actions{display:flex;gap:var(--space-3);justify-content:center}.btn-debug{background:var(--accent-gold);color:#000;border:none;padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600;cursor:pointer;transition:transform .2s}.btn-retry{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);font-family:var(--font-mono);cursor:pointer;transition:all .2s}.btn-debug:hover{transform:scale(1.02)}.btn-retry:hover{background:var(--card-hover);color:var(--text-primary)}@media(max-width:768px){.hero-game-stage{cursor:auto}}.ddos-game-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);width:100%}.ddos-container{width:100%;max-width:800px;height:600px;min-height:500px;position:relative;background:#050a0f;overflow:hidden;border:1px solid rgba(212,175,55,.1);box-shadow:inset 0 0 50px #000;cursor:crosshair;border-radius:var(--radius-md)}.scanline{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(0,0,0,.2) 51%);background-size:100% 4px;pointer-events:none;z-index:20;opacity:.3}.game-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(212,175,55,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(212,175,55,.05) 1px,transparent 1px);background-size:40px 40px;transform:perspective(500px) rotateX(20deg);transform-origin:top;z-index:1}.star-particle{position:absolute;background:#fff;border-radius:50%;pointer-events:none;z-index:2;box-shadow:0 0 5px #fff}.game-hud{position:absolute;top:0;left:0;right:0;padding:20px;display:flex;justify-content:space-between;z-index:25;background:linear-gradient(to bottom,rgba(5,10,15,.9),transparent)}.stat-group{display:flex;flex-direction:column;gap:4px}.stat-group label{font-family:var(--font-mono);font-size:.6rem;color:var(--accent-gold);text-transform:uppercase;letter-spacing:1px}.score-value{font-family:var(--font-mono);font-size:1.2rem;color:#fff;text-shadow:0 0 10px rgba(212,175,55,.5)}.integrity-bar{width:150px;height:8px;background:#00000080;border:1px solid rgba(212,175,55,.3);border-radius:2px;overflow:hidden}.integrity-fill{height:100%;background:var(--accent-gold);box-shadow:0 0 10px var(--accent-gold);transition:width .3s ease,background .3s ease}.integrity-fill.critical{background:#f05;box-shadow:0 0 10px #f05;animation:pulse-red .5s infinite alternate}@keyframes pulse-red{0%{opacity:.6}to{opacity:1}}.player-cannon{position:absolute;bottom:8%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:15}.cannon-barrel{width:8px;height:25px;background:#fff;border:2px solid var(--accent-gold);box-shadow:0 0 15px var(--accent-gold);border-radius:2px 2px 0 0}.cannon-chassis{width:40px;height:15px;background:#111;border:2px solid var(--accent-gold);border-radius:4px;box-shadow:0 0 10px #d4af374d}.muzzle-flash{position:absolute;top:-15px;width:25px;height:25px;background:radial-gradient(circle,var(--accent-gold),transparent);opacity:0;pointer-events:none}.muzzle-flash.active{animation:flash-pulse .1s infinite}.player-cannon.destroyed{opacity:.6}.player-cannon.destroyed .cannon-barrel{transform:rotate(-45deg) translate(-5px,10px);border-color:#ff4d4d;box-shadow:0 0 10px #ff4d4d}.player-cannon.destroyed .cannon-chassis{border-color:#ff4d4d;background:#222}@keyframes flash-pulse{0%{opacity:0;transform:scale(1)}50%{opacity:.8;transform:scale(1.5)}to{opacity:0;transform:scale(1.2)}}.threat-node{position:absolute;transform:translate(-50%,-50%);z-index:10;display:flex;flex-direction:column;align-items:center}.node-glow{width:20px;height:20px;background:#ff4d4d;border-radius:4px;box-shadow:0 0 15px #ff4d4d;animation:glitch-flicker .2s infinite}.threat-node.boss .node-glow{width:40px;height:40px;background:#fff;border:4px solid #ff4d4d;box-shadow:0 0 30px #ff4d4d}.node-label{margin-top:8px;font-family:var(--font-mono);font-size:.55rem;color:#ff4d4d;white-space:nowrap;background:#000000b3;padding:2px 4px}@keyframes glitch-flicker{0%{transform:scale(1) translate(0)}50%{transform:scale(1.1) translate(1px,-1px);opacity:.8}to{transform:scale(1) translate(0)}}.plasma-bolt{position:absolute;width:4px;height:12px;background:var(--accent-gold);border-radius:2px;box-shadow:0 0 10px var(--accent-gold);transform:translate(-50%)}.pixel-spark{position:absolute;width:3px;height:3px;background:#fff;z-index:12}.glitch-title{font-family:var(--font-mono);font-size:2.5rem;font-weight:800;color:#fff;text-shadow:2px 0 #ff0055,-2px 0 var(--accent-gold);margin-bottom:20px}.terminal-text{font-family:var(--font-mono);color:#d4af37cc;font-size:.9rem;margin-bottom:20px}.control-guide{display:flex;flex-direction:column;gap:12px;background:#d4af370d;padding:15px;border-radius:4px;border:1px solid rgba(212,175,55,.1);margin-bottom:20px}.guide-item{display:flex;justify-content:space-between;align-items:center}.guide-item span{color:#888;font-size:.7rem}.guide-item b{color:var(--accent-gold);font-size:.8rem}.btn-primary-gold{background:transparent;border:1px solid var(--accent-gold);color:var(--accent-gold);font-family:var(--font-mono);padding:12px 30px;cursor:pointer;transition:all .3s;box-shadow:0 0 10px #d4af3733}.btn-primary-gold:hover{background:var(--accent-gold);color:#000;box-shadow:0 0 30px #d4af3780}@media(max-width:480px){.game-over-modal{padding:var(--space-4);gap:var(--space-3);width:95%}.glitch-title{font-size:1.5rem;margin-bottom:var(--space-2)}.terminal-text{font-size:.8rem;margin-bottom:var(--space-2)}.control-guide{padding:var(--space-2);margin-bottom:var(--space-2);gap:4px}.guide-item span,.guide-item b{font-size:.7rem}.hint-text{font-size:.7rem;margin:0}.instructions-body{gap:var(--space-2)}.btn-primary-gold{padding:10px 20px;font-size:.9rem}}.victory-glow{text-shadow:0 0 20px var(--accent-gold);color:var(--accent-gold)}.fail-glow{text-shadow:0 0 20px #ff4d4d;color:#ff4d4d}.border-gold{border:1px solid var(--accent-gold)!important;box-shadow:0 0 15px #d4af371a}.sniffer-container{width:100%;height:600px;min-height:500px;position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);overflow:hidden}.lanes{position:absolute;inset:0;display:flex;flex-direction:column}.lane{flex:1;width:100%;position:relative;border-bottom:1px solid rgba(212,175,55,.05)}.lane-line{position:absolute;top:50%;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(212,175,55,.1),transparent)}.packet{position:absolute;width:24px;height:24px;border-radius:50%;transform:translate(-50%,-50%);cursor:pointer;z-index:5;transition:opacity .2s}.packet.malicious{background:#ff4d4d;box-shadow:0 0 15px #ff4d4d99}.packet.safe{background:var(--accent-gold);box-shadow:0 0 15px #d4af3766}.packet:hover{filter:brightness(1.2)}
