:root{--bg:#0f1419;--panel:#151b23;--line:#263040;--text:#d6dde6;--muted:#8593a5;--blue:#4da3ff;--amber:#ffb454;--ok:#7fd99a;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;--sans:'IBM Plex Sans',system-ui,sans-serif;--mx:50%;--my:30%}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:
radial-gradient(420px circle at var(--mx) var(--my),rgba(77,163,255,.13),transparent 70%),
linear-gradient(var(--line) 1px,transparent 1px) 0 calc(var(--sy,0)*-.25px)/48px 48px,
linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 calc(var(--sy,0)*-.25px)/48px 48px;
-webkit-mask:radial-gradient(520px circle at var(--mx) var(--my),#000,rgba(0,0,0,.18) 70%);mask:radial-gradient(520px circle at var(--mx) var(--my),#000,rgba(0,0,0,.18) 70%)}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}
.container{width:min(1080px,92%);margin-inline:auto}
header{position:sticky;top:0;z-index:20;background:rgba(15,20,25,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header nav{display:flex;align-items:center;gap:2rem;height:60px}
.logo{font:600 .95rem var(--mono);margin-right:auto}.logo b{color:var(--blue)}
.nav-links{display:flex;gap:1.6rem;list-style:none;font:.85rem var(--mono)}
.nav-links a{color:var(--muted);padding:.3rem 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--text);border-color:var(--blue)}
.hamburger{display:none;background:none;border:0;color:var(--text);font-size:1.2rem;cursor:pointer}
.btn{display:inline-flex;align-items:center;gap:.55rem;font:500 .85rem var(--mono);padding:.65rem 1.1rem;border:1px solid var(--line);border-radius:6px;transition:transform .15s,border-color .2s,background .2s}
.btn:hover{border-color:var(--blue);transform:translateY(-2px)}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#06121f;font-weight:600}
.btn-primary:hover{background:#7bbbff}
section{padding:6rem 0}
h1{font:600 clamp(2.4rem,6vw,4.2rem)/1.05 var(--sans);letter-spacing:-.03em}
h2.section-title{font:600 1.9rem var(--sans);letter-spacing:-.02em;margin-bottom:2.2rem;display:flex;align-items:center;gap:1rem}
h2.section-title::after{content:"";flex:1;height:1px;background:var(--line)}
.hero-section{padding:5rem 0 4rem;min-height:calc(100vh - 60px);display:flex;align-items:center}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:3.5rem;align-items:center}
.subtitle{font:.9rem var(--mono);color:var(--blue);margin-bottom:1rem}
.bio{color:var(--muted);margin:1.4rem 0 2rem;max-width:46ch}
.hero-btns{display:flex;gap:.8rem;flex-wrap:wrap}
.term{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 30px 60px -30px #000;overflow:hidden;font:.85rem/1.7 var(--mono)}
.term-bar{display:flex;align-items:center;gap:.45rem;padding:.7rem 1rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:.78rem}
.term-bar i{width:10px;height:10px;border-radius:50%;background:var(--line)}
.term-bar span{margin-left:.6rem}
.term-body{padding:1.1rem 1.2rem;min-height:340px;white-space:pre-wrap;word-break:break-word}
.p{color:var(--ok)}.k{color:var(--blue)}.v{color:var(--amber)}.m{color:var(--muted)}
.caret{display:inline-block;width:.55em;height:1.05em;background:var(--text);vertical-align:text-bottom;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.about-text{max-width:62ch;color:var(--muted)}
.timeline{position:relative;margin-left:.6rem;padding-left:2rem}
.timeline::before,.timeline-fill{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--line)}
.timeline-fill{background:var(--blue);bottom:auto;height:0;box-shadow:0 0 12px var(--blue)}
.timeline-item{position:relative;padding-bottom:2.6rem}
.timeline-item::before{content:"";position:absolute;left:-2.45rem;top:.35rem;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--blue)}
.timeline-content{padding:1.3rem 1.5rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);transition:border-color .25s,transform .25s}
.timeline-content:hover{border-color:var(--blue)}
.timeline-content h3{font:600 1.2rem var(--sans)}
.role,.location,.institution,.date{display:block;font:.8rem var(--mono);color:var(--muted);margin-top:.15rem}
.role{color:var(--amber)}
.timeline-content p,.card p{color:var(--muted);margin-top:.8rem;font-size:1rem}
.project-badge{display:inline-block;font:.75rem var(--mono);color:var(--ok);margin-top:.5rem}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.tags span{font:.78rem var(--mono);padding:.25rem .65rem;border:1px solid var(--line);border-radius:4px;color:var(--muted);transition:color .2s,border-color .2s}
.tags span:hover{color:var(--text);border-color:var(--blue)}
.project-link{display:inline-flex;gap:.6rem;align-items:center;margin-top:1.2rem;font:500 .85rem var(--mono);color:var(--blue)}
.project-link .arrow-icon{transition:transform .2s}.project-link:hover .arrow-icon{transform:translateX(5px)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.card{padding:1.5rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);position:relative;overflow:hidden}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--cx,50%) var(--cy,50%),rgba(77,163,255,.14),transparent 70%);opacity:0;transition:opacity .25s;pointer-events:none}
.card:hover::after{opacity:1}
.card h3{font:600 1.15rem var(--sans)}
.skills-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem}
.skills-category h3{font:500 .95rem var(--mono);color:var(--amber)}
.contact-info{display:grid;gap:.8rem;max-width:520px}
.contact-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:.9rem var(--mono);transition:border-color .2s,transform .2s}
a.contact-item:hover{border-color:var(--blue);transform:translateX(4px)}
.contact-item i{color:var(--blue);width:1.2rem;text-align:center}
.footer{margin-top:5rem;padding-top:1.5rem;border-top:1px solid var(--line);font:.8rem var(--mono);color:var(--muted)}
.viewer-badge{position:fixed;right:1rem;bottom:1rem;z-index:30;display:flex;gap:.5rem;align-items:center;padding:.4rem .8rem;background:var(--panel);border:1px solid var(--line);border-radius:999px;font:.78rem var(--mono);color:var(--muted)}
.viewer-badge i{color:var(--ok)}.viewer-badge.pulse{animation:pulse .6s}
@keyframes pulse{40%{border-color:var(--ok);transform:scale(1.08)}}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}.reveal-active{opacity:1;transform:none}
#bg{position:fixed;inset:0;z-index:-1;pointer-events:none}
.progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--blue);transform-origin:0 50%;transform:scaleX(0);z-index:40;box-shadow:0 0 10px var(--blue)}
.role-line{font:500 1.15rem var(--mono);color:var(--amber);margin-top:1.1rem;min-height:1.7em}
.role-line .caret{background:var(--amber)}
.ch{display:inline-block;opacity:0;transform:translateY(.7em) rotateX(-70deg);transform-origin:50% 100%;animation:chIn .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*38ms + .15s)}
.word{display:inline-block;white-space:nowrap}
@keyframes chIn{to{opacity:1;transform:none}}
.hero-grid>div:first-child{transform:translateY(calc(var(--sy,0)*.05px))}
.term{transform:translateY(calc(var(--sy,0)*-.08px))}
.marquee{border-block:1px solid var(--line);overflow:hidden;background:rgba(21,27,35,.6);padding:.95rem 0;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.track{display:flex;gap:2.5rem;width:max-content;font:.85rem var(--mono);color:var(--muted)}
.marquee:hover .track{animation-play-state:paused}
.track span::before{content:"/";color:var(--blue);margin-right:2.5rem}
@keyframes scroll{to{transform:translateX(-50%)}}
.timeline-item.reveal{transform:translateX(-28px)}
.timeline-item.reveal.reveal-active{transform:none}
.grid-2 .reveal:nth-child(2){transition-delay:.15s}
.reveal-active .tags span{animation:pop .45s cubic-bezier(.2,.8,.3,1.3) both;animation-delay:calc(var(--i,0)*50ms + .2s)}
@keyframes pop{from{opacity:0;transform:scale(.7)}}
@media(max-width:820px){
.hero-grid,.grid-2,.skills-wrapper{grid-template-columns:1fr}
header .btn{display:none}.hamburger{display:block}
.nav-links{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line)}
.nav-links.active{display:flex}.nav-links a{display:block;padding:.9rem 4%}
section{padding:4rem 0}}

