/* ===== Base ===== */
:root{--ink:#070b14;--ice:#7dd3fc;--ice-2:#38bdf8;--text:#e8eef8;--mute:#a3b3c9;
--glass:rgba(14,22,40,.55);--line:rgba(255,255,255,.14);--r:18px;--max:1120px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:400 1.05rem/1.65 "Figtree",system-ui,sans-serif;color:var(--text);background:var(--ink);min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-2;background:var(--bg) center/cover no-repeat}
body::after{content:"";position:fixed;inset:0;z-index:-1;
background:linear-gradient(115deg,rgba(7,11,20,.92) 0%,rgba(7,11,20,.7) 55%,rgba(7,11,20,.88) 100%)}
.bg-home{--bg:url("https://images.unsplash.com/photo-1550751827-4bd374c3f58b?auto=format&fit=crop&w=1920&q=80")}
.bg-who{--bg:url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=1920&q=80")}
.bg-cv{--bg:url("https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=1920&q=80")}
.bg-contact{--bg:url("https://images.unsplash.com/photo-1451187580459-43490279c0fa?auto=format&fit=crop&w=1920&q=80")}
h1,h2,h3{font-family:"Bricolage Grotesque","Figtree",sans-serif;line-height:1.1;letter-spacing:-.02em}
h1{font-size:clamp(2.4rem,7vw,4.8rem);font-weight:800}
h2{font-size:clamp(1.6rem,3.5vw,2.2rem);margin-bottom:1rem}
h3{font-size:1.2rem;margin-bottom:.5rem}
p{max-width:65ch;color:var(--mute)}
a{color:var(--ice);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--ice);outline-offset:3px;border-radius:6px}
.wrap{width:min(100% - 2.5rem,var(--max));margin-inline:auto}
main{padding:clamp(2.5rem,7vw,5rem) 0 4rem}
section+section{margin-top:3rem}

/* ===== Vidro reflectivo ===== */
.glass{background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,0) 40%),var(--glass);
border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;
backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 20px 50px rgba(0,0,0,.35)}

/* ===== Cabeçalho ===== */
header{position:sticky;top:0;z-index:10;background:rgba(7,11,20,.55);
backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font:800 1.25rem "Bricolage Grotesque",sans-serif;color:var(--text)}
.logo span{color:var(--ice)}
nav ul{display:flex;gap:.4rem;list-style:none}
nav a{display:block;padding:.45rem .9rem;border-radius:999px;color:var(--mute)}
nav a:hover,nav a[aria-current]{color:var(--text);background:rgba(125,211,252,.14);text-decoration:none}
#menu,.burger{display:none}

/* ===== Botões ===== */
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.btn{display:inline-block;padding:.8rem 1.5rem;border-radius:999px;font-weight:600;border:1px solid var(--line);color:var(--text)}
.btn:hover{text-decoration:none;border-color:var(--ice)}
.btn.main{background:var(--ice);color:#06202e;border-color:var(--ice)}
.btn.main:hover{background:var(--ice-2)}

/* ===== Início ===== */
.hero{min-height:62vh;display:flex;flex-direction:column;justify-content:center}
.hero p{font-size:1.2rem;margin-top:1.2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem}
.tags{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin-top:1rem}
.tags li{font-size:.85rem;padding:.2rem .7rem;border-radius:999px;border:1px solid var(--line);color:var(--text)}

/* ===== Páginas interiores ===== */
.two{display:grid;grid-template-columns:1.3fr 1fr;gap:1.5rem;align-items:start}
.list{list-style:none}
.list li{padding:.7rem 0;border-bottom:1px solid var(--line);color:var(--mute)}
.list li:last-child{border:0}
.list strong{color:var(--text)}

/* Linha do tempo (CV) */
.timeline{list-style:none;border-left:2px solid rgba(125,211,252,.4);padding-left:1.5rem;display:grid;gap:1.6rem}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:calc(-1.5rem - 7px);top:.5rem;width:12px;height:12px;border-radius:50%;background:var(--ice);box-shadow:0 0 0 4px rgba(125,211,252,.2)}
.when{font-size:.9rem;color:var(--ice)}

/* Contactos */
form{display:grid;gap:1rem}
label{display:grid;gap:.35rem;font-weight:600}
input,textarea{font:inherit;color:var(--text);background:rgba(255,255,255,.07);border:1px solid var(--line);border-radius:12px;padding:.75rem 1rem}
input::placeholder,textarea::placeholder{color:#7d8ea6}
textarea{min-height:140px;resize:vertical}

footer{border-top:1px solid var(--line);padding:1.5rem 0;color:var(--mute);font-size:.9rem;background:rgba(7,11,20,.5)}

/* ===== Telemóvel / tablet ===== */
@media (max-width:760px){
.burger{display:grid;gap:5px;cursor:pointer;padding:10px}
.burger i{display:block;width:24px;height:2px;background:var(--text)}
nav{position:absolute;left:0;right:0;top:64px;background:rgba(7,11,20,.92);backdrop-filter:blur(14px);
max-height:0;overflow:hidden;transition:max-height .3s}
nav ul{flex-direction:column;padding:.5rem 1.25rem 1rem}
#menu:checked~nav{max-height:320px}
#menu:focus-visible~.burger{outline:2px solid var(--ice)}
.two{grid-template-columns:1fr}
.hero{min-height:auto;padding:2rem 0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
