@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&family=Orbitron:wght@400;600;700;900&family=Fira+Code:wght@300;400;500;600&display=swap";[data-theme=dev]{--bg-primary:#0a0a1a;--bg-secondary:#111128;--bg-tertiary:#1a1a3e;--bg-card:#12122a;--bg-card-hover:#1e1e45;--bg-nav:#0a0a1ad9;--bg-input:#0f0f28;--color-accent:#3b82f6;--color-accent-dim:#1d4ed8;--color-accent-glow:#3b82f659;--color-secondary:#60a5fa;--color-highlight:#93c5fd;--color-danger:#ef4444;--color-success:#22c55e;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-accent:#3b82f6;--text-muted:#475569;--text-inverse:#0a0a1a;--gradient-hero:linear-gradient(135deg, #0a0a1a 0%, #111128 40%, #0d2060 100%);--gradient-card:linear-gradient(145deg, #12122a, #1a1a3e);--gradient-accent:linear-gradient(90deg, #3b82f6, #60a5fa);--gradient-glow:radial-gradient(ellipse at 50% 0%, #3b82f626 0%, transparent 70%);--gradient-text:linear-gradient(135deg, #60a5fa, #3b82f6, #1d4ed8);--border-color:#3b82f633;--border-color-hover:#3b82f699;--border-glow:0 0 20px #3b82f64d;--border-glow-strong:0 0 40px #3b82f680, 0 0 80px #3b82f633;--shadow-card:0 4px 24px #00000080, 0 0 0 1px #3b82f61a;--shadow-card-hover:0 8px 40px #3b82f640, 0 0 0 1px #3b82f666;--shadow-nav:0 1px 0 #3b82f626;--shadow-button:0 0 20px #3b82f666;--font-display:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-body:"Inter", system-ui, sans-serif;--mode-suffix:".dev";--mode-color:#3b82f6;--scanline-opacity:0;--noise-opacity:.03;--grid-color:#3b82f60a;--particle-color:#3b82f6;--scrollbar-track:#0a0a1a;--scrollbar-thumb:#1d4ed8;--scrollbar-hover:#3b82f6;--tag-bg:#3b82f61f;--tag-border:#3b82f64d;--tag-text:#93c5fd;--timeline-line:#1d4ed8;--timeline-dot:#3b82f6;--timeline-dot-glow:#3b82f680;--btn-bg:#3b82f6;--btn-bg-hover:#2563eb;--btn-text:#fff;--btn-outline-border:#3b82f6;--btn-outline-text:#3b82f6;--cursor-color:#3b82f6;--cursor-trail:#3b82f699}[data-theme=dev]::-webkit-scrollbar{width:6px}[data-theme=dev]::-webkit-scrollbar-track{background:var(--scrollbar-track)}[data-theme=dev]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}[data-theme=dev]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}[data-theme=dev] ::selection{color:#e2e8f0;background:#3b82f659}[data-theme=ia]{--bg-primary:#0d0221;--bg-secondary:#110330;--bg-tertiary:#150535;--bg-card:#12042a;--bg-card-hover:#1c0840;--bg-nav:#0d0221d9;--bg-input:#0f0228;--color-accent:#06ffa5;--color-accent-dim:#00cc84;--color-accent-glow:#06ffa559;--color-secondary:#b14eff;--color-highlight:#d585ff;--color-danger:#ff4d6d;--color-success:#06ffa5;--text-primary:#e8d5ff;--text-secondary:#a78bca;--text-accent:#06ffa5;--text-muted:#5c3d7a;--text-inverse:#0d0221;--gradient-hero:linear-gradient(135deg, #0d0221 0%, #150535 50%, #0a1525 100%);--gradient-card:linear-gradient(145deg, #12042a, #1c0840);--gradient-accent:linear-gradient(90deg, #06ffa5, #b14eff);--gradient-glow:radial-gradient(ellipse at 50% 0%, #b14eff33 0%, transparent 70%);--gradient-text:linear-gradient(135deg, #06ffa5, #b14eff, #06ffa5);--border-color:#b14eff33;--border-color-hover:#06ffa580;--border-glow:0 0 20px #b14eff4d, 0 0 40px #06ffa51a;--border-glow-strong:0 0 30px #06ffa580, 0 0 60px #b14eff66, 0 0 100px #b14eff26;--shadow-card:0 4px 24px #0009, 0 0 0 1px #b14eff26;--shadow-card-hover:0 8px 40px #b14eff4d, 0 0 0 1px #06ffa566;--shadow-nav:0 1px 0 #b14eff33;--shadow-button:0 0 20px #06ffa566, 0 0 40px #06ffa533;--font-display:"Orbitron", "Space Mono", monospace;--font-body:"Inter", system-ui, sans-serif;--mode-suffix:".ia";--mode-color:#06ffa5;--scanline-opacity:0;--noise-opacity:.05;--grid-color:#b14eff0a;--particle-color:#06ffa5;--scrollbar-track:#0d0221;--scrollbar-thumb:#4c1d95;--scrollbar-hover:#b14eff;--tag-bg:#06ffa51a;--tag-border:#06ffa54d;--tag-text:#06ffa5;--timeline-line:#4c1d95;--timeline-dot:#b14eff;--timeline-dot-glow:#b14eff99;--btn-bg:linear-gradient(135deg, #06ffa5, #00cc84);--btn-bg-hover:linear-gradient(135deg, #00cc84, #096);--btn-text:#0d0221;--btn-outline-border:#06ffa5;--btn-outline-text:#06ffa5;--cursor-color:#06ffa5;--cursor-trail:#06ffa580}[data-theme=ia] .project-card{-webkit-backdrop-filter:blur(12px)saturate(1.5);background:#12042ab3!important}[data-theme=ia] .project-card:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;opacity:0;background:linear-gradient(135deg,#06ffa599,#b14eff99,#06ffa533);padding:1px;transition:opacity .3s;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}[data-theme=ia] .project-card:hover:before{opacity:1}[data-theme=ia]::-webkit-scrollbar{width:6px}[data-theme=ia]::-webkit-scrollbar-track{background:var(--scrollbar-track)}[data-theme=ia]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}[data-theme=ia]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}[data-theme=ia] ::selection{color:#e8d5ff;background:#06ffa540}[data-theme=sec]{--bg-primary:#000;--bg-secondary:#050505;--bg-tertiary:#0a0a0a;--bg-card:#080808;--bg-card-hover:#0f0f0f;--bg-nav:#000000eb;--bg-input:#050505;--color-accent:#00ff41;--color-accent-dim:#0c3;--color-accent-glow:#00ff4159;--color-secondary:#f03;--color-highlight:#39ff14;--color-danger:#f03;--color-success:#00ff41;--text-primary:#c8ffc8;--text-secondary:#4dff4d;--text-accent:#00ff41;--text-muted:#1a4d1a;--text-inverse:#000;--gradient-hero:radial-gradient(ellipse at center top, #0a1a0a 0%, #050a05 40%, #000 100%);--gradient-card:linear-gradient(145deg, #080808, #0d0d0d);--gradient-accent:linear-gradient(90deg, #00ff41, #39ff14);--gradient-glow:radial-gradient(ellipse at 50% 0%, #00ff411a 0%, transparent 70%);--gradient-text:linear-gradient(135deg, #00ff41, #39ff14, #00ff41);--border-color:#00ff4126;--border-color-hover:#00ff4180;--border-glow:0 0 10px #00ff414d;--border-glow-strong:0 0 20px #00ff4199, 0 0 40px #00ff4133, inset 0 0 20px #00ff410d;--shadow-card:0 4px 20px #000c, 0 0 0 1px #00ff411a;--shadow-card-hover:0 0 30px #00ff4133, 0 0 0 1px #00ff4166;--shadow-nav:0 1px 0 #00ff411a;--shadow-button:0 0 15px #00ff4180, 0 0 30px #00ff4133;--font-display:"Fira Code", "Source Code Pro", "Courier New", monospace;--font-body:"Fira Code", "Source Code Pro", monospace;--mode-suffix:".sec";--mode-color:#00ff41;--scanline-opacity:.03;--noise-opacity:.08;--grid-color:#00ff4108;--particle-color:#00ff41;--scrollbar-track:#000;--scrollbar-thumb:#004d14;--scrollbar-hover:#00ff41;--tag-bg:#00ff4114;--tag-border:#00ff414d;--tag-text:#00ff41;--timeline-line:#004d14;--timeline-dot:#00ff41;--timeline-dot-glow:#00ff4199;--btn-bg:#00ff41;--btn-bg-hover:#0c3;--btn-text:#000;--btn-outline-border:#00ff41;--btn-outline-text:#00ff41;--cursor-color:#00ff41;--cursor-trail:#00ff4180}[data-theme=sec] .project-card{font-family:var(--font-display);border-style:solid;border-width:1px;position:relative;overflow:hidden}[data-theme=sec] .project-card:after{content:"";pointer-events:none;border-radius:inherit;z-index:0;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000026 2px 4px);position:absolute;inset:0}[data-theme=sec] .project-card .card-prompt{font-family:var(--font-display);color:var(--color-accent);opacity:0;font-size:.75rem;transition:all .2s;transform:translateY(4px)}[data-theme=sec] .project-card:hover .card-prompt{opacity:1;transform:translateY(0)}[data-theme=sec] .hero-section:before{content:"";opacity:var(--noise-opacity);pointer-events:none;z-index:0;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)' opacity='0.08'/%3E%3C/svg%3E");position:absolute;inset:0}[data-theme=sec]::-webkit-scrollbar{width:6px}[data-theme=sec]::-webkit-scrollbar-track{background:var(--scrollbar-track)}[data-theme=sec]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:0}[data-theme=sec]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}[data-theme=sec] ::selection{color:#00ff41;background:#00ff4133}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes heroFadeDown{0%{opacity:0;filter:blur(4px);transform:translateY(-20px)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes heroFadeUp{0%{opacity:0;filter:blur(4px);transform:translateY(28px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.97)}}@keyframes glowPulse{0%,to{box-shadow:0 0 10px var(--color-accent-glow)}50%{box-shadow:0 0 25px var(--color-accent-glow), 0 0 50px var(--color-accent-glow)}}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes typewriter{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes suffixErase{0%{clip-path:inset(0 0% 0 0);opacity:1}to{clip-path:inset(0 100% 0 0);opacity:0}}@keyframes suffixWrite{0%{clip-path:inset(0 100% 0 0);opacity:0}to{clip-path:inset(0 0% 0 0);opacity:1}}@keyframes glitch{0%{transform:translate(0)}10%{clip-path:inset(10% 0 80%);transform:translate(-2px,1px)}20%{clip-path:inset(60% 0 20%);transform:translate(2px,-1px)}30%{clip-path:inset(0);transform:translate(0)}40%{clip-path:inset(40% 0);transform:translate(-1px,2px)}50%{clip-path:inset(80% 0 5%);transform:translate(1px,-2px)}60%{clip-path:inset(0);transform:translate(0)}70%{clip-path:inset(20% 0 60%);transform:translate(-3px)}80%{clip-path:inset(50% 0 30%);transform:translate(3px,1px)}90%{clip-path:inset(0);transform:translate(0)}to{transform:translate(0)}}.theme-transition-overlay{z-index:9999;pointer-events:none;opacity:0;transition:opacity .15s;position:fixed;inset:0}.theme-transition-overlay.active{opacity:1;animation:.4s forwards themeFlash}@keyframes themeFlash{0%{opacity:0}30%{opacity:.6}to{opacity:0}}body.theme-transitioning *{transition:background-color .4s,border-color .4s,color .3s,box-shadow .4s!important}.stagger-item{opacity:0;transform:translateY(20px)}.stagger-item.visible{animation:.5s forwards staggerFadeIn}.stagger-item:first-child{animation-delay:50ms}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.stagger-item:nth-child(9){animation-delay:.45s}.stagger-item:nth-child(10){animation-delay:.5s}.stagger-item:nth-child(11){animation-delay:.55s}.stagger-item:nth-child(12){animation-delay:.6s}.hero-typewriter{white-space:nowrap;border-right:2px solid var(--color-accent);animation:2s steps(40,end) .5s both typewriter,.8s step-end 2.5s infinite cursorBlink;display:inline-block;overflow:hidden}.hero-subtitle{animation:.8s 1s both fadeInUp}.hero-cta{animation:.8s 1.3s both fadeInUp}.hero-decoration{animation:4s ease-in-out infinite float}.hero-tagline{position:relative;overflow:hidden}.hero-tagline.changing{animation:.4s fadeInDown}.project-card{will-change:transform;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .3s}.project-card:hover{transform:translateY(-6px)}.card-image-wrap{overflow:hidden}.card-image-wrap img{transition:transform .5s}.btn{transition:transform .2s,box-shadow .2s,background .3s;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;background:#ffffff26;border-radius:50%;transition:transform .4s,opacity .4s;position:absolute;inset:0;transform:scale(0)}.btn:active:after{opacity:0;transition:transform,opacity .4s;transform:scale(4)}.btn:hover{box-shadow:var(--shadow-button);transform:translateY(-2px)}.btn:active{transform:translateY(0)}.mode-suffix{cursor:pointer;transition:color .3s;display:inline-block;position:relative}.mode-suffix:after{content:"";background:var(--color-accent);transform-origin:0;width:100%;height:2px;transition:transform .3s;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.mode-suffix:hover:after{transform:scaleX(1)}.mode-suffix.erasing{animation:.2s forwards suffixErase}.mode-suffix.writing{animation:.3s forwards suffixWrite}.suffix-cursor{background:var(--color-accent);vertical-align:middle;width:2px;height:1.1em;margin-left:1px;animation:.7s step-end infinite cursorBlink;display:inline-block}.skill-bar-fill{width:0%;transition:width 1.2s cubic-bezier(.4,0,.2,1)}.skill-bar-fill.animate{width:var(--skill-level)}.timeline-dot{transition:transform .4s cubic-bezier(.34,1.56,.64,1);transform:scale(0)}.timeline-item.visible .timeline-dot{transform:scale(1)}.timeline-content{opacity:0;transition:opacity .5s,transform .5s;transform:translate(20px)}.timeline-item.visible .timeline-content{opacity:1;transform:translate(0)}[data-theme=sec] .hero-name{animation:none}[data-theme=sec] .hero-name.glitching{animation:.3s glitch}.decode-text{display:inline-block}[data-theme=ia] .glow-pulse{animation:2s ease-in-out infinite glowPulse}[data-theme=ia] .gradient-text{background:var(--gradient-text);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite gradientShift}@keyframes gradientShift{0%{background-position:0%}to{background-position:200%}}.skeleton{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-card-hover) 50%, var(--bg-card) 75%);background-size:200% 100%;border-radius:6px;animation:1.5s infinite shimmer}.scroll-progress{background:var(--gradient-accent);height:3px;box-shadow:0 0 10px var(--color-accent-glow);z-index:1000;transform-origin:0;transition:width .1s linear;position:fixed;top:0;left:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hero-typewriter{white-space:normal;clip-path:none!important;border-right:none!important;animation:none!important}.hero-decoration{animation:none!important}.hero-subtitle,.hero-cta{opacity:1;animation:none!important}.animate-on-scroll{opacity:1!important;transition:none!important;transform:none!important}.stagger-item{opacity:1!important;animation:none!important;transform:none!important}.timeline-dot{transition:none!important;transform:scale(1)!important}.timeline-content{opacity:1!important;transition:none!important;transform:none!important}.skill-bar-fill,.project-card{transition:none!important}.project-card:hover{transform:none!important}.card-image-wrap img{transition:none!important}.project-card:hover .card-image-wrap img{transform:none!important}.btn{transition:none!important}.btn:hover{box-shadow:none!important;transform:none!important}.btn:after{display:none!important}.mode-suffix.erasing,.mode-suffix.writing,.suffix-cursor{opacity:1!important;animation:none!important}.skeleton,[data-theme=ia] .glow-pulse,[data-theme=ia] .gradient-text,[data-theme=sec] .hero-name.glitching{animation:none!important}.theme-transition-overlay,.theme-transition-overlay.active{opacity:0!important;animation:none!important}body.theme-transitioning *{transition:none!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body,"Inter", system-ui, sans-serif);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;transition:background-color .4s,color .3s;overflow-x:hidden}img,video{max-width:100%;height:auto;display:block}a{color:var(--text-accent);text-decoration:none;transition:color .2s,opacity .2s}a:hover{opacity:.85}button,input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}:root{--container-max:1200px;--container-padding:1.5rem;--section-gap:6rem;--nav-height:70px;--border-radius:12px;--border-radius-sm:8px;--border-radius-lg:20px;--font-body:"Inter", system-ui, sans-serif;--font-display:"JetBrains Mono", monospace;--bg-primary:#0a0a1a;--bg-secondary:#111128;--bg-tertiary:#1a1a3e;--bg-card:#12122a;--bg-nav:#0a0a1ad9;--color-accent:#3b82f6;--color-accent-glow:#3b82f659;--color-secondary:#60a5fa;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-accent:#3b82f6;--text-muted:#475569;--border-color:#3b82f633;--shadow-card:0 4px 24px #00000080;--gradient-accent:linear-gradient(90deg, #3b82f6, #60a5fa);--tag-bg:#3b82f61f;--tag-border:#3b82f64d;--tag-text:#93c5fd;--btn-bg:#3b82f6;--btn-text:#fff}.container{width:100%;max-width:var(--container-max);padding:0 var(--container-padding);margin:0 auto}.navbar{z-index:100;height:var(--nav-height);background:var(--bg-nav);-webkit-backdrop-filter:blur(16px)saturate(1.5);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-nav);transition:background .4s,border-color .4s,box-shadow .4s;position:fixed;top:0;left:0;right:0}.navbar__inner{justify-content:space-between;align-items:center;gap:2rem;height:100%;display:flex}.navbar__logo{font-family:var(--font-display);flex-shrink:0;align-items:center;gap:0;font-size:1.25rem;font-weight:700;text-decoration:none;display:flex}.logo-pill{--pill-accent:var(--color-accent);--pill-glow:#3b82f661;border:1.5px solid var(--pill-accent);background:#0000002e;border-radius:999px;align-items:center;transition:box-shadow .25s,border-color .3s;animation:3.2s ease-in-out infinite logo-pill-pulse;display:inline-flex;position:relative;overflow:visible}.logo-pill:hover{box-shadow:0 0 14px 3px var(--pill-glow);animation-play-state:paused}.logo-pill__name{color:var(--text-primary);font-family:var(--font-display);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px 0 0 999px;padding:5px 10px 5px 15px;font-size:1.1rem;font-weight:700;transition:background .2s,color .2s}.logo-pill__name:hover{background:#ffffff12}.logo-pill__divider{background:var(--pill-accent);opacity:.35;flex-shrink:0;width:1px;height:15px;transition:background .3s}.logo-pill .logo-suffix{color:var(--pill-accent);cursor:pointer;box-shadow:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:0 999px 999px 0;align-items:center;gap:4px;padding:5px 14px 5px 9px;font-size:.92em;font-weight:700;transition:background .2s,color .3s;display:inline-flex;position:relative}.logo-pill .logo-suffix:hover{box-shadow:none;background:#ffffff12}.logo-pill .logo-suffix:after{content:"";opacity:.7;border-bottom:1.5px solid;border-right:1.5px solid;flex-shrink:0;width:5px;height:5px;transition:transform .2s;display:inline-block;transform:rotate(45deg)translateY(-2px)}.logo-pill .logo-suffix.open:after{transform:rotate(225deg)translateY(-2px)}[data-theme=ia] .logo-pill{--pill-accent:#06ffa5;--pill-glow:#06ffa552}[data-theme=sec] .logo-pill{--pill-accent:#00ff41;--pill-glow:#00ff4147}@keyframes logo-pill-pulse{0%,to{box-shadow:0 0 #0000}45%{box-shadow:0 0 11px 3px var(--pill-glow)}55%{box-shadow:0 0 11px 3px var(--pill-glow)}}@media (prefers-reduced-motion:reduce){.logo-pill{animation:none}}.mode-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);opacity:0;visibility:hidden;box-shadow:var(--shadow-card);z-index:200;min-width:120px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:calc(100% + 8px);left:50%;overflow:hidden;transform:translate(-50%)translateY(-8px)}.mode-dropdown.open{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.mode-option{font-family:var(--font-display);cursor:pointer;color:var(--text-secondary);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;width:100%;padding:.6rem 1rem;font-size:.9rem;transition:background .2s;display:flex}.mode-option:hover{background:var(--bg-card-hover);color:var(--text-primary)}.mode-option.active{color:var(--color-accent)}.mode-option-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.navbar__links{align-items:center;gap:.35rem;display:flex}.nav-link{color:var(--text-secondary);letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:6px;padding:.35rem .9rem;font-size:.82rem;font-weight:500;transition:color .18s,background .18s,border-color .18s;position:relative}.nav-link:hover{color:var(--text-primary);background:var(--bg-card);border-color:var(--color-border)}.nav-link.active{color:var(--color-accent);background:rgba(var(--color-accent-rgb,59,130,246), .08);border-color:var(--color-accent);font-weight:600}.nav-link:after,.nav-link--ia-only,.mobile-nav-link--ia-only{display:none}[data-theme=ia] .nav-link--ia-only,[data-theme=ia] .mobile-nav-link--ia-only{display:inline-flex}.navbar__actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.navbar__hamburger{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:5px;padding:.4rem;transition:background .2s;display:none}.navbar__hamburger:hover{background:var(--bg-card)}.hamburger-line{background:var(--text-secondary);border-radius:2px;width:24px;height:2px;transition:transform .3s,opacity .3s,background .3s}.navbar__hamburger.open .hamburger-line:first-child{transform:translateY(7px)rotate(45deg)}.navbar__hamburger.open .hamburger-line:nth-child(2){opacity:0}.navbar__hamburger.open .hamburger-line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.navbar__mobile-menu{top:var(--nav-height);background:var(--bg-nav);-webkit-backdrop-filter:blur(16px);padding:1rem var(--container-padding) 1.5rem;border-bottom:1px solid var(--border-color);opacity:0;z-index:99;flex-direction:column;gap:.25rem;transition:transform .3s,opacity .3s;display:none;position:fixed;left:0;right:0;transform:translateY(-100%)}.navbar__mobile-menu.open{opacity:1;display:flex;transform:translateY(0)}.mobile-nav-link{color:var(--text-secondary);border:1px solid #0000;border-radius:8px;padding:.65rem 1rem;font-size:.95rem;font-weight:500;transition:background .18s,color .18s,border-color .18s}.mobile-nav-link:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--color-border)}.mobile-nav-link.active{color:var(--color-accent);background:rgba(var(--color-accent-rgb,59,130,246), .08);border-color:var(--color-accent);font-weight:600}.navbar.scrolled{background:var(--bg-nav);box-shadow:var(--shadow-nav), 0 4px 20px #0000004d}.hero-section{min-height:100vh;padding-top:var(--nav-height);background:var(--gradient-hero);align-items:center;transition:background .5s;display:flex;position:relative;overflow:hidden}#hero-canvas{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-content{z-index:1;max-width:800px;position:relative}.hero-badge{background:var(--tag-bg);border:1px solid var(--tag-border);font-size:.8rem;font-family:var(--font-display);color:var(--tag-text);border-radius:100px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .85rem;animation:.8s cubic-bezier(.16,1,.3,1) .1s both heroFadeDown;display:inline-flex}.hero-badge-dot{background:var(--color-accent);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse}.hero-title{font-family:var(--font-display);margin-bottom:1.25rem;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;line-height:1.1;transition:font-family .3s;animation:.9s cubic-bezier(.16,1,.3,1) .25s both heroFadeUp}.hero-name{color:var(--text-primary);display:block}.hero-suffix{color:var(--color-accent);transition:color .4s;display:block}.hero-tagline{color:var(--text-secondary);max-width:600px;margin-bottom:2rem;font-size:clamp(1.1rem,2.5vw,1.5rem);line-height:1.5;transition:color .3s;animation:.9s cubic-bezier(.16,1,.3,1) .4s both heroFadeUp}.hero-cta-group{flex-wrap:wrap;gap:1rem;animation:.9s cubic-bezier(.16,1,.3,1) .55s both heroFadeUp;display:flex}.btn{border-radius:var(--border-radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background .3s,border-color .3s,color .3s;display:inline-flex}.btn-primary{background:var(--btn-bg);color:var(--btn-text)}.btn-primary:hover{box-shadow:var(--shadow-button);color:var(--btn-text);transform:translateY(-2px)}.btn-outline{color:var(--btn-outline-text);border:1.5px solid var(--btn-outline-border);background:0 0}.btn-outline:hover{background:var(--color-accent-glow);color:var(--btn-outline-text);transform:translateY(-2px)}.btn-sm{padding:.5rem 1rem;font-size:.85rem}.btn-icon{background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:8px;justify-content:center;padding:0}.btn-icon:hover{color:var(--color-accent);border-color:var(--border-color-hover);background:var(--bg-card-hover);transform:translateY(-2px)}.section{padding:var(--section-gap) 0}.section--alt{background:var(--bg-secondary);transition:background .4s}.section-header{text-align:center;margin-bottom:4rem}.section-label{font-family:var(--font-display);letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.75rem;font-size:.8rem;font-weight:600;transition:color .4s;display:inline-block}.section-title{color:var(--text-primary);margin-bottom:1rem;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;transition:color .3s}.section-description{max-width:600px;color:var(--text-secondary);margin:0 auto;font-size:1.05rem;transition:color .3s}.about-grid{grid-template-columns:1fr 1.8fr;align-items:center;gap:4rem;display:grid}.about-avatar-wrap{flex-direction:column;align-items:center;display:flex;position:relative}.about-avatar{aspect-ratio:1;border-radius:var(--border-radius-lg);object-fit:cover;border:2px solid var(--border-color);width:100%;max-width:320px;box-shadow:var(--border-glow);filter:none;transition:border-color .4s,box-shadow .4s,filter .4s}.about-avatar-glow{background:radial-gradient(ellipse, var(--color-accent-glow), transparent 70%);border-radius:inherit;z-index:-1;transition:background .4s;position:absolute;inset:-20px}.about-content h3{font-family:var(--font-display);color:var(--text-primary);margin-bottom:1rem;font-size:1.6rem;font-weight:700;transition:color .3s}.about-text{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.8;transition:color .3s}.about-stats{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;display:grid}.about-stat{text-align:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:1rem;transition:background .4s,border-color .4s}.stat-value{font-family:var(--font-display);color:var(--color-accent);font-size:1.6rem;font-weight:700;transition:color .4s;display:block}.stat-label{color:var(--text-muted);font-size:.8rem;transition:color .3s}.skill-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:default;flex-direction:column;align-items:center;gap:.6rem;padding:1.25rem .75rem;transition:background .3s,border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.34,1.56,.64,1);display:flex}.skill-icon{filter:grayscale(.3);justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;transition:filter .3s,transform .3s;display:flex}.skill-card:hover .skill-icon{filter:grayscale(0);transform:scale(1.1)}.skill-name{color:var(--text-secondary);text-align:center;font-size:.78rem;font-weight:500;line-height:1.3;transition:color .3s}.skills-categories{flex-direction:column;gap:2.5rem;display:flex}.skill-category-title{font-family:var(--font-display);color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:.85rem;font-weight:600;transition:color .4s}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.75rem;display:grid}.projects-grid--featured{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-card);flex-direction:column;transition:background .4s,border-color .4s,box-shadow .4s,transform .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-6px)}.card-image-wrap{aspect-ratio:16/9;background:var(--bg-tertiary);position:relative;overflow:hidden}.card-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .55s;display:block}.project-card:hover .card-image-wrap img{transform:scale(1.06)}.card-image-overlay{pointer-events:none;background:linear-gradient(#0000 50%,#00000059 100%);position:absolute;inset:0}.card-img-badges{pointer-events:none;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex;position:absolute;top:.75rem;left:.75rem;right:.75rem}.card-img-badge{font-size:.7rem;font-weight:600;font-family:var(--font-display);letter-spacing:.04em;-webkit-backdrop-filter:blur(8px);border-radius:100px;align-items:center;gap:.3rem;padding:.25rem .65rem;display:inline-flex}.card-img-badge--featured{color:#fff;background:#0066ffd9;border:1px solid #fff3}.card-img-badge--date{color:#ffffffe6;background:#0000008c;border:1px solid #ffffff1a;margin-left:auto}.card-image-placeholder{background:var(--bg-tertiary);width:100%;height:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:3rem;display:flex}.card-body{flex-direction:column;flex:1;gap:.65rem;padding:1.25rem 1.5rem 1rem;display:flex}.card-title{color:var(--text-primary);font-size:1.1rem;font-weight:700;line-height:1.3;transition:color .3s}.card-description{color:var(--text-secondary);flex:1;font-size:.875rem;line-height:1.65;transition:color .3s}.card-tags{flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.25rem;display:flex}.tag{background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);font-size:.72rem;font-weight:500;font-family:var(--font-display);border-radius:100px;padding:.2rem .6rem;transition:background .4s,border-color .4s,color .4s}.card-links{border-top:1px solid var(--border-color);background:var(--bg-card);gap:.75rem;padding:1rem 1.5rem;transition:background .4s,border-color .4s;display:flex}.card-btn{font-size:.82rem;font-weight:600;font-family:var(--font-display);cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s;display:inline-flex}.card-btn:hover{transform:translateY(-1px)}.card-btn--primary{background:var(--color-primary,#06f);color:#fff;border:1px solid #0000}.card-btn--primary:hover{background:#0052cc}.card-btn--outline{color:var(--text-primary);border:1px solid var(--border-color);background:0 0}.card-btn--outline:hover{border-color:var(--color-primary,#06f);color:var(--color-primary,#06f)}.card-private-note{color:var(--text-muted);align-items:center;gap:.4rem;margin:auto 0;font-size:.78rem;display:inline-flex}.coming-soon{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:400px;padding:5rem 2rem;animation:.6s fadeIn;display:flex}.coming-soon-icon{font-size:4rem;animation:3s ease-in-out infinite float}.coming-soon-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.4rem;font-weight:700}.coming-soon-text{color:var(--text-secondary);max-width:400px;font-size:.95rem}.coming-soon-badge{border:1px solid var(--border-color);font-family:var(--font-display);color:var(--text-muted);border-radius:100px;padding:.5rem 1.25rem;font-size:.8rem;animation:2.5s ease-in-out infinite glowPulse}.timeline{max-width:800px;margin:0 auto;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--timeline-line), transparent);width:2px;transition:background .4s;position:absolute;top:0;bottom:0;left:20px}.timeline-item{gap:2rem;padding-bottom:2.5rem;padding-left:56px;display:flex;position:relative}.timeline-dot{background:var(--timeline-dot);border:3px solid var(--bg-primary);width:18px;height:18px;box-shadow:0 0 10px var(--timeline-dot-glow);border-radius:50%;flex-shrink:0;transition:background .4s,box-shadow .4s,border-color .4s;position:absolute;top:4px;left:11px}.timeline-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);flex:1;padding:1.25rem 1.5rem;transition:background .4s,border-color .4s}.timeline-date{font-family:var(--font-display);color:var(--color-accent);margin-bottom:.4rem;font-size:.8rem;transition:color .4s}.timeline-title{color:var(--text-primary);margin-bottom:.2rem;font-weight:700;transition:color .3s}.timeline-org{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem;transition:color .3s}.timeline-desc{color:var(--text-muted);font-size:.9rem;line-height:1.6;transition:color .3s}.contact-grid{grid-template-columns:1fr 1.5fr;align-items:start;gap:4rem;display:grid}.contact-info h3{font-family:var(--font-display);color:var(--text-primary);margin-bottom:1rem;font-size:1.4rem;font-weight:700;transition:color .3s}.contact-info p{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.7;transition:color .3s}.contact-links{flex-direction:column;gap:.75rem;display:flex}.contact-link-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);align-items:center;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:background .2s,border-color .2s,transform .2s;display:flex}.contact-link-item:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);transform:translate(4px)}.contact-link-icon{background:var(--tag-bg);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:background .4s;display:flex}.contact-link-text{flex-direction:column;display:flex}.contact-link-label{color:var(--text-muted);font-size:.75rem;transition:color .3s}.contact-link-value{color:var(--text-primary);font-size:.9rem;font-weight:500;transition:color .3s}.contact-form{flex-direction:column;gap:1rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text-secondary);font-size:.85rem;font-weight:500;transition:color .3s}.form-input,.form-textarea{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-primary);outline:none;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s,background .4s}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.form-textarea{resize:vertical;min-height:140px;line-height:1.6}.footer{border-top:1px solid var(--border-color);background:var(--bg-primary);padding:2rem 0;transition:border-color .4s,background .4s}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer__copy{color:var(--text-muted);font-size:.85rem;transition:color .3s}.footer__copy span{color:var(--color-accent);transition:color .4s}.footer__mode{font-family:var(--font-display);color:var(--text-muted);font-size:.8rem;transition:color .3s}.footer__mode strong{color:var(--color-accent);transition:color .4s}.scroll-progress{background:var(--gradient-accent);width:0%;height:3px;box-shadow:0 0 8px var(--color-accent-glow);z-index:1001;transition:background .4s,box-shadow .4s;position:fixed;top:0;left:0}.text-accent{color:var(--color-accent);transition:color .4s}.text-muted{color:var(--text-muted);transition:color .3s}.text-gradient{background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.divider{background:var(--border-color);height:1px;margin:4rem 0;transition:background .4s}@media (width<=1024px){:root{--section-gap:5rem;--container-padding:1.25rem}.about-grid{grid-template-columns:1fr;gap:2.5rem}.about-avatar{max-width:200px}.about-avatar-wrap{justify-content:center;display:flex}.contact-grid{grid-template-columns:1fr;gap:2.5rem}}@media (width<=768px){:root{--section-gap:4rem;--container-padding:1rem;--nav-height:60px}.navbar__links{display:none}.navbar__hamburger{display:flex}.hero-cta-group{flex-direction:column}.hero-cta-group .btn{justify-content:center;width:100%}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.projects-grid{grid-template-columns:1fr}.about-stats{grid-template-columns:repeat(3,1fr)}.timeline:before{left:12px}.timeline-dot{left:3px}.timeline-item{gap:1rem;padding-left:40px}.footer__inner{text-align:center;flex-direction:column}}@media (width<=480px){.about-stats{grid-template-columns:1fr 1fr}.skills-grid{grid-template-columns:repeat(3,1fr)}}.ia-panel{border:1px solid var(--border-color);background:var(--bg-card);max-width:720px;box-shadow:var(--shadow-card);border-radius:16px;flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.ia-examples{border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);flex-wrap:wrap;align-items:center;gap:.5rem;padding:1rem 1.25rem;display:flex}.ia-examples-label{color:var(--text-muted);font-size:.75rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;margin-right:.25rem;font-weight:600}.ia-example{border:1px solid var(--border-color);color:var(--text-secondary);font-size:.78rem;font-family:var(--font-display);cursor:pointer;background:0 0;border-radius:100px;padding:.3rem .75rem;transition:border-color .2s,color .2s,background .2s}.ia-example:hover{color:#06ffa5;background:#06ffa512;border-color:#06ffa5}.ia-chat{scroll-behavior:smooth;flex-direction:column;gap:1rem;min-height:280px;max-height:420px;padding:1.25rem;display:flex;overflow-y:auto}.ia-chat::-webkit-scrollbar{width:4px}.ia-chat::-webkit-scrollbar-track{background:0 0}.ia-chat::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.ia-msg{flex-direction:column;gap:.5rem;max-width:88%;animation:.25s iaMsgIn;display:flex}@keyframes iaMsgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ia-msg--user{align-self:flex-end;align-items:flex-end}.ia-msg--user .ia-msg-text{color:var(--text-primary);background:#0066ff26;border:1px solid #0066ff4d;border-radius:12px 12px 2px;padding:.65rem 1rem;font-size:.88rem;line-height:1.5}.ia-msg--bot{align-self:flex-start;align-items:flex-start}.ia-msg-header{align-items:center;gap:.5rem;display:flex}.ia-avatar{font-size:1rem;line-height:1}.ia-msg--bot .ia-msg-text{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:2px 12px 12px;min-height:1.2em;padding:.75rem 1rem;font-size:.875rem;line-height:1.65}.ia-msg--bot .ia-msg-text strong{color:var(--text-primary)}.ia-nivel{font-size:.68rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;border-radius:100px;padding:.2rem .55rem}.ia-nivel--avanzado{color:#06ffa5;background:#06ffa51f;border:1px solid #06ffa54d}.ia-nivel--intermedio{color:#fbbf24;background:#fbbf241f;border:1px solid #fbbf244d}.ia-proyectos{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.75rem;display:flex}.ia-proyectos>span:first-child{font-weight:600;font-family:var(--font-display)}.ia-tags{flex-wrap:wrap;gap:.3rem;margin-top:.15rem;display:flex}.ia-tag{font-size:.7rem;font-family:var(--font-display);background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);border-radius:100px;padding:.15rem .55rem}.ia-tag--tech{color:#b14eff;background:#b14eff1a;border-color:#b14eff4d}.ia-thinking{align-items:center;gap:.5rem;flex-direction:row!important}.ia-dots{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:2px 12px 12px;gap:4px;padding:.65rem .75rem;display:flex}.ia-dots span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite iaDot}.ia-dots span:nth-child(2){animation-delay:.2s}.ia-dots span:nth-child(3){animation-delay:.4s}@keyframes iaDot{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.ia-input-wrap{border-top:1px solid var(--border-color);background:var(--bg-card);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.ia-input{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;outline:none;flex:1;padding:.6rem .9rem;font-size:.88rem;transition:border-color .2s}.ia-input:focus{border-color:#06ffa5}.ia-input::placeholder{color:var(--text-muted)}.ia-send-btn{color:#0a0a1a;cursor:pointer;background:#06ffa5;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:background .2s,transform .15s;display:flex}.ia-send-btn:hover{background:#00e090;transform:translateY(-1px)}.ia-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.ia-disclaimer{color:var(--text-muted);border-top:1px solid var(--border-color);background:var(--bg-tertiary);align-items:center;gap:.4rem;padding:.6rem 1.25rem;font-size:.72rem;display:flex}@media (width<=600px){.ia-panel{border-radius:12px}.ia-chat{max-height:320px}.ia-msg{max-width:95%}}.lab-card-header{position:relative;overflow:hidden}.lab-platform-bar{width:3px;height:100%;position:absolute;top:0;left:0}.lab-header-content{justify-content:space-between;align-items:center;padding:.75rem 1rem .75rem 1.25rem;display:flex}.lab-platform-badge{font-size:.72rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;border:1px solid;border-radius:100px;align-items:center;gap:.35rem;padding:.25rem .65rem;display:inline-flex}.lab-status{font-size:.72rem;font-weight:600;font-family:var(--font-display);color:#9fef00;letter-spacing:.04em;align-items:center;gap:.3rem;display:inline-flex}.lab-meta{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.lab-os{color:var(--text-secondary);font-size:.78rem;font-family:var(--font-display)}.lab-diff{font-size:.7rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;border:1px solid;border-radius:100px;padding:.15rem .55rem}.lab-rating{color:var(--text-muted);font-size:.75rem;font-family:var(--font-display);margin-left:auto}.lab-techniques{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.15rem;display:flex}.lab-techniques-label{font-size:.7rem;font-weight:600;font-family:var(--font-display);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.lab-technique{font-size:.7rem;font-family:var(--font-display);color:#00ff41;background:#00ff4112;border:1px solid #00ff4133;border-radius:100px;padding:.15rem .55rem}.lab-pwned-badge{font-size:.8rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:#9fef00;background:#9fef000f;border:1px solid #9fef004d;border-radius:100px;align-items:center;gap:.4rem;padding:.4rem 1rem;display:inline-flex}.lang-btn{font-family:var(--font-display);letter-spacing:.08em;justify-content:center;min-width:38px;font-size:.72rem;font-weight:700}.about-focus-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);gap:1rem;margin-bottom:1.5rem;padding:1.25rem;transition:background .4s,border-color .4s;display:flex;position:relative;overflow:hidden}.about-focus-card:before{content:"";background:var(--gradient-accent);width:3px;transition:background .4s;position:absolute;top:0;bottom:0;left:0}.focus-card-icon{background:var(--tag-bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.6rem;transition:background .4s;display:flex}.focus-card-body{flex:1}.focus-card-title{font-family:var(--font-display);color:var(--color-accent);margin-bottom:.35rem;font-size:.9rem;font-weight:700;transition:color .4s}.focus-card-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.5;transition:color .3s}.focus-card-tags{flex-wrap:wrap;gap:.35rem;margin-top:.6rem;display:flex}.focus-card-tag{background:var(--tag-bg);border:1px solid var(--tag-border);font-size:.72rem;font-family:var(--font-display);color:var(--tag-text);border-radius:100px;padding:.15rem .5rem;transition:background .4s,border-color .4s,color .4s}.about-social-links{gap:.6rem;margin-bottom:1.5rem;display:flex}.social-link{background:var(--bg-card);border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-secondary);border-radius:10px;justify-content:center;align-items:center;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .2s;display:flex}.social-link:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);color:var(--color-accent);transform:translateY(-3px)}.social-link--linkedin{width:auto;font-size:.78rem;font-family:var(--font-display);letter-spacing:.02em;color:var(--color-accent);border-color:var(--color-accent);gap:.45rem;padding:0 .85rem;font-weight:600}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:.85rem;display:grid}.skill-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:default;flex-direction:column;align-items:center;gap:.5rem;padding:1.1rem .6rem .9rem;transition:background .3s,border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden}.skill-card:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-5px)scale(1.02)}.skill-card:after{content:"";background:linear-gradient(135deg, var(--color-accent-glow), transparent 60%);opacity:0;border-radius:inherit;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.skill-card:hover:after{opacity:1}.skill-icon-wrap{z-index:1;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:relative}.skill-icon-wrap i{filter:grayscale(.2);font-size:2rem;line-height:1;transition:filter .3s,transform .3s}.skill-card:hover .skill-icon-wrap i{filter:grayscale(0);transform:scale(1.12)}.skill-icon-fallback{background:var(--tag-bg);z-index:1;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;transition:background .3s,transform .3s;display:flex;position:relative}.skill-card:hover .skill-icon-fallback{background:var(--bg-card-hover);transform:scale(1.12)}.skill-icon-fallback svg{width:22px;height:22px;fill:var(--color-accent);transition:fill .4s}.skill-name{color:var(--text-secondary);text-align:center;z-index:1;font-size:.75rem;font-weight:500;line-height:1.3;transition:color .3s;position:relative}.skill-card:hover .skill-name{color:var(--text-primary)}.skill-level{background:var(--color-accent);opacity:.6;border-radius:50%;width:5px;height:5px;transition:background .4s;position:absolute;top:8px;right:8px}.skill-category-wrap{margin-bottom:2.5rem}.skill-category-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.skill-category-title{font-family:var(--font-display);color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.85rem;font-weight:600;transition:color .4s}.skill-category-line{background:linear-gradient(to right, var(--border-color), transparent);flex:1;height:1px;transition:background .4s}.skill-count-badge{background:var(--tag-bg);border:1px solid var(--tag-border);font-size:.7rem;font-family:var(--font-display);color:var(--tag-text);border-radius:100px;padding:.1rem .5rem;transition:background .4s,border-color .4s,color .4s}.skills-mode-summary{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-secondary);align-items:center;gap:.75rem;margin-bottom:2.5rem;padding:.85rem 1.25rem;font-size:.875rem;transition:background .4s,border-color .4s,color .3s;animation:.4s fadeIn;display:flex}.skills-mode-summary strong{color:var(--color-accent);font-family:var(--font-display);transition:color .4s}.skills-mode-summary-icon{flex-shrink:0;font-size:1.25rem}.timeline-item-tags{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;display:flex}.exp-tag{background:var(--tag-bg);border:1px solid var(--tag-border);font-size:.72rem;font-family:var(--font-display);color:var(--tag-text);border-radius:100px;padding:.2rem .55rem;transition:background .4s,border-color .4s,color .4s}.timeline-type-badge{font-size:.68rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;border-radius:100px;align-items:center;gap:.3rem;margin-bottom:.5rem;padding:.18rem .55rem;font-weight:600;display:inline-flex}.type-work{color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f640}.type-project{color:#4ade80;background:#22c55e1f;border:1px solid #22c55e40}.type-edu{color:#c084fc;background:#a855f71f;border:1px solid #a855f740}.timeline-dot-icon{background:var(--bg-primary);border:2px solid var(--timeline-dot);width:28px;height:28px;box-shadow:0 0 12px var(--timeline-dot-glow);border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;transition:background .4s,border-color .4s,box-shadow .4s;display:flex;position:absolute;top:0;left:3px}[data-theme=sec] .timeline-content{font-family:var(--font-display);border-radius:4px}[data-theme=sec] .timeline-date:before{content:"$ ";color:var(--color-accent);opacity:.7}[data-theme=sec] .timeline-title:before{content:"> ";color:var(--color-accent)}[data-theme=ia] .timeline-content{-webkit-backdrop-filter:blur(8px);background:#12042a99!important}.contact-availability{font-size:.8rem;font-family:var(--font-display);color:#4ade80;background:#22c55e1a;border:1px solid #22c55e40;border-radius:100px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.4rem .85rem;display:inline-flex}.availability-dot{background:#22c55e;border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse}.form-field{margin-bottom:1.25rem;position:relative}.form-field label{color:var(--text-muted);pointer-events:none;background:0 0;padding:0 .25rem;font-size:.9rem;transition:all .2s;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.form-field.textarea-field label{top:1rem;transform:none}.form-field input:focus~label,.form-field input:not(:placeholder-shown)~label,.form-field textarea:focus~label,.form-field textarea:not(:placeholder-shown)~label{color:var(--color-accent);background:var(--bg-primary);font-size:.75rem;top:0;transform:translateY(-50%)}.form-field.textarea-field input:focus~label,.form-field.textarea-field textarea:focus~label,.form-field.textarea-field textarea:not(:placeholder-shown)~label{top:0;transform:translateY(-50%)}[data-theme=sec] .contact-form .form-input,[data-theme=sec] .contact-form .form-textarea{font-family:var(--font-display);border-radius:2px}[data-theme=sec] .contact-form .form-input::placeholder,[data-theme=sec] .contact-form .form-textarea::placeholder{color:var(--text-muted);font-family:var(--font-display)}.copy-email-btn{background:var(--tag-bg);border:1px solid var(--tag-border);font-size:.78rem;font-family:var(--font-display);color:var(--tag-text);cursor:pointer;vertical-align:middle;border-radius:6px;align-items:center;gap:.4rem;margin-left:.5rem;padding:.3rem .7rem;transition:all .2s;display:inline-flex}.copy-email-btn:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);color:var(--color-accent)}.copy-email-btn.copied{color:#4ade80;background:#22c55e1f;border-color:#22c55e4d}.back-to-top{background:var(--bg-card);border:1px solid var(--border-color);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;opacity:0;visibility:hidden;z-index:50;border-radius:12px;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s,transform .3s,background .2s,border-color .2s,color .2s,box-shadow .2s;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(10px)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);color:var(--color-accent);box-shadow:var(--border-glow)}.stat-value{font-family:var(--font-display);color:var(--color-accent);min-height:2.2rem;font-size:1.75rem;font-weight:700;transition:color .4s;display:block}@media (width<=768px){.skills-grid{grid-template-columns:repeat(3,1fr)}.about-focus-card{flex-direction:column;gap:.75rem}.back-to-top{bottom:1.25rem;right:1.25rem}.contact-availability{font-size:.75rem}}@media (width<=480px){.skills-grid{grid-template-columns:repeat(3,1fr)}}@media (hover:hover) and (pointer:fine){body{cursor:none}.cursor-dot{background:var(--color-accent);pointer-events:none;z-index:9998;mix-blend-mode:difference;border-radius:50%;width:8px;height:8px;transition:background .3s,transform .1s,width .2s,height .2s;position:fixed;transform:translate(-50%,-50%)}.cursor-ring{border:1.5px solid var(--color-accent);pointer-events:none;z-index:9997;opacity:.6;border-radius:50%;width:36px;height:36px;transition:transform .12s,width .25s,height .25s,border-color .3s,opacity .3s;position:fixed;transform:translate(-50%,-50%)}body.cursor-hover .cursor-dot{width:12px;height:12px}body.cursor-hover .cursor-ring{opacity:.4;width:52px;height:52px}body.cursor-click .cursor-dot{transform:translate(-50%,-50%)scale(.6)}body.cursor-click .cursor-ring{transform:translate(-50%,-50%)scale(.8)}}#cursor-trail-canvas{pointer-events:none;z-index:9996;opacity:0;transition:opacity .4s;position:fixed;inset:0}[data-theme=dev] #cursor-trail-canvas{opacity:1}[data-theme=ia] #cursor-trail-canvas{opacity:.7}[data-theme=sec] #cursor-trail-canvas{opacity:1}body:after{content:"";pointer-events:none;z-index:9995;opacity:0;background:repeating-linear-gradient(0deg,#0000,#0000 3px,#00000008 3px 4px);transition:opacity .5s;position:fixed;inset:0}[data-theme=sec] body:after,[data-theme=sec]:after{opacity:1}[data-theme=dev] .hero-section:after{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(circle,#3b82f61f 1px,#0000 1px);background-size:40px 40px;animation:20s linear infinite gridDrift;position:absolute;inset:0}@keyframes gridDrift{0%{background-position:0 0}to{background-position:40px 40px}}[data-theme=ia] .hero-section:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(60% 40% at 30% 60%,#b14eff14 0%,#0000 70%),radial-gradient(50% 50% at 70% 30%,#06ffa50f 0%,#0000 70%);animation:6s ease-in-out infinite alternate iaPulse;position:absolute;inset:0}@keyframes iaPulse{0%{opacity:.6;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}[data-theme=sec] .hero-section:after{content:"";pointer-events:none;z-index:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.07'/%3E%3C/svg%3E");position:absolute;inset:0}.hero-title .hero-suffix{background:var(--gradient-text);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite titleGradient}@keyframes titleGradient{0%{background-position:0%}to{background-position:200%}}.hero-name{display:inline-block;position:relative}.hero-name:after{content:"";background:var(--gradient-accent);border-radius:2px;width:0;height:3px;transition:background .4s;animation:1.2s 1s forwards nameUnderline;position:absolute;bottom:4px;left:0}@keyframes nameUnderline{to{width:100%}}@keyframes glitchShift{0%{clip-path:inset(0% 0 95%);transform:translate(-3px)}10%{clip-path:inset(40% 0);transform:translate(3px)}20%{clip-path:inset(80% 0 5%);transform:translate(-2px)}30%{clip-path:inset(20% 0 60%);transform:translate(2px)}40%{clip-path:inset(60% 0 20%);transform:translate(-3px)}50%{clip-path:inset(10% 0 80%);transform:translate(0)}60%{clip-path:inset(50% 0 30%);transform:translate(2px)}70%{clip-path:inset(30% 0 55%);transform:translate(-2px)}80%{clip-path:inset(70% 0 15%);transform:translate(1px)}90%{clip-path:inset(5% 0 85%);transform:translate(-1px)}to{clip-path:inset(0% 0);transform:translate(0)}}.hero-suffix.glitching:before,.hero-suffix.glitching:after{content:attr(data-text);width:100%;height:100%;position:absolute;top:0;left:0}.hero-suffix.glitching:before{color:#ff0050;animation:.25s steps(2,end) forwards glitchShift;left:2px}.hero-suffix.glitching:after{color:#0ff;animation:.25s steps(2,end) 50ms forwards glitchShift;left:-2px}.hero-suffix{position:relative}.navbar:after{content:"";background:linear-gradient(to right, transparent, var(--color-accent), transparent);opacity:.4;width:100%;height:1px;transition:opacity .4s,background .4s;position:absolute;bottom:0;left:0}.navbar.scrolled:after{opacity:.7}.navbar__logo:hover .logo-pill__name{text-shadow:0 0 16px var(--color-accent-glow)}.logo-suffix{transition:color .3s,text-shadow .3s;position:relative}[data-theme=dev] .logo-suffix{text-shadow:0 0 12px #3b82f680}[data-theme=ia] .logo-suffix{text-shadow:0 0 12px #06ffa580,0 0 24px #b14eff4d}[data-theme=sec] .logo-suffix{text-shadow:0 0 10px #00ff4199,0 0 20px #00ff414d}[data-theme=sec] .section-label{font-family:var(--font-display);animation:4s ease-in-out infinite secLabelFlicker}@keyframes secLabelFlicker{0%,95%,to{opacity:1;text-shadow:0 0 8px #00ff4180}96%{opacity:.4}97%{opacity:1}98%{opacity:.3}99%{opacity:1}}.section-title{display:inline-block;position:relative}.project-card--featured{grid-column:span 1}.card-image-wrap{position:relative}.card-image-overlay{opacity:0;background:linear-gradient(#0000 40%,#000000b3 100%);transition:opacity .3s;position:absolute;inset:0}.project-card:hover .card-image-overlay{opacity:1}[data-theme=ia] .project-card{position:relative}[data-theme=ia] .project-card:before{content:"";background:conic-gradient(from var(--card-angle,0deg), transparent 0deg, var(--color-accent) 60deg, var(--color-secondary) 120deg, transparent 180deg);z-index:-1;opacity:0;border-radius:13px;transition:opacity .3s;position:absolute;inset:-1px}[data-theme=ia] .project-card:hover:before{opacity:.6;animation:3s linear infinite rotateBorder}@keyframes rotateBorder{to{--card-angle:360deg}}@property --card-angle{syntax:"<angle>";inherits:false;initial-value:0deg}[data-theme=sec] .project-card:after{content:"";background:linear-gradient(to right, transparent, var(--color-accent), transparent);opacity:0;height:2px;transition:opacity .2s;position:absolute;top:-2px;left:0;right:0}[data-theme=sec] .project-card:hover:after{opacity:.8;animation:1.5s linear infinite scanLine}@keyframes scanLine{0%{opacity:.8;top:0%}90%{opacity:.8;top:100%}to{opacity:0;top:100%}}[data-theme=sec] .project-card .card-body:before{content:attr(data-index);font-family:var(--font-display);color:var(--text-muted);opacity:.5;font-size:.65rem;position:absolute;top:1rem;right:1rem}[data-theme=ia] .btn-primary{color:#0d0221;background:linear-gradient(135deg,#06ffa5,#00cc84);position:relative;overflow:visible}[data-theme=ia] .btn-primary:before{content:"";border-radius:inherit;filter:blur(8px);opacity:0;z-index:-1;background:linear-gradient(135deg,#06ffa5,#b14eff);transition:opacity .3s;position:absolute;inset:-3px}[data-theme=ia] .btn-primary:hover:before{opacity:.5}[data-theme=sec] .btn-primary{font-family:var(--font-display);letter-spacing:.05em;position:relative}[data-theme=sec] .btn-primary:before{content:"> ";color:#000;font-weight:700}.btn-outline{background-position:100%;background-size:200% 100%;background-image:linear-gradient(to left, transparent 50%, var(--color-accent-glow) 50%);transition:background-position .3s,color .3s,border-color .3s,transform .2s,box-shadow .2s}.btn-outline:hover{color:var(--btn-outline-text);background-position:0}[data-theme=dev] .skill-card:hover{box-shadow:0 0 0 1px #3b82f680, var(--shadow-card-hover)}[data-theme=ia] .skill-card:hover{box-shadow:0 0 0 1px #06ffa566, 0 0 20px #06ffa526, var(--shadow-card-hover)}[data-theme=sec] .skill-card{font-family:var(--font-display);border-radius:2px}[data-theme=sec] .skill-card:hover{box-shadow:0 0 0 1px #00ff4180,0 0 12px #00ff4126}[data-theme=sec] .skill-name{font-family:var(--font-display);letter-spacing:.03em;font-size:.7rem}[data-theme=dev] .skill-card:hover .skill-icon-wrap i{filter:drop-shadow(0 0 6px #3b82f699)}[data-theme=ia] .skill-card:hover .skill-icon-wrap i{filter:drop-shadow(0 0 6px #06ffa599)}[data-theme=sec] .skill-card:hover .skill-icon-wrap i{filter:drop-shadow(0 0 6px #00ff4199)grayscale(.3)brightness(1.1)}[data-theme=dev] .about-avatar{animation:3s ease-in-out infinite avatarGlowDev;box-shadow:0 0 0 2px #3b82f64d,0 0 30px #3b82f626}@keyframes avatarGlowDev{0%,to{box-shadow:0 0 0 2px #3b82f64d,0 0 30px #3b82f626}50%{box-shadow:0 0 0 3px #3b82f680,0 0 50px #3b82f640}}[data-theme=ia] .about-avatar-wrap:before{content:"";border-radius:calc(var(--border-radius-lg) + 4px);z-index:-1;background:conic-gradient(#06ffa5,#b14eff,#06ffa5);animation:4s linear infinite rotateGradient;position:absolute;inset:-3px}@keyframes rotateGradient{to{transform:rotate(360deg)}}[data-theme=ia] .about-avatar{box-shadow:none}[data-theme=sec] .about-avatar{filter:grayscale(.6)brightness(.85)contrast(1.15);animation:8s ease-in-out infinite avatarSecGlitch;box-shadow:0 0 0 2px #00ff4140,0 0 20px #00ff411a}@keyframes avatarSecGlitch{0%,92%,to{filter:grayscale(.6)brightness(.85)contrast(1.15)}93%{filter:grayscale(.6)brightness(.85)contrast(1.15)hue-rotate(90deg)}94%{filter:grayscale(.6)brightness(.85)contrast(1.15)}96%{filter:grayscale(.6)brightness(.85)contrast(1.15)hue-rotate(-30deg)saturate(2)}97%{filter:grayscale(.6)brightness(.85)contrast(1.15)}}[data-theme=ia] .timeline:before{background:linear-gradient(#b14eff,#06ffa5,#0000);animation:3s ease-in-out infinite alternate timelineGlow}@keyframes timelineGlow{0%{filter:drop-shadow(0 0 4px #b14eff80)}to{filter:drop-shadow(0 0 8px #06ffa580)}}.timeline-dot-icon{transform-origin:50%;animation:2.5s ease-in-out infinite dotPulse}@keyframes dotPulse{0%,to{box-shadow:0 0 0 0 var(--timeline-dot-glow)}50%{box-shadow:0 0 0 6px #0000}}.timeline-item{opacity:0;transition:opacity .5s,transform .5s cubic-bezier(.34,1.2,.64,1);transform:translate(-20px)}.timeline-item.visible{opacity:1;transform:translate(0)}.timeline-item:first-child{transition-delay:50ms}.timeline-item:nth-child(2){transition-delay:.15s}.timeline-item:nth-child(3){transition-delay:.25s}.timeline-item:nth-child(4){transition-delay:.35s}.timeline-item:nth-child(5){transition-delay:.45s}.contact-link-item{position:relative;overflow:hidden}.contact-link-item:before{content:"";background:var(--gradient-accent);transform-origin:bottom;width:3px;transition:transform .25s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.contact-link-item:hover:before{transform:scaleY(1)}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow), inset 0 1px 0 #ffffff0d;outline:none}.coming-soon{position:relative;overflow:hidden}.coming-soon:before,.coming-soon:after{content:"";pointer-events:none;border-radius:50%;animation:6s ease-in-out infinite orbFloat;position:absolute}.coming-soon:before{background:radial-gradient(circle, var(--color-accent-glow), transparent 70%);width:300px;height:300px;animation-delay:0s;top:-100px;right:-100px}.coming-soon:after{background:radial-gradient(circle, var(--color-accent-glow), transparent 70%);width:200px;height:200px;animation-delay:3s;bottom:-80px;left:-80px}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}50%{transform:translate(10px,-15px)scale(1.05)}}.coming-soon-badge--terminal{font-family:var(--font-display);border-radius:2px;animation:2s step-end infinite terminalBlink}@keyframes terminalBlink{0%,to{border-color:#00ff414d}50%{border-color:#00ff41b3;box-shadow:0 0 8px #00ff414d}}.theme-transition-overlay{z-index:9999;pointer-events:none;opacity:0;position:fixed;inset:0}.theme-transition-overlay.active{animation:.45s forwards themeWipe}@keyframes themeWipe{0%{opacity:0;clip-path:circle(0%)}40%{opacity:1;clip-path:circle(30%)}70%{opacity:.6;clip-path:circle(80%)}to{opacity:0;clip-path:circle(150%)}}.scroll-progress{box-shadow:0 0 12px var(--color-accent-glow), 0 0 4px var(--color-accent);transition:width .1s linear,background .4s,box-shadow .4s}.footer__mode strong{display:inline-block;position:relative}.footer__mode strong:after{content:"█";vertical-align:middle;color:var(--color-accent);margin-left:2px;font-size:.6em;transition:color .4s;animation:.8s step-end infinite cursorBlink}.animate-on-scroll{opacity:0;transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.34,1.2,.64,1);transform:translateY(24px)}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.animate-on-scroll.from-left{transform:translate(-32px)}.animate-on-scroll.from-right{transform:translate(32px)}.animate-on-scroll.from-scale{transform:scale(.93)}.animate-on-scroll.from-left.visible,.animate-on-scroll.from-right.visible,.animate-on-scroll.from-scale.visible{transform:translate(0)scale(1)}.back-to-top:hover svg{animation:.4s infinite alternate bounceUp}@keyframes bounceUp{0%{transform:translateY(0)}to{transform:translateY(-4px)}}[data-theme=ia] .tag{animation:3s ease-in-out infinite tagPulseIA}[data-theme=ia] .tag:nth-child(2n){animation-delay:.5s}[data-theme=ia] .tag:nth-child(3n){animation-delay:1s}@keyframes tagPulseIA{0%,to{box-shadow:none}50%{box-shadow:0 0 6px #06ffa54d}}[data-theme=ia] .about-focus-card{-webkit-backdrop-filter:blur(12px);background:#12042ab3}[data-theme=ia] .about-focus-card:before{background:linear-gradient(#06ffa5,#b14eff);animation:2s ease-in-out infinite alternate focusBorderIA}@keyframes focusBorderIA{0%{opacity:.6}to{opacity:1}}[data-theme=sec] h1,[data-theme=sec] h2{animation:10s ease-in-out infinite secHeadingFlicker}@keyframes secHeadingFlicker{0%,97%,to{opacity:1}97.5%{opacity:.7}98%{opacity:1}}[data-theme=sec] .hero-badge{font-family:var(--font-display);border-radius:2px}[data-theme=sec] .hero-title{text-shadow:0 0 20px #00ff4133}@media (width<=768px){.cursor-dot,.cursor-ring{display:none}body{cursor:auto}[data-theme=dev] .hero-section:after{display:none}[data-theme=ia] .hero-section:after{animation:none}[data-theme=ia] .about-avatar-wrap:before,[data-theme=sec] body:after{display:none}.project-card:hover{transform:translateY(-4px)!important}.hero-title{font-size:clamp(2.2rem,10vw,3.5rem)}.coming-soon:before{width:150px;height:150px}.coming-soon:after{width:100px;height:100px}}@media (width<=480px){.hero-cta-group .btn{justify-content:center;width:100%}.about-stats{grid-template-columns:repeat(3,1fr);gap:.5rem}.stat-value{font-size:1.4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.05ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.cursor-dot,.cursor-ring{display:none!important}body{cursor:auto!important}}#sn-panel{z-index:900;pointer-events:none;opacity:0;flex-direction:column;align-items:center;gap:6px;transition:opacity .22s,transform .22s;display:flex;position:fixed;top:50%;right:24px;transform:translateY(-50%)translate(16px)}#sn-panel.sn-active{opacity:1;transform:translateY(-50%)translate(0)}.sn-label{font-size:.65rem;font-family:var(--font-mono,monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;text-align:center;text-overflow:ellipsis;max-width:90px;overflow:hidden}.sn-label-to{color:var(--color-accent);font-weight:600}#sn-arrow{color:var(--color-accent);font-size:.75rem;line-height:1;transition:transform .2s}#sn-arrow.sn-arrow-up{transform:none}#sn-bar-track{background:#ffffff1a;border-radius:4px;width:4px;height:80px;position:relative;overflow:hidden}#sn-bar-fill{background:var(--color-accent);width:100%;height:0%;box-shadow:0 0 8px var(--color-accent-glow,var(--color-accent));border-radius:4px;transition:height 60ms linear;position:absolute;bottom:0;left:0}#sn-bar-pct{font-size:.55rem;font-family:var(--font-mono,monospace);color:var(--color-text);pointer-events:none;mix-blend-mode:difference;white-space:nowrap;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=767px){#sn-panel{display:none!important}}@media (prefers-reduced-motion:reduce){#sn-panel,#sn-bar-fill{transition:none}}.jonathan-panel{z-index:1100;pointer-events:none;visibility:hidden;align-items:stretch;display:flex;position:fixed;inset:0}.jonathan-panel.open{pointer-events:all;visibility:visible}.jonathan-panel__backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;background:#0009;transition:opacity .3s;position:absolute;inset:0}.jonathan-panel.open .jonathan-panel__backdrop{opacity:1}.jonathan-panel__drawer{background:var(--bg-card,#0f0f1a);border-left:1px solid var(--color-border,#ffffff1a);flex-direction:column;width:min(520px,92vw);height:100%;margin-left:auto;transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;transform:translate(100%)}.jonathan-panel.open .jonathan-panel__drawer{transform:translate(0)}.jonathan-panel__header{border-bottom:1px solid var(--color-border,#ffffff14);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:2rem 2rem 1.25rem;display:flex}.jonathan-panel__label{font-family:var(--font-mono,monospace);color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem;font-size:.7rem;display:block}.jonathan-panel__title{font-family:var(--font-display);color:var(--color-text);margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.jonathan-panel__sub{color:var(--color-text-muted);margin:0;font-size:.82rem;line-height:1.5}.jonathan-panel__close{border:1px solid var(--color-border,#ffffff1f);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:border-color .2s,color .2s,background .2s;display:flex}.jonathan-panel__close:hover{border-color:var(--color-accent);color:var(--color-accent);background:rgba(var(--color-accent-rgb,59,130,246), .08)}.jonathan-panel__body{scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent;flex:1;padding:1.75rem 2rem 3rem;overflow-y:auto}.jonathan-panel__body::-webkit-scrollbar{width:4px}.jonathan-panel__body::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:2px}.jonathan-panel__body .timeline{flex-direction:column;gap:0;display:flex}@media (width<=480px){.jonathan-panel__drawer{border-left:none;width:100%}}@media (prefers-reduced-motion:reduce){.jonathan-panel__drawer,.jonathan-panel__backdrop{transition:none}}.traj-wrap{-webkit-user-select:none;user-select:none;padding:1rem 0 .5rem}.traj-scroll{scrollbar-width:thin;scrollbar-color:var(--color-accent,#3b82f6) transparent;align-items:flex-start;gap:0;padding:.5rem 1rem 1.25rem;display:flex;position:relative;overflow:auto visible}.traj-scroll::-webkit-scrollbar{height:3px}.traj-scroll::-webkit-scrollbar-track{background:0 0}.traj-scroll::-webkit-scrollbar-thumb{background:var(--color-accent,#3b82f6);border-radius:2px}.traj-line{pointer-events:none;background:#ffffff14;height:1px;position:absolute;top:2.15rem;left:1rem;right:1rem}.traj-item{cursor:pointer;z-index:1;background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:.45rem;min-width:82px;padding:0 .75rem;transition:transform .2s;display:flex;position:relative}.traj-item:hover{transform:translateY(-3px)}.traj-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:6px}.traj-item__year{font-family:var(--font-mono,monospace);color:var(--color-text-muted);opacity:.5;letter-spacing:.04em;font-size:.55rem;line-height:1;transition:color .2s,opacity .2s}.traj-item__dot{background:var(--bg-card,#ffffff0a);border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;line-height:1;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s;display:flex}.traj-item:hover .traj-item__dot{background:#ffffff12;border-color:#fff3}.traj-item__title{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:80px;font-size:.62rem;font-weight:600;transition:color .2s;overflow:hidden}.traj-item__badge{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);opacity:.45;font-size:.52rem;font-weight:700;transition:opacity .2s}.traj-item.active .traj-item__year{color:var(--color-accent,#3b82f6);opacity:1}.traj-item.active .traj-item__dot{background:var(--color-accent,#3b82f6);border-color:var(--color-accent,#3b82f6);transform:scale(1.15);box-shadow:0 0 0 4px #3b82f633,0 0 18px #3b82f673}.traj-item.active .traj-item__title{color:var(--color-text)}.traj-item.active .traj-item__badge{opacity:.8}.traj-item.active .traj-item__dot:after{content:"";border:2px solid var(--color-accent,#3b82f6);pointer-events:none;border-radius:50%;animation:1.8s ease-in-out infinite traj-pulse;position:absolute;inset:-5px}@keyframes traj-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:0;transform:scale(1.5)}}@media (width<=480px){.traj-item{min-width:68px;padding:0 .5rem}.traj-item__dot{width:30px;height:30px;font-size:.85rem}.traj-item__title{max-width:64px;font-size:.58rem}.traj-item__badge{display:none}}@media (prefers-reduced-motion:reduce){.traj-item{transition:none}.traj-item.active .traj-item__dot:after{animation:none}}.pdm{z-index:9985;visibility:hidden;pointer-events:none;position:fixed;inset:0}.pdm.is-open{visibility:visible;pointer-events:auto}.pdm__backdrop{-webkit-backdrop-filter:blur(6px);opacity:0;background:#000000b8;transition:opacity .3s;position:absolute;inset:0}.pdm.is-open .pdm__backdrop{opacity:1}.pdm__hero{background-position:50%;background-repeat:no-repeat;background-size:cover;flex-shrink:0;height:160px;display:none;position:relative}.pdm__hero--visible{display:block}.pdm__hero-overlay{background:linear-gradient(#00000040 0%,#000000b3 100%);position:absolute;inset:0}.pdm__panel{background:var(--bg-primary);border-left:1px solid var(--border-color);will-change:transform;flex-direction:column;width:min(600px,100vw);transition:transform .4s cubic-bezier(.34,1.2,.64,1);display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%)}.pdm.is-open .pdm__panel{transform:translate(0)}.pdm__scroll{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent;flex:1;overflow:hidden auto}.pdm__scroll::-webkit-scrollbar{width:4px}.pdm__scroll::-webkit-scrollbar-track{background:0 0}.pdm__scroll::-webkit-scrollbar-thumb{background:var(--color-accent);opacity:.5;border-radius:4px}.pdm__header{border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0;padding:1.25rem 1.5rem 1rem}.pdm__header-top{justify-content:space-between;align-items:center;margin-bottom:.65rem;display:flex}.pdm__header-left{align-items:center;gap:.6rem;display:flex}.pdm__nav-btns{align-items:center;gap:.3rem;display:flex}.pdm__nav-btn{border:1px solid var(--border-color);width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:border-color .2s,color .2s,background .2s;display:flex}.pdm__nav-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--tag-bg)}.pdm__nav-counter{font-family:var(--font-display);color:var(--text-secondary);opacity:.6;text-align:center;min-width:32px;font-size:.62rem}.pdm__mode-pill{font-family:var(--font-display);letter-spacing:.1em;background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--color-accent);text-transform:uppercase;border-radius:100px;padding:.18rem .6rem;font-size:.68rem;font-weight:700}.pdm__close{border:1px solid var(--border-color);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.pdm__close:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--tag-bg)}.pdm__title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:.35rem;font-size:1.25rem;font-weight:700;line-height:1.3}.pdm__desc{color:var(--text-secondary);margin-bottom:.9rem;font-size:.83rem;line-height:1.55}.pdm__level-row{align-items:center;gap:.75rem;display:flex}.pdm__level-badge{font-family:var(--font-display);background:var(--gradient-accent);color:#fff;white-space:nowrap;letter-spacing:.03em;border-radius:6px;flex-shrink:0;padding:.22rem .6rem;font-size:.68rem;font-weight:700;box-shadow:0 0 8px #3b82f640}.pdm__xp-wrap{flex:1}.pdm__xp-label{font-family:var(--font-display);color:var(--text-secondary);justify-content:space-between;margin-bottom:.22rem;font-size:.66rem;display:flex}.pdm__xp-track{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:100px;height:6px;overflow:hidden}.pdm__xp-fill{background:var(--gradient-accent);border-radius:100px;width:0%;height:100%;transition:width .9s cubic-bezier(.34,1.2,.64,1)}.pdm__body{padding:1.25rem 1.5rem 2.5rem}.pdm__slabel{font-family:var(--font-display);color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.4rem;margin-top:1.5rem;margin-bottom:.65rem;font-size:.68rem;font-weight:700;display:flex}.pdm__slabel:first-child{margin-top:0}.pdm__overview{background:var(--bg-card);border:1px solid var(--border-color);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm);color:var(--text-secondary);padding:.9rem 1rem;font-size:.83rem;line-height:1.65;position:relative}.pdm__overview-result{border-top:1px solid var(--border-color);color:var(--text-primary);margin-top:.7rem;padding-top:.7rem;font-size:.8rem;font-weight:500;line-height:1.5}.pdm-phase{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);margin-bottom:.5rem;transition:border-color .2s;overflow:hidden}.pdm-phase:hover{border-color:rgba(var(--color-accent-rgb,59, 130, 246), .45)}.pdm-phase__header{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;background:0 0;border:none;align-items:center;gap:.65rem;width:100%;padding:.8rem .9rem;list-style:none;display:flex}.pdm-phase__header:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.pdm-phase__num{font-family:var(--font-display);color:var(--text-secondary);opacity:.5;min-width:18px;font-size:.62rem}.pdm-phase__icon{background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:1rem;display:flex}.pdm-phase__info{flex:1;min-width:0}.pdm-phase__name{font-family:var(--font-display);color:var(--text-primary);font-size:.8rem;font-weight:700;line-height:1.2}.pdm-phase__verb{color:var(--color-accent);font-size:.7rem;font-family:var(--font-display);opacity:.85;margin-top:.08rem}.pdm-phase__xp{font-family:var(--font-display);background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--color-accent);white-space:nowrap;border-radius:100px;flex-shrink:0;padding:.12rem .45rem;font-size:.68rem;font-weight:700}.pdm-phase__chevron{width:14px;height:14px;color:var(--text-secondary);opacity:.6;flex-shrink:0;transition:transform .25s}.pdm-phase.is-expanded .pdm-phase__chevron{transform:rotate(180deg)}.pdm-phase__body{grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1);display:grid}.pdm-phase.is-expanded .pdm-phase__body{grid-template-rows:1fr}.pdm-phase__body-inner{overflow:hidden}.pdm-phase__content{border-top:1px solid var(--border-color);padding:.75rem .9rem .9rem}.pdm-phase__summary{color:var(--text-secondary);margin-bottom:.65rem;font-size:.81rem;line-height:1.6}.pdm-phase__points{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.pdm-phase__point{color:var(--text-secondary);padding-left:1rem;font-size:.78rem;line-height:1.5;position:relative}.pdm-phase__point:before{content:"▸";color:var(--color-accent);font-size:.65rem;position:absolute;top:.18em;left:0}.pdm-achievements{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.pdm-achievement{background:var(--bg-card);border:1px solid var(--border-color);border-left:3px solid var(--color-accent);border-radius:var(--border-radius-sm);flex-direction:column;gap:.2rem;padding:.8rem .9rem;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.pdm-achievement:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.pdm-achievement__value{font-family:var(--font-display);color:var(--color-accent);letter-spacing:-.02em;font-size:1.35rem;font-weight:700;line-height:1.1}.pdm-achievement__label{color:var(--text-secondary);opacity:.8;font-size:.68rem;line-height:1.3}.pdm-highlights{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.pdm-highlight{color:var(--text-secondary);padding-left:1.1rem;font-size:.8rem;line-height:1.5;position:relative}.pdm-highlight:before{content:"✓";color:var(--color-accent);font-size:.72rem;font-weight:700;position:absolute;left:0}.pdm-tech-group{margin-bottom:.7rem}.pdm-tech-group__label{font-family:var(--font-display);color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;opacity:.75;align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:.62rem;display:flex}.pdm-tech-group__label:after{content:"";background:var(--border-color);flex:1;height:1px}.pdm-tech-chips{flex-wrap:wrap;gap:.3rem;display:flex}.pdm-tech-chip{background:var(--tag-bg);border:1px solid var(--tag-border);font-size:.72rem;font-family:var(--font-display);color:var(--tag-text);border-radius:100px;padding:.18rem .5rem;line-height:1.4}.pdm__cta{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:.65rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.pdm__cta-btn{border-radius:var(--border-radius-sm);min-width:120px;font-family:var(--font-display);cursor:pointer;border:1px solid #0000;flex:1;justify-content:center;align-items:center;gap:.45rem;padding:.6rem 1rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.pdm__cta-btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.pdm__cta-btn--primary:hover{filter:brightness(1.15);transform:translateY(-1px)}.pdm__cta-btn--outline{color:var(--text-primary);border-color:var(--border-color);background:0 0}.pdm__cta-btn--outline:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--tag-bg)}.pdm__pwned-banner{border-radius:var(--border-radius-sm);background:#9fef000d;border:1px solid #9fef0038;border-left:3px solid #9fef00;align-items:center;gap:.65rem;margin-bottom:.75rem;padding:.75rem .9rem;display:flex}.pdm__pwned-icon{font-size:1.4rem}.pdm__pwned-title{font-family:var(--font-display);color:#9fef00;letter-spacing:.04em;font-size:.8rem;font-weight:700}.pdm__pwned-sub{color:var(--text-secondary);font-size:.72rem;font-family:var(--font-display);margin-top:.1rem}.card-btn--process{border-radius:var(--border-radius-sm);font-family:var(--font-display);cursor:pointer;border:1px solid var(--border-color);color:var(--text-secondary);background:0 0;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.75rem;font-weight:600;line-height:1;text-decoration:none;transition:all .2s;display:inline-flex}.card-btn--process:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--tag-bg)}[data-theme=ia] .pdm__panel{background:#0a0a1af5}[data-theme=ia] .pdm__header{background:#12122aeb}[data-theme=ia] .pdm-phase__icon{box-shadow:0 0 10px #06ffa51f}[data-theme=ia] .pdm__xp-fill{box-shadow:0 0 8px #06ffa566}[data-theme=ia] .pdm__level-badge{box-shadow:0 0 10px #06ffa54d}[data-theme=ia] .pdm-achievement:hover{box-shadow:0 0 12px #06ffa51f}[data-theme=sec] .pdm__title:before{content:"> ";color:var(--color-accent);opacity:.9}[data-theme=sec] .pdm__slabel:before{content:"// ";opacity:.6}[data-theme=sec] .pdm-phase__point:before{content:"$";font-family:var(--font-display);font-size:.7rem}[data-theme=sec] .card-btn--process{font-family:var(--font-display)}@media (width<=640px){.pdm__panel{width:100vw}.pdm__header,.pdm__body{padding-left:1rem;padding-right:1rem}.pdm-achievements{grid-template-columns:1fr 1fr}.pdm__title{font-size:1.1rem}}@media (width<=380px){.pdm-achievements{grid-template-columns:1fr}.pdm__cta{flex-direction:column}.pdm__cta-btn{min-width:unset}}.vtl{--dot:34px;--line-x:calc(var(--dot) / 2 - 1px);--gap-dot-card:1rem;padding:.25rem 0 3rem;position:relative}.vtl__line{left:var(--line-x);top:calc(var(--dot) / 2 + .25rem);background:var(--timeline-line,#3b82f626);pointer-events:none;border-radius:2px;width:2px;position:absolute;bottom:1rem;overflow:hidden}.vtl__line-fill{background:linear-gradient(180deg, var(--color-accent) 0%, var(--timeline-dot) 100%);width:100%;height:0%;box-shadow:0 0 8px var(--timeline-dot-glow,#3b82f666);will-change:height;border-radius:2px;transition:height .12s ease-out}.vtl__items{z-index:1;flex-direction:column;gap:.6rem;display:flex;position:relative}.vtl__item{align-items:flex-start;gap:var(--gap-dot-card);display:flex}.vtl__connector{width:var(--dot);flex-shrink:0;justify-content:center;padding-top:.85rem;display:flex}.vtl__dot{width:var(--dot);height:var(--dot);background:var(--bg-card);border:2px solid var(--border-color);z-index:2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s;display:flex;position:relative}.vtl__icon{z-index:1;pointer-events:none;font-size:.9rem;line-height:1;position:relative}.vtl__pulse{border:2px solid var(--color-accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-5px}.vtl__item--active .vtl__dot{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-glow), 0 0 18px var(--color-accent-glow);transform:scale(1.1)}.vtl__item--active .vtl__pulse{animation:1.8s ease-in-out infinite vtl-pulse}@keyframes vtl-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:0;transform:scale(1.65)}}.vtl__card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius,12px);flex:1;min-width:0;transition:border-color .25s,box-shadow .25s;overflow:hidden}.vtl__item--active .vtl__card{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover)}.vtl__trigger{text-align:left;cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;padding:.8rem .9rem;transition:background .18s;display:block}.vtl__trigger:hover{background:var(--bg-card-hover)}.vtl__trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px;border-radius:var(--border-radius-sm,8px)}.vtl__header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.vtl__header-left{flex:1;min-width:0}.vtl__date{font-family:var(--font-display);color:var(--text-muted);letter-spacing:.05em;margin-bottom:.18rem;font-size:.58rem;line-height:1;display:block}.vtl__title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;font-weight:700;line-height:1.3;transition:color .2s;overflow:hidden}.vtl__item--active .vtl__title{color:var(--color-accent)}.vtl__header-right{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.vtl__badge{letter-spacing:.07em;text-transform:uppercase;background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.56rem;font-weight:700;line-height:1.6}.vtl__chevron{color:var(--text-muted);flex-shrink:0;transition:transform .3s cubic-bezier(.4,0,.2,1),color .2s}.vtl__trigger[aria-expanded=true] .vtl__chevron{color:var(--color-accent);transform:rotate(180deg)}.vtl__body{border-top:1px solid var(--border-color);padding:0 .9rem .9rem}.vtl__desc{color:var(--text-secondary);margin:.7rem 0 0;font-size:.78rem;line-height:1.7}.vtl__highlights{border:1px solid var(--border-color);border-radius:var(--border-radius-sm,8px);background:#ffffff05;flex-direction:column;gap:.4rem;margin:.75rem 0 0;padding:.65rem .75rem;list-style:none;display:flex}.vtl__highlight{color:var(--text-secondary);align-items:flex-start;gap:.5rem;font-size:.75rem;line-height:1.55;display:flex}.vtl__highlight:before{content:"";background:var(--color-accent);width:5px;height:5px;box-shadow:0 0 6px var(--color-accent-glow);border-radius:50%;flex-shrink:0;margin-top:6px}.vtl__metrics{grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.75rem;display:grid}.vtl__metric{border:1px solid var(--border-color);border-radius:var(--border-radius-sm,8px);background:#ffffff05;flex-direction:column;align-items:center;padding:.5rem .25rem;transition:background .2s,border-color .2s;display:flex}.vtl__metric:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover)}.vtl__metric-value{font-family:var(--font-display);color:var(--color-accent);font-size:.9rem;font-weight:700;line-height:1.2}.vtl__metric-label{color:var(--text-muted);text-align:center;margin-top:3px;font-size:.57rem;line-height:1.35}.vtl__tags{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:5px;margin-top:.75rem;padding-top:.65rem;display:flex}.vtl__tag{font-family:var(--font-display);background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);letter-spacing:.03em;border-radius:6px;padding:3px 9px;font-size:.62rem;font-weight:500;transition:background .18s,border-color .18s,color .18s}.vtl__tag:hover{background:var(--color-accent-dim,#3b82f633);border-color:var(--color-accent);color:var(--text-primary)}.vtl__links{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.vtl__link{border-radius:var(--border-radius-sm,8px);border:1px solid var(--border-color);background:var(--bg-card-hover);color:var(--text-secondary);cursor:pointer;align-items:center;gap:5px;padding:5px 12px;font-size:.7rem;font-weight:600;text-decoration:none;transition:background .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.vtl__link:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--text-inverse,#0a0a1a);transform:translateY(-1px)}.vtl__link:active{transform:translateY(0)scale(.97)}.vtl__link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.vtl__link--detail{border-color:var(--color-accent);color:var(--text-accent,var(--color-accent));background:var(--tag-bg)}.vtl__link--detail:hover{background:var(--color-accent);color:var(--text-inverse,#0a0a1a)}@media (width<=768px){.vtl{--dot:30px;--gap-dot-card:.75rem}.vtl__title{font-size:.82rem}.vtl__metrics{grid-template-columns:repeat(3,1fr)}}@media (width<=480px){.vtl{--dot:28px;--gap-dot-card:.6rem}.vtl__badge{display:none}.vtl__title{font-size:.78rem}.vtl__metrics{grid-template-columns:repeat(2,1fr)}.vtl__trigger{padding:.7rem .75rem}.vtl__body{padding:0 .75rem .75rem}}@media (width<=320px){.vtl__date{display:none}.vtl__metrics{grid-template-columns:1fr 1fr}.vtl__link span{display:none}.vtl__link svg{margin:0}}@media (prefers-reduced-motion:reduce){.vtl__item--active .vtl__pulse{animation:none}.vtl__line-fill,.vtl__chevron,.vtl__card,.vtl__dot,.vtl__link,.vtl__tag,.vtl__metric{transition:none}}
