:root {
    --bg-dark: #1e1e1e;  --bg-card: #212227;
    --accent: #2874d6;   --accent-fade: #6c7a89;
    --text: #e7e9ed;     --radius: 16px;
    --shadow: 0 2.5px 18px #191b2045;
}
body { background: var(--bg-dark); color: var(--text); font-family: "Inter",sans-serif; min-height:100vh;}
body.theme-light {
    --bg-dark: #f6faff;
    --bg-card: #fff;
    --accent: #376dc6;
    --accent-fade: #687697;
    --text: #303337;
}
body, .container { background: var(--bg-dark); color: var(--text);}
body.theme-light .avatar-clip {background:#d2d8f7;}
.card-resumo, .card, .card-project { background: var(--bg-card); color: var(--text);}
body.theme-light .card, body.theme-light .card-project { background: var(--bg-card); color: var(--text);}
body.theme-light .timeline-date{background:#d7e5f6;color:#4361a8;}
body.theme-light .contact-links a{background:#f6faff;color:var(--accent-fade);}
body.theme-light .menu a:hover{background:#ddeaec;color:var(--accent);}
main{max-width:900px;margin:0 auto;}
.header {display: flex;flex-direction:column;align-items:center;gap:15px;margin-bottom:10px;}
.avatar-clip {background:#2c313b;border-radius:50%;padding:5px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 7px #2225;}
.avatar {width:106px;height:106px;object-fit:cover;border-radius:52px;border:2.8px solid #3a628b;background: #232232;}
.hero-title { font-size:2.25rem; color:var(--accent); font-weight:800; margin-bottom: 2px;}
.typed-text { min-height:32px;font-size:1.14rem;color:var(--accent-fade);text-align:center;font-weight:600;}
.location {color:var(--accent-fade);}
.menu {display:flex;gap:20px;justify-content:center;margin:0 0 28px 0;}
.menu a{color:var(--accent);font-weight:700;padding:8px 13px;border-radius:12px;text-decoration:none;transition:background .17s,color .16s;}
.menu a:hover{background:#1b273a;color:#fff;}
.section h2 {font-size:1.38rem;color:var(--accent);margin-bottom:10px;margin-top:18px;}
.card-resumo, .card, .card-project{background:var(--bg-card);color:var(--text);margin:14px 0;padding:20px 18px;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .20s,box-shadow .16s;}
.card:hover,.card-project:hover{transform:translateY(-7px) scale(1.028);box-shadow:0 7px 24px #18243b47;}
.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.timeline {border-left:2.2px solid #18315a;padding-left:17px;margin-top:6px;display:flex;flex-direction:column;gap:13px;}
.timeline-row {display:flex;gap:16px;align-items:center;padding:8px 0;}
.timeline-date {background:#293657;color:#81a8ce;border-radius:7px;padding:2.5px 13px;font-size:.93rem;}
.timeline-job {font-size:1.07rem;font-weight:600;}
.contact-links{display:flex;gap:32px;justify-content:center;align-items:center;margin-top:9px;}
.contact-links a{color:var(--accent-fade);font-size:1.11rem;background:#232227;padding:8px 18px;border-radius:11px;text-decoration:none;box-shadow:0 1.5px 8px #2322220a;display:inline-flex;align-items:center;gap:7px;transition:background .14s,color .14s;}
.contact-links a:hover{background:#324558;}
body.theme-light .contact-links a{background:#f6faff;}
.footer{text-align:center;color:#7c7c8f;border:0;font-size:1.01rem;margin-top:30px;}
.theme-toggle {position: fixed; top:22px; right:28px; z-index: 101;border: none;font-size:1.3rem;border-radius:50%;background:rgba(40,60,100,0.045);padding:7px 12px;color:var(--accent); cursor:pointer;}
.theme-toggle:hover {background:#e3ebf0;}
@media(max-width:850px){.card-grid{grid-template-columns:1fr;}.header-info h1{font-size:1.13rem;}main{max-width:98vw;}}
.wow-fade,.wow-fade-slow{opacity:0;transition:opacity .69s cubic-bezier(.38,.6,.2,1);}
.wow-fade.animated,.wow-fade-slow.animated{opacity:1;}
.wow-up{opacity:0;transform:translateY(38px);transition:opacity .41s cubic-bezier(.4,.7,.3,1),transform .72s cubic-bezier(.3,1,.4,1);}
.wow-up.animated{opacity:1;transform:none;}
/* Modal de descrição */
.modal-bg {display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,16,28,0.78);z-index:2000;align-items:center;justify-content:center;}
.modal-bg.active {display:flex;}
.descricao-modal {
    max-width:430px;background:#1f2230;color:#eee;padding:35px 30px 27px 30px;
    border-radius:18px;box-shadow:0 8px 48px #0008;
    animation: fadeInDown .31s;position:relative;text-align:left;
}
body.theme-light .descricao-modal {background:#fff;color:#262940; }
.modal-close {
    background:transparent;color:#666;border:none;
    position:absolute;top:13px;right:14px;font-size:2rem;cursor:pointer;z-index:3;
    opacity:.73;transition:opacity .19s;
}
.modal-close:hover {opacity:1;}
@keyframes fadeInDown { from { opacity:0; transform: translateY(-55px);} to { opacity:1; transform:none;} }
