@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&family=DM+Sans:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}[data-theme=dark]{--bg:#08090f;--bg2:#0e1018;--bg3:#141621;--bg4:#1b1e2d;--gold:#c9a84c;--gold2:#e8c87a;--gold3:#f5dfa0;--text:#e8e6df;--text2:#c8c6bf;--muted:#7a7870;--border:#c9a84c21;--border2:#c9a84c4d;--shadow:#00000080;--nav-bg:#08090feb;--card-hover:#141621;--expired-opacity:.48;--glow:#c9a84c0f}[data-theme=light]{--bg:#f7f5f0;--bg2:#fff;--bg3:#f0ede6;--bg4:#e8e4db;--gold:#9a7230;--gold2:#b8893d;--gold3:#7a5820;--text:#1a1814;--text2:#3a3630;--muted:#7a7060;--border:#9a723026;--border2:#9a723059;--shadow:#0000001a;--nav-bg:#f7f5f0f2;--card-hover:#e8e4db;--expired-opacity:.55;--glow:#9a72300a}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif;line-height:1.6;transition:background .35s,color .35s;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}nav{z-index:200;background:var(--nav-bg);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;padding:1.1rem 5vw;transition:background .35s;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--gold);letter-spacing:.04em;font-family:Cormorant Garamond,Georgia,serif;font-size:1.45rem;font-weight:600;text-decoration:none}.nav-links{gap:1.8rem;list-style:none;display:flex}.nav-links a{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:500;text-decoration:none;transition:color .25s;position:relative}.nav-links a:after{content:"";background:var(--gold);width:0;height:1px;transition:width .3s;position:absolute;bottom:-4px;left:0}.nav-links a:hover{color:var(--gold)}.nav-links a:hover:after{width:100%}.nav-right{align-items:center;gap:.8rem;display:flex}.theme-btn{border:.5px solid var(--border2);cursor:pointer;width:36px;height:36px;color:var(--gold);background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;transition:all .25s;display:flex}.theme-btn:hover{background:#c9a84c1a;transform:rotate(15deg)}.theme-btn svg{fill:none;width:16px;height:16px;stroke:var(--gold);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .35s}.nav-cta{border:.5px solid var(--border2);color:var(--gold);letter-spacing:.07em;text-transform:uppercase;border-radius:5px;align-items:center;gap:.4rem;padding:.48rem 1.1rem;font-size:.76rem;font-weight:500;text-decoration:none;transition:all .25s;display:inline-flex}.nav-cta:hover{background:#c9a84c1a;transform:translateY(-1px)}.nav-cta svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.hero-wrap{max-width:1200px;margin:0 auto;padding:0 5vw}.hero{align-items:center;min-height:100vh;padding:9rem 0 5rem;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(ellipse 70% 60% at 20% 55%,var(--glow) 0%,transparent 65%);pointer-events:none;position:absolute;inset:0}.hero-inner{z-index:1;max-width:700px;position:relative}.hero-eyebrow{align-items:center;gap:.8rem;margin-bottom:2rem;display:flex}.eyebrow-line{background:var(--gold);flex-shrink:0;width:38px;height:1px}.eyebrow-text{letter-spacing:.25em;text-transform:uppercase;color:var(--gold);font-size:.7rem;font-weight:500}.hero-h1{color:var(--text);margin-bottom:1.5rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(3.5rem,6vw,5.5rem);font-weight:300;line-height:1.05}.hero-h1 em{color:var(--gold);font-style:italic}.hero-desc{color:var(--muted);max-width:560px;margin-bottom:2.5rem;font-size:.97rem;line-height:1.9}.hero-tags{flex-wrap:wrap;gap:.55rem;margin-bottom:3rem;display:flex}.tag{border:.5px solid var(--border2);letter-spacing:.1em;text-transform:uppercase;color:var(--gold3);border-radius:3px;padding:.32rem .85rem;font-size:.7rem;transition:all .25s}.tag:hover{background:#c9a84c14;transform:translateY(-2px)}.hero-actions{flex-wrap:wrap;gap:.9rem;display:flex}.btn-primary{background:var(--gold);color:#08090f;letter-spacing:.05em;border-radius:5px;align-items:center;gap:.45rem;padding:.78rem 1.8rem;font-size:.83rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 4px 15px #c9a84c33}.btn-primary:hover{background:var(--gold2);transform:translateY(-3px);box-shadow:0 8px 25px #c9a84c4d}.btn-primary svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.btn-outline{border:.5px solid var(--border2);color:var(--gold);letter-spacing:.05em;border-radius:5px;align-items:center;gap:.45rem;padding:.78rem 1.8rem;font-size:.83rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.btn-outline:hover{background:#c9a84c14;transform:translateY(-3px);box-shadow:0 4px 15px #c9a84c1a}.btn-outline svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.hero-stats{border-top:.5px solid var(--border);gap:3rem;margin-top:4rem;padding-top:2.5rem;display:flex}.stat-num{color:var(--gold);font-family:Cormorant Garamond,Georgia,serif;font-size:2.2rem;font-weight:600;line-height:1;display:block}.stat-lbl{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:.3rem;font-size:.68rem;display:block}section{max-width:1200px;margin:0 auto;padding:6rem 5vw}.section-outer{border-top:.5px solid var(--border)}.section-label{align-items:center;gap:.8rem;margin-bottom:2.5rem;display:flex}.section-label:before{content:"";background:var(--gold);flex-shrink:0;width:22px;height:1px}.section-label span{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:.7rem}.section-title{color:var(--text);margin-bottom:.8rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:300;line-height:1.2}.section-title em{color:var(--gold);font-style:italic}.portfolio-grid{background:var(--border);border-radius:12px;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:3rem;display:grid;overflow:hidden}.portfolio-card{background:var(--bg2);padding:2.5rem;transition:all .4s;position:relative;overflow:hidden}.portfolio-card:hover{background:var(--card-hover)}.portfolio-card:before{content:"";background:var(--gold);width:3px;height:0;transition:height .4s;position:absolute;top:0;left:0}.portfolio-card:hover:before{height:100%}.portfolio-icon{width:44px;height:44px;color:var(--gold);margin-bottom:1.1rem;display:block}.portfolio-icon svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.portfolio-name{color:var(--text);margin-bottom:.65rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:400}.portfolio-desc{color:var(--muted);font-size:.86rem;line-height:1.8}.portfolio-stack{flex-wrap:wrap;gap:.4rem;margin-top:1.2rem;display:flex}.stack-tag{color:var(--gold);background:#c9a84c14;border:.5px solid #c9a84c33;border-radius:3px;padding:.2rem .6rem;font-family:JetBrains Mono,monospace;font-size:.67rem;transition:all .25s}.stack-tag:hover{background:#c9a84c26;transform:translateY(-1px)}.exp-grid{grid-template-columns:1fr 1fr;gap:4rem;margin-top:3rem;display:grid}.exp-col-title{color:var(--gold);letter-spacing:.15em;text-transform:uppercase;margin-bottom:2rem;font-family:Cormorant Garamond,Georgia,serif;font-size:.9rem;font-weight:400}.exp-timeline{padding-left:2rem;position:relative}.exp-timeline:before{content:"";background:var(--border);width:.5px;position:absolute;top:0;bottom:0;left:0}.exp-item{margin-bottom:2.5rem;padding-left:1.5rem;position:relative}.exp-item:before{content:"";background:var(--gold);border:2px solid var(--bg);border-radius:50%;width:8px;height:8px;transition:box-shadow .3s;position:absolute;top:.42rem;left:-2.25rem}.exp-current:before{box-shadow:0 0 0 4px #c9a84c33}.exp-period{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.25rem;font-family:JetBrains Mono,monospace;font-size:.67rem}.exp-role{color:var(--text);margin-bottom:.12rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.15rem;font-weight:400}.exp-company{color:var(--muted);margin-bottom:.6rem;font-size:.79rem}.exp-list{flex-direction:column;gap:.3rem;list-style:none;display:flex}.exp-list li{color:var(--muted);padding-left:1rem;font-size:.79rem;line-height:1.6;position:relative}.exp-list li:before{content:"→";color:var(--gold);font-size:.6rem;position:absolute;top:.28rem;left:0}.exp-cert-link{color:var(--gold);border:.5px solid var(--border2);opacity:.75;border-radius:3px;align-items:center;gap:.35rem;margin-top:.5rem;padding:.18rem .55rem;font-family:JetBrains Mono,monospace;font-size:.67rem;text-decoration:none;transition:all .3s;display:inline-flex}.exp-cert-link:hover{opacity:1;transform:translate(3px)}.exp-cert-link svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:10px;height:10px}.edu-card{background:var(--bg2);border:.5px solid var(--border);border-radius:10px;margin-bottom:2rem;padding:1.8rem;transition:border-color .3s}.edu-card:hover{border-color:var(--border2)}.edu-period{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem;font-family:JetBrains Mono,monospace;font-size:.67rem}.edu-degree{color:var(--text);margin-bottom:.25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem}.edu-school{color:var(--muted);margin-bottom:.9rem;font-size:.8rem}.edu-badge{color:var(--muted);border:.5px solid var(--border);background:#c9a84c0f;border-radius:4px;padding:.4rem .8rem;font-size:.75rem;display:inline-block}.bnsp-highlight{background:var(--bg2);border:.5px solid var(--border);border-left:2px solid var(--gold);border-radius:8px;margin-top:2rem;padding:1.4rem 1.5rem;transition:all .3s}.bnsp-highlight:hover{border-color:var(--border2);transform:translate(3px)}.bnsp-label{color:var(--gold);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.6rem;font-family:JetBrains Mono,monospace;font-size:.67rem}.bnsp-title{color:var(--text);margin-bottom:.25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.1rem}.bnsp-sub{color:var(--muted);margin-bottom:.35rem;font-size:.77rem}.bnsp-reg{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.65rem}.cert-grid{background:var(--border);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:3rem;display:grid;overflow:hidden}.cert-card{background:var(--bg2);flex-direction:column;padding:2rem;transition:all .3s;display:flex;position:relative}.cert-card:hover{background:var(--card-hover);transform:translateY(-2px)}.cert-content{flex:1}.cert-org{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem;font-family:JetBrains Mono,monospace;font-size:.65rem}.cert-title{color:var(--text);margin-bottom:.4rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;font-weight:400;line-height:1.2}.cert-sub{color:var(--muted);margin-bottom:.4rem;font-size:.78rem}.cert-reg{color:var(--muted);margin-bottom:1.5rem;font-family:JetBrains Mono,monospace;font-size:.65rem}.cert-link{color:var(--gold);border:.5px solid var(--border2);border-radius:5px;align-self:flex-start;align-items:center;gap:.4rem;margin-top:auto;padding:.4rem .9rem;font-size:.72rem;text-decoration:none;transition:all .3s;display:inline-flex}.cert-link:hover{background:#c9a84c14;transform:translate(3px)}.cert-link svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.projects-grid{background:var(--border);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:3rem;display:grid;overflow:hidden}.project-card{background:var(--bg2);flex-direction:column;padding:2rem;transition:all .35s;display:flex}.project-card:hover{background:var(--card-hover);transform:translateY(-2px)}.project-badge{letter-spacing:.05em;border-radius:3px;align-self:flex-start;margin-bottom:1rem;padding:.2rem .6rem;font-family:JetBrains Mono,monospace;font-size:.64rem;display:inline-block}.badge-laravel{color:#ff5a3c;background:#ff503c1a;border:.5px solid #ff503c4d}.badge-php{color:#7b7fb4;background:#777bb41f;border:.5px solid #777bb44d}.badge-css{color:#4a9eff;background:#4a9eff1a;border:.5px solid #4a9eff4d}.badge-js{color:#f0b432;background:#f0b4321a;border:.5px solid #f0b4324d}.badge-scss{color:#c261c7;background:#c261c71a;border:.5px solid #c261c74d}.badge-cpp{color:#00a3ff;background:#00599c1a;border:.5px solid #00599c4d}.badge-odoo{color:#d08cb9;background:#714b671a;border:.5px solid #714b674d}.badge-python{color:#5aa6e8;background:#3776ab1a;border:.5px solid #3776ab4d}.project-name{color:var(--text);margin-bottom:.5rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;font-weight:400}.project-desc{color:var(--muted);flex:1;font-size:.79rem;line-height:1.65}.project-footer{border-top:.5px solid var(--border);justify-content:space-between;align-items:center;margin-top:1.2rem;padding-top:.8rem;display:flex}.project-size{color:#c9a84c66;font-family:JetBrains Mono,monospace;font-size:.67rem}.project-link{color:var(--gold);align-items:center;gap:.3rem;font-size:.7rem;text-decoration:none;transition:all .25s;display:inline-flex}.project-link:hover{color:var(--gold2);transform:translate(3px)}.project-link svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px}.youtube-card{background:var(--bg2);border:.5px solid var(--border);border-radius:16px;align-items:center;gap:3rem;margin-top:3rem;padding:3rem;transition:all .4s;display:flex;position:relative;overflow:hidden}.youtube-card:before{content:"";pointer-events:none;background:linear-gradient(135deg,#ff000008 0%,#0000 50%);position:absolute;inset:0}.youtube-card:hover{border-color:#ff00004d;transform:translateY(-3px);box-shadow:0 12px 40px #00000026}.yt-icon-wrap{background:#ff00001a;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;transition:all .3s;display:flex}.youtube-card:hover .yt-icon-wrap{background:#ff000026;transform:scale(1.05)}.yt-icon-wrap svg{width:36px;height:36px}.yt-info{flex:1}.yt-label{color:#f44;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;font-family:JetBrains Mono,monospace;font-size:.67rem}.yt-name{color:var(--text);margin-bottom:.4rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.6rem;font-weight:400}.yt-desc{color:var(--muted);margin-bottom:1rem;font-size:.86rem;line-height:1.7}.yt-topics{flex-wrap:wrap;gap:.4rem;display:flex}.yt-tag{color:#f44;background:#ff000014;border:.5px solid #f003;border-radius:3px;padding:.2rem .6rem;font-family:JetBrains Mono,monospace;font-size:.65rem}.yt-link{color:#f44;border:.5px solid #ff00004d;border-radius:6px;align-items:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.4rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.yt-link:hover{background:#ff000014;transform:translateY(-2px)}.yt-link svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.contact-wrap{background:var(--bg2);border:.5px solid var(--border);border-radius:16px;grid-template-columns:1fr 1fr;align-items:start;gap:4rem;margin-top:3rem;padding:4rem;display:grid}.contact-title{margin-bottom:1rem;font-family:Cormorant Garamond,Georgia,serif;font-size:2.4rem;font-weight:300;line-height:1.2}.contact-title em{color:var(--gold);font-style:italic}.contact-desc{color:var(--muted);margin-bottom:2rem;font-size:.86rem;line-height:1.85}.contact-links{flex-direction:column;gap:.65rem;display:flex}.contact-link{background:var(--bg3);border:.5px solid var(--border);color:var(--text);border-radius:8px;align-items:center;gap:1rem;padding:1rem 1.2rem;text-decoration:none;transition:all .35s;display:flex}.contact-link:hover{border-color:var(--border2);background:var(--bg4);transform:translate(6px);box-shadow:0 4px 15px #0000001a}.contact-link-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.contact-link-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.icon-li{color:#4a9eff;background:#0a66c226}.icon-email{color:var(--gold);background:#c9a84c1f}.icon-gh{color:var(--text2);background:#9696961a}.icon-yt{color:#f44;background:#ff00001a}.contact-link-info{flex:1}.contact-link-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.1rem;font-family:JetBrains Mono,monospace;font-size:.66rem}.contact-link-value{color:var(--text);font-size:.86rem}.contact-arrow{color:var(--muted);font-size:.85rem;transition:all .3s}.contact-link:hover .contact-arrow{color:var(--gold);transform:translate(4px)}.availability{background:var(--bg3);border:.5px solid var(--border);border-radius:10px;padding:1.8rem}.avail-dot{vertical-align:middle;background:#1d9e75;border-radius:50%;width:7px;height:7px;margin-right:.5rem;animation:2s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.avail-label{color:#1d9e75;vertical-align:middle;font-size:.77rem;font-weight:500}.avail-title{margin:.8rem 0 .4rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;font-weight:400}.avail-desc{color:var(--muted);font-size:.81rem;line-height:1.7}.services-list{flex-direction:column;gap:.4rem;margin-top:.9rem;list-style:none;display:flex}.services-list li{color:var(--muted);align-items:center;gap:.5rem;font-size:.79rem;display:flex}.services-list li:before{content:"✦";color:var(--gold);flex-shrink:0;font-size:.4rem}.location-box{background:var(--bg3);border:.5px solid var(--border);border-radius:8px;margin-top:.8rem;padding:1.1rem 1.2rem;transition:all .3s}.location-box:hover{border-color:var(--border2)}.location-lbl{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem;font-family:JetBrains Mono,monospace;font-size:.66rem}footer{border-top:.5px solid var(--border);justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:2rem 5vw;display:flex}.footer-left{color:var(--muted);font-family:Cormorant Garamond,Georgia,serif;font-size:.88rem}.footer-left strong{color:var(--gold)}.footer-center{align-items:center;gap:1rem;display:flex}.footer-social{color:var(--muted);align-items:center;transition:all .3s;display:flex}.footer-social:hover{color:var(--gold);transform:translateY(-2px)}.footer-social svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.footer-right{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.7rem}.footer-tech{color:var(--muted);opacity:.5;margin-top:.2rem;font-family:JetBrains Mono,monospace;font-size:.6rem}.particles-bg{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.particle{background:var(--gold);opacity:0;border-radius:50%;width:2px;height:2px;animation:12s ease-in-out infinite floatParticle;position:absolute}@keyframes floatParticle{0%{opacity:0;transform:translateY(100vh)scale(0)}20%{opacity:.3}50%{opacity:.15}80%{opacity:.3}to{opacity:0;transform:translateY(-10vh)scale(1)}}@media (width<=768px){.nav-links{display:none}.portfolio-grid,.projects-grid,.exp-grid,.cert-grid{grid-template-columns:1fr}.contact-wrap{grid-template-columns:1fr;gap:2rem;padding:2rem}.youtube-card{text-align:center;flex-direction:column;padding:2rem}.yt-topics{justify-content:center}footer{text-align:center;flex-direction:column;gap:.5rem}.hero-stats{flex-wrap:wrap;gap:1.8rem}.footer-center{order:-1}}.floating-wa{color:#fff;z-index:1000;cursor:pointer;background-color:#25d366;border-radius:50%;justify-content:center;align-items:center;width:55px;height:55px;transition:all .3s;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 4px 15px #25d36666}.floating-wa svg{width:30px;height:30px}.floating-wa:hover{background-color:#128c7e;box-shadow:0 6px 20px #25d36699}@media (width<=768px){.floating-wa{width:45px;height:45px;bottom:1.5rem;right:1.5rem}.floating-wa svg{width:25px;height:25px}}
