:root{--bg: #ffffff;--fg: #111212;--muted: #6b6b6b;--blue: #005ED9;--yellow: #F5DDA1;--light-blue: #A4E5F8;--green: #22c55e;--grid: #e2e2e2;--line: rgba(17, 18, 18, .12);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "DM Mono", "JetBrains Mono", ui-monospace, monospace;--font-hand: "Caveat", cursive;--pad-x: clamp(1.25rem, 4vw, 3rem);--max: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:auto}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.5;overflow-x:hidden;position:relative;cursor:none}@media (max-width: 768px),(pointer: coarse){body{cursor:auto}}img,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{background:none;border:none;color:inherit;font:inherit;cursor:pointer}::selection{background:var(--blue);color:#fff}.grid-bg{position:fixed;inset:0;z-index:0;pointer-events:none}.grid-bg svg{width:100%;height:100%}.container{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--pad-x);position:relative;z-index:1}section{position:relative;padding-block:clamp(4rem,10vh,8rem)}.heading-xl{font-family:var(--font-sans);font-weight:600;font-size:clamp(3.5rem,12vw,10rem);letter-spacing:-.03em;line-height:.95;color:var(--fg)}.heading-lg{font-family:var(--font-sans);font-weight:600;font-size:clamp(2.5rem,6vw,5rem);letter-spacing:-.03em;line-height:1.05;text-align:center}.heading-md{font-family:var(--font-sans);font-weight:500;font-size:clamp(1.75rem,3.5vw,3rem);letter-spacing:-.02em;line-height:1.1}.body-lg{font-family:var(--font-sans);font-weight:500;font-size:clamp(1.5rem,4vw,4.25rem);letter-spacing:-.03em;line-height:1.1;text-align:center}.mono{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:-.02em;line-height:1.2}.hand{font-family:var(--font-hand);font-size:1.5rem;font-weight:700}.letter-anim{display:inline-block;opacity:0;transform:translate(40px) scale(.9);will-change:transform,opacity}.word-anim{display:inline-block;opacity:0;transform:translateY(40px);will-change:transform,opacity}.fade-up{opacity:0;transform:translateY(40px);will-change:transform,opacity}.border-box{position:relative;border:2px solid var(--fg);border-radius:0}.border-box:before,.border-box:after{content:"";position:absolute;width:8px;height:8px;border:2px solid var(--fg);background:var(--bg)}.border-box:before{top:-5px;left:-5px}.border-box:after{top:-5px;right:-5px}.border-box .corner-bl,.border-box .corner-br{position:absolute;width:8px;height:8px;border:2px solid var(--fg);background:var(--bg)}.border-box .corner-bl{bottom:-5px;left:-5px}.border-box .corner-br{bottom:-5px;right:-5px}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;padding:1.25rem var(--pad-x);display:flex;justify-content:space-between;align-items:center;background:#ffffffd9;backdrop-filter:blur(12px);border-bottom:1px solid var(--grid)}.site-header .logo{font-family:var(--font-sans);font-weight:700;font-size:1.1rem;letter-spacing:-.02em;display:flex;align-items:center;gap:.3rem}.site-header .logo-dot{width:6px;height:6px;background:var(--blue);border-radius:50%}.site-header nav{display:flex;gap:2rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:-.02em}.site-header nav a{position:relative;padding:.25rem 0;color:var(--muted);transition:color .3s ease}.site-header nav a:hover,.site-header nav a.active{color:var(--fg)}.site-header nav a:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.65,0,.35,1)}.site-header nav a:hover:after,.site-header nav a.active:after{transform:scaleX(1);transform-origin:left}.ruler{width:100%;height:40px;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.2);display:flex;align-items:flex-end;margin-bottom:2rem}.ruler__marks{display:flex;gap:0;width:100%}.ruler__mark{flex:1;height:10px;border-left:1px solid rgba(0,0,0,.15)}.ruler__mark:nth-child(5n){height:20px}.ruler__mark:nth-child(10n){height:30px}.ruler__time{position:absolute;right:0;top:8px}.hero{min-height:100vh;padding-top:7rem;padding-bottom:2rem;display:flex;flex-direction:column;justify-content:center;gap:2rem}.hero__ruler-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--grid);margin-bottom:2rem}.hero__label{display:flex;align-items:center;gap:.5rem}.hero__label-text{font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--muted);letter-spacing:-.02em}.hero__label-arrow{display:inline-block;width:24px;height:24px}.hero__name-wrapper{position:relative;padding:1.5rem 0}.hero__name{position:relative;display:inline-block}.hero__name-text{display:inline-block;white-space:nowrap}.hero__tags{position:absolute;top:-1.5rem;right:-2rem}.hero__tag{display:inline-block;background:var(--yellow);padding:.35rem .75rem;border:2px solid var(--fg);border-radius:0 12px 12px;font-family:var(--font-mono);font-size:.7rem;font-weight:500;white-space:nowrap}.hero__tag--top{transform:rotate(14deg);margin-bottom:.5rem}.hero__tag--bottom{transform:rotate(-8deg);background:var(--light-blue)}.hero__availability{display:flex;align-items:center;gap:.6rem;margin-top:1.5rem}.hero__avail-dot{width:10px;height:10px;border-radius:50%;background:var(--green);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.hero__avail-text{font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--fg);letter-spacing:-.02em}.hero__subtitle{margin-top:1rem;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;padding-top:2rem;border-top:1px solid var(--grid)}.hero__desc{max-width:45ch;font-family:var(--font-sans);font-size:.95rem;font-weight:400;line-height:1.6;color:var(--muted)}.hero__location{text-align:right;font-family:var(--font-mono);font-size:.8rem;color:var(--muted);white-space:nowrap}.about{padding-block:clamp(4rem,12vh,10rem);overflow:hidden}.about__separator{width:100%;height:60px;margin-bottom:3rem;opacity:.15}.about__separator svg{width:100%;height:100%}.about__content{display:flex;flex-direction:column;align-items:center;gap:3rem}.about__decoration{position:relative;display:flex;align-items:center;justify-content:center}.about__decoration-text{font-family:var(--font-hand);font-size:2rem;color:var(--fg);transform:rotate(14deg);display:inline-block}.about__photo-area{display:flex;align-items:center;justify-content:center;gap:2rem;position:relative;min-height:280px;width:100%}.polaroid{background:var(--bg);padding:8px 8px 30px;box-shadow:0 .6px 1.8px -.83px #00000021,0 2.3px 6.9px -1.67px #00000021,0 10px 30px -2.5px #00000021;cursor:grab;user-select:none;touch-action:none;transition:transform .4s cubic-bezier(.34,1.56,.64,1);border:1px solid var(--grid)}.polaroid:hover{z-index:5}.polaroid--1{width:200px;transform:rotate(12deg)}.polaroid--2{width:180px;transform:rotate(-14deg)}.polaroid__image{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f0f0f0}.polaroid__label{font-family:var(--font-hand);font-size:.9rem;text-align:center;margin-top:8px;color:var(--fg)}.about__text-block{max-width:800px;text-align:center}.about__text-block .inline-img{display:inline-flex;align-items:center;height:1em;margin:0 .15em;vertical-align:middle;border-radius:50%;overflow:hidden}.about__text-block .inline-img img{height:100%;width:auto;display:block;object-fit:cover}.about__skills{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;max-width:700px}.skill-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:2px solid var(--fg);border-radius:999px;font-family:var(--font-sans);font-weight:500;font-size:.9rem;transition:background .3s ease,color .3s ease}.skill-tag:hover,.skill-tag--filled{background:var(--fg);color:var(--bg)}.skill-tag--filled:hover{background:var(--blue);border-color:var(--blue)}.skill-icon{width:20px;height:20px;border-radius:50%;border:2px solid currentColor;display:inline-flex;align-items:center;justify-content:center}.work{padding-top:0;padding-bottom:clamp(4rem,10vh,8rem)}.work__heading-area{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:4rem;text-align:center}.work__decoration{display:flex;align-items:center;gap:.5rem}.work__decoration-text{font-family:var(--font-hand);font-size:1.5rem;color:var(--fg)}.work__subtitle-tag{display:inline-block;background:var(--yellow);padding:.4rem .8rem;border:2px solid var(--fg);border-radius:0 12px 12px;font-family:var(--font-mono);font-size:.75rem;font-weight:500;transform:rotate(-3deg)}.work__list{list-style:none;display:flex;flex-direction:column;gap:1.5rem}.work__card{border-radius:20px;overflow:hidden;border:2px solid var(--fg);position:relative;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.work__card:hover{transform:translateY(-4px)}.work__card-inner{display:grid;grid-template-columns:1fr 1fr;min-height:380px}.work__card-content{padding:2.5rem;display:flex;flex-direction:column;justify-content:space-between}.work__card-top{display:flex;flex-direction:column;gap:1rem}.work__card-date{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:currentColor;opacity:.7}.work__card-date:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.work__card-name{font-family:var(--font-sans);font-weight:600;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.03em;line-height:1}.work__card-desc{font-size:.9rem;line-height:1.6;opacity:.8;max-width:35ch}.work__card-bottom{display:flex;flex-direction:column;gap:1rem}.work__card-tags{display:flex;flex-wrap:wrap;gap:.4rem}.work__card-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border:1.5px solid currentColor;border-radius:999px;font-family:var(--font-mono);font-size:.65rem;font-weight:500;opacity:.7}.work__card-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:999px;font-family:var(--font-mono);font-size:.8rem;font-weight:500;border:2px solid currentColor;transition:background .3s,color .3s;width:fit-content}.work__card--dark .work__card-btn{border-color:var(--bg);color:var(--bg)}.work__card--dark .work__card-btn:hover{background:var(--bg);color:var(--fg)}.work__card--light .work__card-btn{border-color:var(--fg);color:var(--fg)}.work__card--light .work__card-btn:hover{background:var(--fg);color:var(--bg)}.work__card-media{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1.5rem}.work__card-video-wrapper{position:relative;width:100%;height:100%;border-radius:12px;overflow:hidden;border:2px solid rgba(0,0,0,.1)}.work__card-video-wrapper video{width:100%;height:100%;object-fit:cover}.work__card-number{display:flex;align-items:center;gap:.75rem;padding:1.5rem 2.5rem;border-bottom:1px solid rgba(0,0,0,.1)}.work__card-num-text{font-family:var(--font-mono);font-size:.8rem;font-weight:500;opacity:.6}.work__card-num-line{flex:1;height:1px;background:currentColor;opacity:.2}.work__card--blue{background:var(--blue);color:#fff}.work__card--dark{background:var(--fg);color:#fff}.work__card--light{background:#f5f5f0;color:var(--fg)}.work__card--yellow{background:var(--yellow);color:var(--fg)}.work__card--light-blue{background:var(--light-blue);color:var(--fg)}.experience{border-top:1px solid var(--grid);padding-block:clamp(4rem,10vh,8rem)}.experience__head{margin-bottom:3rem}.experience__title{font-family:var(--font-sans);font-weight:600;font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:-.02em}.experience__grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.experience__col-label{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--muted);letter-spacing:-.02em;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--grid)}.timeline{list-style:none;display:flex;flex-direction:column;gap:2rem}.timeline__item{display:grid;grid-template-columns:100px 1fr;gap:1.5rem;align-items:start}.timeline__period{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--muted);padding-top:.3rem}.timeline__body{display:flex;flex-direction:column;gap:.25rem}.timeline__company{font-family:var(--font-sans);font-weight:600;font-size:1.1rem;letter-spacing:-.01em}.timeline__role{font-family:var(--font-mono);font-size:.75rem;color:var(--muted)}.timeline__desc{font-size:.9rem;line-height:1.6;color:var(--muted);margin-top:.25rem;max-width:50ch}.tags-section{margin-top:3rem}.tags-section__label{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--muted);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--grid)}.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.tag{display:inline-flex;padding:.4rem .85rem;border:1.5px solid var(--line);border-radius:999px;font-size:.8rem;font-weight:500;color:var(--fg);transition:border-color .3s ease,background .3s ease}.tag:hover{border-color:var(--fg);background:var(--fg);color:var(--bg)}.cta{border-top:1px solid var(--grid);padding-block:clamp(6rem,14vh,12rem);text-align:center}.cta__heading{font-family:var(--font-sans);font-weight:600;font-size:clamp(2.5rem,8vw,7rem);letter-spacing:-.04em;line-height:1;margin-bottom:2rem}.cta__heading a{position:relative;display:inline;color:var(--blue);transition:color .3s}.cta__heading a:hover{color:var(--fg)}.cta__heading a:after{content:"";position:absolute;bottom:.05em;left:0;width:100%;height:3px;background:currentColor;transform:scaleX(1);transform-origin:right;transition:transform .6s cubic-bezier(.65,0,.35,1)}.cta__heading a:hover:after{transform:scaleX(0);transform-origin:left}.cta__decoration{display:inline-block;width:60px;height:60px;margin:0 .5rem;vertical-align:middle;animation:spin-slow 8s linear infinite}@keyframes spin-slow{to{transform:rotate(360deg)}}.cta__whatsapp{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.8rem;background:#25d366;color:#fff;border:2px solid var(--fg);border-radius:999px;font-family:var(--font-mono);font-size:.9rem;font-weight:500;letter-spacing:-.01em;transition:background .3s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.cta__whatsapp:hover{background:#1ebe5a;transform:scale(1.04)}.cta__contact{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem;margin-top:3rem;font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--muted)}.cta__contact a{color:var(--fg);position:relative;transition:color .3s}.cta__contact a:hover{color:var(--blue)}.cta__contact a:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1.5px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.65,0,.35,1)}.cta__contact a:hover:after{transform:scaleX(1);transform-origin:left}.footer{border-top:1px solid var(--grid);padding:2rem var(--pad-x)}.footer__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--muted)}.footer__cv{display:flex;gap:1.5rem}.footer__cv a,.footer__socials a{transition:color .3s ease}.footer__cv a:hover,.footer__socials a:hover{color:var(--fg)}.footer__center{text-align:center}.footer__socials{display:flex;gap:1.5rem;justify-content:flex-end}.loader{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;align-items:center;justify-content:center;pointer-events:none}.loader__text{font-family:var(--font-sans);font-weight:600;font-size:clamp(2rem,5vw,4rem);letter-spacing:-.03em;color:var(--fg)}.loader__text .loader-word{display:inline-block;opacity:0;transform:translateY(20px)}.classes{border-top:1px solid var(--grid);padding-block:clamp(5rem,12vh,10rem)}.classes__head{text-align:center;max-width:680px;margin:0 auto 3.5rem}.classes__decoration{margin-bottom:1rem}.classes__decoration-text{font-family:var(--font-hand);font-size:1.5rem;color:var(--fg);display:inline-block;transform:rotate(-3deg)}.classes__title{font-family:var(--font-sans);font-weight:600;font-size:clamp(1.75rem,4vw,3rem);letter-spacing:-.03em;line-height:1.1;margin-bottom:1.25rem}.classes__subtitle{font-size:1rem;line-height:1.7;color:var(--muted);max-width:52ch;margin:0 auto}.classes__cards{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;max-width:720px;margin:0 auto 3rem}.classes__card{border:2px solid var(--fg);border-radius:20px;padding:2rem;display:flex;flex-direction:column;gap:.75rem;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.classes__card:hover{transform:translateY(-4px)}.classes__card--blue{background:var(--blue);color:#fff}.classes__card--yellow{background:var(--yellow);color:var(--fg)}.classes__card-icon{width:48px;height:48px;border:2px solid currentColor;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.classes__card-title{font-family:var(--font-sans);font-weight:600;font-size:1.25rem;letter-spacing:-.02em}.classes__card-desc{font-size:.9rem;line-height:1.6;opacity:.85}.classes__cta{text-align:center}.classes__btn{display:inline-flex;align-items:center;gap:.6rem;padding:.9rem 2rem;background:var(--fg);color:var(--bg);border:2px solid var(--fg);border-radius:999px;font-family:var(--font-sans);font-weight:600;font-size:1rem;letter-spacing:-.01em;transition:background .3s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.classes__btn:hover{background:var(--blue);border-color:var(--blue);transform:scale(1.04)}.classes__meta{margin-top:1rem;font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--muted);letter-spacing:-.01em}@media (max-width: 600px){.classes__cards{grid-template-columns:1fr}}.cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}.cursor__dot{position:fixed;top:0;left:0;width:8px;height:8px;background:#fff;border-radius:50%;pointer-events:none;will-change:transform;transition:width .3s cubic-bezier(.34,1.56,.64,1),height .3s cubic-bezier(.34,1.56,.64,1)}.cursor__outline{position:fixed;top:0;left:0;width:40px;height:40px;border:2px solid rgba(255,255,255,.5);border-radius:50%;pointer-events:none;will-change:transform;transition:width .4s cubic-bezier(.34,1.56,.64,1),height .4s cubic-bezier(.34,1.56,.64,1),border-color .3s ease,background .3s ease}.cursor.is-hover .cursor__dot{width:0;height:0}.cursor.is-hover .cursor__outline{width:64px;height:64px;background:#ffffff1f;border-color:#fffc}.cursor.is-grab .cursor__outline{width:50px;height:50px;border-style:dashed;border-color:#fff9}.cursor.is-grabbing .cursor__outline{width:36px;height:36px;border-style:solid;background:#ffffff26}@media (max-width: 768px),(pointer: coarse){.cursor{display:none!important}}a,button,[data-cursor],.skill-tag,.tag,.polaroid,.work__card-btn{cursor:none}@media (max-width: 768px),(pointer: coarse){a,button,[data-cursor],.skill-tag,.tag,.polaroid,.work__card-btn{cursor:pointer}}@media (max-width: 900px){.experience__grid{grid-template-columns:1fr;gap:3rem}}@media (max-width: 768px){.site-header{padding:1rem var(--pad-x)}.site-header .logo{font-size:1rem}.site-header nav{gap:1.2rem;font-size:.7rem}.hero{min-height:100svh;padding-top:6rem;padding-bottom:2rem}.hero__subtitle{flex-direction:column;gap:1.5rem}.hero__location{text-align:left}.hero__tags{position:static;display:flex;gap:.5rem;margin-top:1rem}.about__photo-area{flex-direction:row;gap:1rem;min-height:200px}.polaroid--1{width:150px}.polaroid--2{width:140px}.work__card-inner{grid-template-columns:1fr;min-height:auto}.work__card-media{min-height:250px}.work__card-content{padding:1.5rem;gap:1.5rem}.work__card-number{padding:1rem 1.5rem}.timeline__item{grid-template-columns:1fr;gap:.5rem}.footer__inner{grid-template-columns:1fr;text-align:left;gap:1rem}.footer__center{text-align:left}.footer__socials{justify-content:flex-start}.cta__heading{font-size:clamp(2rem,9vw,4rem);line-height:1.1}.cta__decoration{width:35px;height:35px}.cta__contact{flex-direction:column;gap:.5rem}}@media (max-width: 380px){.site-header nav{gap:.8rem;font-size:.6rem}.polaroid--1{width:120px}.polaroid--2{width:110px}}
