:root{
  --bg:#0A0F1A;
  --bg-2:#0E1524;
  --bg-3:#131C2E;
  --line:rgba(120,150,190,.10);
  --line-strong:rgba(120,150,190,.20);
  --text:#E8EEF5;
  --muted:#8DA0B8;
  --muted-2:#5E708A;
  --amber:#F6B23C;
  --amber-soft:rgba(246,178,60,.12);
  --teal:#3FD3C0;
  --teal-soft:rgba(63,211,192,.10);
  --r:14px;
  --maxw:1120px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--amber);color:#0A0F1A}

/* blueprint grid background */
body::before{
  content:"";
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 80%);
  -webkit-mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 80%);
}

a{color:inherit;text-decoration:none}
.mono{font-family:'JetBrains Mono',monospace}
::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.4,0,.2,1)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;position:relative;z-index:2}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(12px);
  background:rgba(10,15,26,.55);
  border-bottom:1px solid transparent;
  transition:border-color .4s,background .4s;
}
nav.scrolled{border-bottom:1px solid var(--line-strong);background:rgba(10,15,26,.82)}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav-left{display:flex;align-items:center;gap:14px}
.brand{font-family:'Space Grotesk';font-weight:600;font-size:1.02rem;letter-spacing:-.01em;display:flex;align-items:center;gap:9px;white-space:nowrap}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 12px var(--amber);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
.nav-links{display:flex;gap:22px;align-items:center}
.nav-links a{font-family:'JetBrains Mono';font-size:.8rem;color:var(--muted);transition:color .25s;position:relative}
.nav-links a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--amber);transition:width .3s}
.nav-links a:hover{color:var(--text)}
.nav-links a:not(.nav-cta):hover::after{width:100%}
.nav-cta{padding:8px 16px;border:1px solid var(--line-strong);border-radius:999px;color:var(--text)!important;transition:all .25s}
.nav-cta:hover{border-color:var(--amber);background:var(--amber-soft)}
@media(max-width:720px){.nav-links a:not(.nav-cta){display:none}.nav-inner{padding:14px 20px}}