.hero-section{position:relative}
.scroll-hint{position:absolute;bottom:1.4rem;left:50%;width:22px;height:36px;margin-left:-11px;border:2px solid var(--muted);border-radius:12px}
.scroll-hint span{position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--blue);animation:drop 1.6s ease-in-out infinite}
@keyframes drop{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
.timeline-item.reveal-active::before{animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(77,163,255,.55)}100%{box-shadow:0 0 0 12px rgba(77,163,255,0)}}
.cursor-ring,.cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:50;border-radius:50%;opacity:0;transition:opacity .3s,width .2s,height .2s,margin .2s,background .2s}
.cursor-ring{width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--blue)}
.cursor-ring.big{width:62px;height:62px;margin:-31px 0 0 -31px;background:rgba(77,163,255,.12)}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--amber)}
.has-cursor .cursor-ring,.has-cursor .cursor-dot{opacity:1}
.skills-category.wide{grid-column:1/-1}
.case-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;margin-bottom:1rem}
.case-meta .project-badge{margin:0}
.case-intro{max-width:66ch;color:var(--muted);margin-bottom:1.8rem}
#projects .grid-2{margin-bottom:.5rem}

/* ===== Responsividade ===== */
body{overflow-x:clip}
.hero-section{min-height:calc(100vh - 60px);min-height:calc(100svh - 60px)}
h2.section-title{font-size:clamp(1.45rem,4.2vw,1.9rem)}
.card p,.timeline-content p,.contact-item span{overflow-wrap:anywhere}
.tags.grid-tags{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
.tags.grid-tags span{text-align:center;white-space:nowrap}
.nav-cv{display:none}
.hamburger{padding:.5rem}
@media(max-width:1120px){
header .btn{display:none}
.hamburger{display:block}
.nav-links{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line)}
.nav-links.active{display:flex}
.nav-links a{display:block;padding:.9rem 4%}
.nav-cv{display:block}
.nav-cv a{color:var(--blue)}}
@media(max-width:900px){
.hero-grid{grid-template-columns:1fr;gap:2.5rem}
.hero-section{padding:3.5rem 0 4rem;align-items:flex-start}
.scroll-hint{display:none}
.bio{max-width:none}}
@media(max-width:560px){
section{padding:3.2rem 0}
.term-body{min-height:260px;font-size:.78rem;padding:.9rem}
.timeline{padding-left:1.5rem;margin-left:.3rem}
.timeline-item::before{left:-1.95rem}
.timeline-content,.card{padding:1.1rem}
.hero-btns .btn{flex:1 1 auto;justify-content:center}
.contact-item{padding:.9rem}
.viewer-badge{font-size:.7rem;padding:.3rem .6rem;bottom:.6rem}
.viewer-badge{right:.6rem}}
@media(max-height:700px){.scroll-hint{display:none}}