/* ---------- LANGUAGE TOGGLE ---------- */
.lang{position:relative;display:inline-flex;gap:2px;padding:4px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(255,255,255,.03);cursor:pointer;line-height:0}
.lang .knob{position:absolute;top:4px;left:4px;width:32px;height:26px;border-radius:999px;background:var(--amber-soft);border:1px solid var(--amber);transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.lang[data-lang='pt'] .knob{transform:translateX(34px)}
.lang .flag{position:relative;z-index:1;width:32px;height:26px;display:grid;place-items:center;border-radius:999px;opacity:.45;transition:opacity .25s,filter .25s;filter:grayscale(.55)}
.lang .flag svg{width:21px;height:14px;border-radius:2.5px;display:block;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
.lang[data-lang='en'] .flag.en,.lang[data-lang='pt'] .flag.pt{opacity:1;filter:none}
.lang:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

/* ---------- HERO ---------- */
header{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
#field{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%}
.hero-fade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 70% 60% at 60% 40%,transparent 0%,rgba(10,15,26,.4) 60%,var(--bg) 100%),
             linear-gradient(180deg,transparent 60%,var(--bg) 100%)}
.hero{position:relative;z-index:3;width:100%;padding-top:90px}
.eyebrow{font-family:'JetBrains Mono';font-size:.82rem;color:var(--teal);letter-spacing:.04em;margin-bottom:22px;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--teal);display:inline-block}
h1{font-family:'Space Grotesk';font-weight:700;font-size:clamp(3rem,9vw,6.6rem);line-height:.95;letter-spacing:-.03em;margin-bottom:20px}
.role{font-family:'Space Grotesk';font-weight:500;font-size:clamp(1.3rem,3.4vw,2.1rem);line-height:1.2;color:var(--text);max-width:760px;margin-bottom:24px;letter-spacing:-.01em}
.role .hl{color:var(--amber)}
.lede{font-size:1.06rem;color:var(--muted);max-width:560px;margin-bottom:38px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.btn{font-family:'JetBrains Mono';font-size:.86rem;padding:13px 22px;border-radius:999px;display:inline-flex;align-items:center;gap:9px;transition:all .25s;border:1px solid var(--line-strong)}
.btn-primary{background:var(--amber);color:#0A0F1A;border-color:var(--amber);font-weight:600}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(246,178,60,.3)}
.btn-ghost{color:var(--text)}
.btn-ghost:hover{border-color:var(--text);background:rgba(255,255,255,.04);transform:translateY(-2px)}
.btn svg{width:15px;height:15px;flex:none}

/* hero reveal animation */
.reveal-hero>*{opacity:0;transform:translateY(22px);animation:heroUp .9s cubic-bezier(.2,.7,.2,1) forwards}
.reveal-hero>*:nth-child(1){animation-delay:.15s}
.reveal-hero>*:nth-child(2){animation-delay:.28s}
.reveal-hero>*:nth-child(3){animation-delay:.41s}
.reveal-hero>*:nth-child(4){animation-delay:.54s}
.reveal-hero>*:nth-child(5){animation-delay:.67s}
@keyframes heroUp{to{opacity:1;transform:none}}

/* ---------- SECTION SHELL ---------- */
section{position:relative;z-index:2;padding:72px 0}
.sec-eyebrow{font-family:'JetBrains Mono';font-size:.8rem;color:var(--amber);letter-spacing:.05em;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.sec-eyebrow::before{content:"";width:18px;height:1px;background:var(--amber)}
.sec-title{font-family:'Space Grotesk';font-weight:600;font-size:clamp(1.8rem,4.5vw,2.7rem);letter-spacing:-.02em;margin-bottom:30px;line-height:1.08}

/* ---------- ABOUT ---------- */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:start}
.about-text p{color:var(--muted);font-size:1.08rem;margin-bottom:18px}
.about-text strong{color:var(--text);font-weight:600}
.quick{border-left:1px solid var(--line-strong);padding-left:22px}
.quick .row{padding:14px 0;border-bottom:1px solid var(--line)}
.quick .row:last-child{border-bottom:none}
.quick .k{font-family:'JetBrains Mono';font-size:.74rem;color:var(--muted-2);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.quick .v{font-size:.98rem;color:var(--text)}
@media(max-width:820px){.about-grid{grid-template-columns:1fr;gap:36px}}

/* ---------- PIPELINE ---------- */
.pipeline{margin-top:90px;border:1px solid var(--line-strong);border-radius:var(--r);background:linear-gradient(180deg,var(--bg-2),rgba(14,21,36,.4));padding:30px 26px;max-width:520px;margin-left:auto;margin-right:auto}
.pipeline-label{font-family:'JetBrains Mono';font-size:.74rem;color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:22px}
.stages{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.stage{flex:1;min-width:140px;padding:0 18px;position:relative}
.stage:not(:last-child)::after{content:"→";position:absolute;right:-9px;top:6px;color:var(--teal);font-family:'JetBrains Mono';font-size:1.1rem}
.stage .n{font-family:'JetBrains Mono';font-size:.72rem;color:var(--teal);margin-bottom:8px}
.stage h4{font-family:'Space Grotesk';font-weight:600;font-size:1.05rem;margin-bottom:7px}
.stage p{font-size:.85rem;color:var(--muted)}
@media(max-width:680px){.stage{flex:1 1 45%;padding:14px 10px}.stage:not(:last-child)::after{display:none}}

.term-bar{display:flex;align-items:center;gap:6px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.term-dot{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none}
.term-title{font-size:.75rem;color:var(--muted-2);margin-left:8px}
.term-body{display:flex;justify-content:center}
.term-code{font-family:'JetBrains Mono';font-size:.83rem;line-height:1.8;color:var(--muted);margin:0;white-space:pre;display:inline-block;min-height:13em}
.term-cursor{font-family:'JetBrains Mono';color:var(--teal);animation:blink .8s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ---------- STACK ---------- */
.stack-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.stack-card{border:1px solid var(--line);border-radius:var(--r);padding:26px;background:var(--bg-2);transition:border-color .35s,transform .35s}
.stack-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.stack-card h3{font-family:'Space Grotesk';font-weight:600;font-size:1.12rem;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.stack-card h3 .idx{font-family:'JetBrains Mono';font-size:.72rem;color:var(--muted-2)}
.tags{display:flex;flex-wrap:wrap;gap:9px}
.tag{font-family:'JetBrains Mono';font-size:.79rem;padding:7px 13px;border:1px solid var(--line-strong);border-radius:8px;color:var(--muted);background:rgba(255,255,255,.015);transition:all .22s;cursor:default}
.tag:hover{color:var(--text);border-color:var(--amber);background:var(--amber-soft);transform:translateY(-2px)}
.stack-card.ai .tag:hover{border-color:var(--teal);background:var(--teal-soft)}
@media(max-width:680px){.stack-grid{grid-template-columns:1fr}}

/* ---------- EXPERIENCE ---------- */
.timeline{position:relative;padding-left:34px}
.timeline::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,var(--amber),var(--line-strong) 40%,transparent)}
.job{position:relative;padding-bottom:48px}
.job:last-child{padding-bottom:0}
.job::before{content:"";position:absolute;left:-34px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--bg);border:2px solid var(--amber);box-shadow:0 0 0 4px rgba(246,178,60,.08)}
.job .co{font-family:'JetBrains Mono';font-size:.78rem;color:var(--teal);letter-spacing:.03em;margin-bottom:6px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.job .co .span{color:var(--muted-2)}
.co-logo{width:36px;height:36px;border-radius:6px;object-fit:contain;flex:none;border:1px solid var(--line-strong)}
.job h3{font-family:'Space Grotesk';font-weight:600;font-size:1.32rem;margin-bottom:4px;letter-spacing:-.01em}
.job .date{font-family:'JetBrains Mono';font-size:.76rem;color:var(--muted-2);margin-bottom:16px}
.job ul{list-style:none;display:grid;gap:9px}
.job li{position:relative;padding-left:20px;color:var(--muted);font-size:.97rem}
.job li::before{content:"▹";position:absolute;left:0;color:var(--amber);font-size:.85rem;top:2px}
.job li b{color:var(--text);font-weight:600}

/* ---------- EDUCATION ---------- */
.edu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.edu-card{border:1px solid var(--line);border-radius:var(--r);padding:26px;background:var(--bg-2);transition:border-color .35s,transform .35s}
.edu-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.edu-inst{font-family:'JetBrains Mono';font-size:.74rem;color:var(--teal);margin-bottom:8px;letter-spacing:.03em;display:flex;align-items:center;gap:8px}
.edu-logo{height:34px;width:auto;max-width:90px;border-radius:6px;object-fit:contain;flex:none;border:1px solid var(--line-strong);mix-blend-mode:screen}
.edu-card h3{font-family:'Space Grotesk';font-weight:600;font-size:1.18rem;margin-bottom:6px;line-height:1.2}
.edu-card .yr{font-family:'JetBrains Mono';font-size:.8rem;color:var(--muted-2)}
.edu-sub-label{font-size:.74rem;color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase;margin:36px 0 16px;padding-top:28px;border-top:1px solid var(--line)}
@media(max-width:680px){.edu-grid{grid-template-columns:1fr}}

/* ---------- EVENTS ---------- */
.events-list{display:grid;gap:28px}
.event-card{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;transition:border-color .35s,transform .35s;align-items:center}
.event-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.event-info{padding:32px 34px;display:flex;flex-direction:column;gap:16px}
.event-tag{font-family:'JetBrains Mono';font-size:.72rem;color:var(--teal);letter-spacing:.06em;text-transform:uppercase}
.event-card h3{font-family:'Space Grotesk';font-weight:700;font-size:1.7rem;letter-spacing:-.025em;line-height:1.1}
.event-date{font-family:'JetBrains Mono';font-size:.76rem;color:var(--muted-2)}
.event-info p{color:var(--muted);font-size:.97rem;line-height:1.68}
.event-info strong{color:var(--text);font-weight:600}
.event-topics{display:flex;flex-wrap:wrap;gap:9px}
.event-gallery{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 20px;position:relative}
.gallery-track{width:100%;border-radius:10px;overflow:hidden;aspect-ratio:4/3;position:relative;background:var(--bg-3)}
.gallery-track img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.gallery-track img.active{opacity:1}
.gallery-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:4;background:rgba(10,15,26,.72);border:1px solid var(--line-strong);color:var(--text);font-size:1.05rem;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .22s,border-color .22s;line-height:1}
.gallery-btn:hover{background:var(--amber-soft);border-color:var(--amber);color:var(--amber)}
.gallery-btn.prev{left:6px}
.gallery-btn.next{right:6px}
.gallery-dots{display:flex;gap:7px}
.gallery-dots .dot{width:7px;height:7px;border-radius:50%;background:var(--muted-2);transition:background .25s,transform .25s;cursor:pointer}
.gallery-dots .dot.active{background:var(--amber);transform:scale(1.25)}
@media(max-width:860px){.event-card{grid-template-columns:1fr}.event-gallery{padding:20px 16px}.gallery-track{aspect-ratio:16/9}}
@media(max-width:500px){.event-info{padding:24px 20px}}

/* ---------- CONTACT ---------- */
.contact{text-align:center;padding-bottom:0}
.contact .sec-eyebrow{justify-content:center}
.contact .sec-eyebrow::before{display:none}
.contact h2{font-family:'Space Grotesk';font-weight:700;font-size:clamp(2.2rem,6vw,4rem);letter-spacing:-.03em;line-height:1.02;margin-bottom:22px}
.contact h2 .hl{color:var(--amber)}
.contact p{color:var(--muted);font-size:1.08rem;max-width:480px;margin:0 auto 34px}
.contact .cta-row{justify-content:center}

footer{border-top:1px solid var(--line);margin-top:72px;padding:30px 0}
.foot-inner{max-width:var(--maxw);margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.foot-inner span{font-family:'JetBrains Mono';font-size:.78rem;color:var(--muted-2)}
.foot-links{display:flex;gap:20px}
.foot-links a{font-family:'JetBrains Mono';font-size:.78rem;color:var(--muted);transition:color .25s}
.foot-links a:hover{color:var(--amber)}

/* ---------- SCROLL REVEAL ---------- */
.ir{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.ir.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .ir{opacity:1;transform:none}
  .reveal-hero>*{opacity:1;transform:none}
}