/* ===== Diagrama, relatórios e shell ===== */
.sub-title{font:600 1.25rem var(--sans);margin:3rem 0 1.1rem}
.arch{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:2rem;align-items:start}
.arch svg{width:100%;height:auto}
.zn{fill:none;stroke:var(--line);stroke-dasharray:4 4}
.zl{fill:var(--muted);font:9.5px var(--mono)}
.ed{fill:none;stroke:var(--line);stroke-width:1.2}
.nd{cursor:pointer;outline:none}
.nd rect{fill:var(--panel);stroke:var(--line);transition:stroke .2s,fill .2s}
.nd text{fill:var(--text);font:11px var(--mono);pointer-events:none}
.nd:hover rect,.nd:focus-visible rect,.nd.on rect{stroke:var(--blue);fill:#18222e}
.pk{fill:var(--amber)}
.arch-info{position:sticky;top:80px;padding:1.2rem 1.4rem;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.arch-info h4{font:600 1.05rem var(--sans);color:var(--blue);margin-bottom:.5rem}
.arch-info p{color:var(--muted)}
.findings{display:grid;gap:.6rem}
.finding{border:1px solid var(--line);border-radius:8px;background:var(--panel);transition:border-color .2s}
.finding:hover,.finding[open]{border-color:var(--blue)}
.finding summary{list-style:none;cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .8rem;padding:.9rem 1.1rem;font:500 1rem var(--sans)}
.finding summary::-webkit-details-marker{display:none}
.finding summary::after{content:"+";margin-left:auto;font:1.3rem var(--mono);color:var(--blue);transition:transform .25s}
.finding[open] summary::after{transform:rotate(45deg)}
.finding summary small{font:.75rem var(--mono);color:var(--muted)}
.sev{font:600 .68rem var(--mono);padding:.12rem .5rem;border-radius:4px;border:1px solid}
.sev.crit{color:#ff7a6b}.sev.high{color:var(--amber)}
.finding-body{padding:0 1.1rem 1rem;color:var(--muted);display:grid;gap:.5rem}
.finding-body b{color:var(--text);font-weight:500}
.term-body{max-height:420px;overflow-y:auto}
.sh{display:flex}
.sh-in{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--text);font:inherit;caret-color:var(--amber)}
@media(max-width:900px){.arch{grid-template-columns:1fr}.arch svg{max-width:440px;margin:0 auto}.arch-info{position:static}}
.case-meta.second{margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--line)}

/* ===== Celular / toque ===== */
html{-webkit-tap-highlight-color:rgba(77,163,255,.18)}
.card.reveal{transition:opacity .6s,transform .6s,border-color .3s,box-shadow .3s}
.timeline-content{transition:border-color .3s,box-shadow .3s,transform .25s}
.card.focus,.timeline-content.focus,.finding.focus{border-color:var(--blue);box-shadow:0 0 0 1px rgba(77,163,255,.22),0 14px 34px -20px rgba(77,163,255,.55)}
.card.focus::after{opacity:1}
@media(hover:none){.btn:active,a.contact-item:active{transform:scale(.97);border-color:var(--blue)}.tags span:active{color:var(--text);border-color:var(--blue)}}

/* ===== Prints, lab, links ===== */
.avail{display:inline-flex;align-items:center;gap:.5rem;font:.78rem var(--mono);color:var(--ok);border:1px solid var(--line);border-radius:999px;padding:.25rem .75rem;margin-bottom:1rem}
.avail i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:ring2 2s ease-out infinite}
@keyframes ring2{0%{box-shadow:0 0 0 0 rgba(127,217,154,.6)}100%{box-shadow:0 0 0 8px rgba(127,217,154,0)}}
.socials{display:flex;gap:1.2rem;margin-top:1.6rem;font:.85rem var(--mono)}
.socials a{color:var(--muted);display:inline-flex;gap:.5rem;align-items:center;transition:color .2s}
.socials a:hover{color:var(--blue)}
.nav-links{gap:1.3rem}
.shot{--vh:460px;margin:0 0 2rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden;box-shadow:0 30px 60px -35px #000}
.shot-bar{display:flex;align-items:center;gap:.4rem;padding:.6rem .9rem;border-bottom:1px solid var(--line);font:.75rem var(--mono);color:var(--muted)}
.shot-bar i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.shot-bar span{margin-left:.6rem}
.shot img{display:block;width:100%;height:auto}
.shot.tall{max-width:560px;margin-inline:auto}
.shot-view{height:var(--vh);overflow:hidden;background:#f1f5f9}
.shot-view img{animation:pan 48s linear infinite alternate;will-change:transform}
.shot-view:hover img,.shot-view:active img{animation-play-state:paused}
@keyframes pan{from{transform:translateY(0)}to{transform:translateY(calc(-100% + var(--vh)))}}
.shot figcaption{padding:.6rem .9rem;border-top:1px solid var(--line);font:.75rem var(--mono);color:var(--muted)}
.shot figcaption a{color:var(--blue)}
.lab h3{margin-bottom:.5rem}
.sim-row{display:flex;align-items:center;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.sim-row small{display:block;font:.72rem var(--mono);color:var(--muted)}
.qty{margin-left:auto;display:flex;align-items:center;gap:.6rem;font:600 .95rem var(--mono)}
.qty button{width:32px;height:32px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:1rem var(--mono);cursor:pointer;transition:border-color .2s}
.qty button:hover{border-color:var(--blue)}
.meter{display:flex;align-items:center;gap:.7rem;margin-top:.8rem;font:.78rem var(--mono);color:var(--muted)}
.meter span{width:2.9rem}.meter b{min-width:9rem;text-align:right;color:var(--text);font-weight:500}
.bar{flex:1;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--blue);transition:width .35s,background .3s}
.bar i.over{background:#ff7a6b}
.verdict{margin-top:1rem;padding:.7rem .9rem;border-radius:6px;border:1px solid var(--line);font:.82rem/1.5 var(--mono);color:var(--muted)}
.verdict.ok{color:var(--ok);border-color:var(--ok)}.verdict.no{color:#ff7a6b;border-color:#ff7a6b}
.fld{width:100%;margin:.8rem 0 .5rem;padding:.65rem .8rem;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:.88rem var(--mono)}
.fld:focus{outline:none;border-color:var(--blue)}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chips button{font:.72rem var(--mono);padding:.25rem .55rem;border-radius:4px;border:1px solid var(--line);background:none;color:var(--muted);cursor:pointer}
.chips button:hover{color:var(--text);border-color:var(--blue)}
.rules{list-style:none;margin-top:.9rem;display:grid;gap:.3rem;font:.78rem var(--mono)}
.rules li{display:flex;gap:.6rem;color:var(--muted)}
.rules li b{width:1rem;font-weight:700;flex:none}
.rules .pass b{color:var(--ok)}.rules .fail{color:var(--text)}.rules .fail b{color:#ff7a6b}
.note{margin-top:2.5rem;padding:1.6rem;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.note h3{font:600 1.3rem var(--sans);margin:.3rem 0 1rem}
.note small{font:.75rem var(--mono);color:var(--amber)}
.note p{color:var(--muted);margin-top:.8rem;max-width:68ch}.note p b{color:var(--text);font-weight:500}
@media(max-width:560px){.shot{--vh:360px}.meter b{min-width:6.5rem;font-size:.72rem}}

/* Seção Sobre mim: retrato profissional com ações sociais ao passar o mouse. */
.about-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,.85fr);gap:clamp(2rem,5vw,4rem);align-items:start}
.about-grid .about-text{max-width:none;min-width:0}
.about-profile{position:relative;margin:0;border-radius:12px;overflow:hidden;isolation:isolate;aspect-ratio:4/5;background:var(--panel);border:1px solid var(--line);box-shadow:0 22px 55px -35px rgba(0,0,0,.85);transition:border-color .3s,transform .35s}
.about-profile:hover,.about-profile:focus-within{border-color:var(--blue);transform:translateY(-3px)}
.about-profile>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 28%;transition:transform .5s ease}
.about-profile:hover>img,.about-profile:focus-within>img{transform:scale(1.045)}
.about-profile::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(8,12,20,.82));pointer-events:none;z-index:0}
.about-profile-overlay{position:absolute;bottom:21px;left:18px;right:18px;z-index:1;display:flex;flex-direction:column;gap:2px;transition:transform .3s ease}
.profile-name{color:#fff;font:600 1.12rem var(--sans)}
.profile-role{color:#c5d0e0;font:.7rem var(--mono)}
.profile-links{position:absolute;bottom:18px;left:0;right:0;display:flex;gap:12px;justify-content:center;align-items:center;z-index:2;transform:translateY(85px);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s;pointer-events:none}
.about-profile:hover .profile-links,.about-profile:focus-within .profile-links{transform:translateY(0);opacity:1;pointer-events:auto}
.about-profile:hover .about-profile-overlay,.about-profile:focus-within .about-profile-overlay{transform:translateY(-58px)}
.profile-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#287aca;color:#fff;border:1px solid rgba(255,255,255,.22);font-size:1.12rem;box-shadow:0 7px 20px rgba(0,0,0,.32);transition:transform .2s,background .2s}
.profile-icon:nth-child(2){background:#262e3d}
.profile-icon:hover,.profile-icon:focus-visible{transform:translateY(-5px);background:var(--blue);color:#06121f}
@media(max-width:760px){.about-grid{grid-template-columns:1fr;gap:2.2rem}.about-profile{width:min(100%,360px);margin:0 auto}.profile-links{transform:translateY(0);opacity:1;pointer-events:auto}.about-profile-overlay{transform:translateY(-58px)}}
@media(hover:none){.profile-links{transform:translateY(0);opacity:1;pointer-events:auto}.about-profile-overlay{transform:translateY(-58px)}}
@media(prefers-reduced-motion:reduce){.about-profile,.about-profile>img,.profile-links,.about-profile-overlay,.profile-icon{transition:none}}

/* V7: alinhamento da biografia + retrato montado por partículas. */
@media(min-width:761px){.about-grid .about-text{padding-top:16px}}
.profile-particle-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:0;transition:opacity .55s ease}
.about-profile.particle-loading .profile-particle-canvas{opacity:1}
.about-profile.particle-loading>img{opacity:.06;transform:scale(1.025)}
.about-profile>img{transition:opacity 1s ease,transform .5s ease}
.about-profile.particle-loading .about-profile-overlay,.about-profile.particle-loading .profile-links{opacity:0;pointer-events:none}
.about-profile.particle-finished .profile-particle-canvas{opacity:0}
@media(prefers-reduced-motion:reduce){.about-profile>img,.profile-particle-canvas{transition:none}}

/* Alinhamento fino do título Sobre mim na visualização desktop */
@media (min-width:761px) {
  #about h2.section-title { position: relative; top: 24px; }
}
