@font-face{font-family:"PF";src:url(fonts/PF-500.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"PF";src:url(fonts/PF-600.ttf) format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"PF";src:url(fonts/PFI-400.ttf) format("truetype");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"SS";src:url(fonts/SS-400.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"SS";src:url(fonts/SS-600.ttf) format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"SS";src:url(fonts/SS-700.ttf) format("truetype");font-weight:700;font-display:swap}
:root{--pet:#0E4A50;--pet2:#1B6A70;--cop:#B07A4F;--cop2:#8E5E38;--ink:#17262A;--paper:#F7F3EC;--sand:#EDE5D8;--line:#D8CCBA;--pad:clamp(1.25rem,5vw,5rem)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{font-family:SS,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.6;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(60vw 50vw at 95% 5%,#0e4a5016,transparent 70%),radial-gradient(40vw 40vw at 0% 70%,#b07a4f14,transparent 70%)}
em{font-family:PF,serif;font-style:italic;font-weight:400}
a{color:inherit}
:focus-visible{outline:2px solid var(--cop);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
.progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--cop);transform-origin:0 50%;transform:scaleX(0);z-index:60}
.bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:2rem;padding:.8rem var(--pad);background:#f7f3ecb8;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid #d8ccba80}
.mark{font-family:PF,serif;font-size:1.5rem;color:var(--pet);text-decoration:none;font-weight:600;line-height:1}.mark i{color:var(--cop);font-weight:400}
.bar nav{display:flex;gap:1.6rem;margin-left:auto;font-weight:600;font-size:.9rem}
.bar nav a{text-decoration:none;position:relative;color:var(--pet)}
.bar nav a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--cop);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.bar nav a.on::after{transform:scaleX(1);transform-origin:left}@media (hover:hover){.bar nav a:hover::after{transform:scaleX(1);transform-origin:left}}
.btn{--b:var(--pet);display:inline-flex;align-items:center;gap:.7rem;padding:.9rem 1.4rem;border-radius:999px;background:var(--b);color:#fff;font:600 .95rem SS,sans-serif;text-decoration:none;border:1.5px solid var(--b);cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:transform .2s,box-shadow .3s}
.btn::before{content:"";position:absolute;inset:0;background:var(--cop);transform:translateY(101%);transition:transform .4s cubic-bezier(.2,.7,.2,1);z-index:-1}
@media (hover:hover){.btn:hover::before{transform:none}}@media (hover:hover){.btn:hover{border-color:var(--cop);box-shadow:0 10px 24px -12px #8e5e38}}
.btn:active{transform:scale(.97)}
.btn b{display:inline-block;transition:transform .35s cubic-bezier(.2,.7,.2,1)}@media (hover:hover){.btn:hover b{transform:translateX(4px)}}
.btn-ghost{background:transparent;color:var(--pet)}@media (hover:hover){.btn-ghost:hover{color:#fff}}
.btn-sm{padding:.55rem 1rem;font-size:.85rem}
.hero{min-height:min(calc(100svh - 4rem),980px);padding:clamp(3rem,8vh,6rem) var(--pad) 3rem;display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:auto 1fr auto;gap:2rem 4rem;position:relative}
.kicker{font-weight:700;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cop2);grid-column:1/-1}
h1{grid-column:1/-1;font-family:PF,serif;font-weight:500;color:var(--pet);line-height:.9;letter-spacing:-.025em;font-size:clamp(3.4rem,11vw,10.5rem)}
h1 span{display:block}h1 .l2{padding-left:clamp(1rem,14vw,14rem);color:var(--cop2)}
h1 span{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}h1 .l2{animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(.35em);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}}
.hero-side{grid-column:2;align-self:end;display:grid;gap:1.2rem;animation:rise 1s .3s both}
.lead{font-family:PF,serif;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.15;color:var(--pet)}
.cta{display:flex;flex-wrap:wrap;gap:.8rem}
.meta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem 2.5rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.88rem;color:#4d5d60}
.meta span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cop);margin-right:.6rem;vertical-align:middle}
.seal{grid-column:1;grid-row:3;align-self:end;width:clamp(120px,14vw,190px);aspect-ratio:1;position:relative;color:var(--pet)}
.seal svg{width:100%;animation:spin 30s linear infinite;font:700 13px SS,sans-serif;letter-spacing:.2em;fill:var(--pet)}
.seal>span{position:absolute;inset:28%;border-radius:50%;background:var(--pet);color:#F7F3EC;display:grid;place-items:center;font:600 clamp(1.6rem,2.6vw,2.4rem)/1 PF,serif}
.seal i{color:#D9A97F;font-weight:400}
@keyframes spin{to{transform:rotate(1turn)}}
.sec{padding:clamp(4rem,10vw,8rem) var(--pad);max-width:1400px;margin:auto}
.sh{display:flex;align-items:baseline;gap:1rem;font:500 clamp(2rem,4.5vw,3.6rem)/1 PF,serif;color:var(--pet);margin-bottom:clamp(2rem,5vw,3.5rem);letter-spacing:-.015em}
.sh small{font:700 .8rem SS,sans-serif;letter-spacing:.2em;color:var(--cop)}
.big{font-family:PF,serif;font-size:clamp(1.7rem,3.6vw,3.2rem);line-height:1.15;max-width:22ch;color:var(--ink);margin-left:clamp(0rem,12vw,12rem)}
.big em{color:var(--cop2)}
.perfil>p:not(.big){margin:1.5rem 0 0 clamp(0rem,12vw,12rem);max-width:46ch;color:#3b4b4e}
.tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0 0 clamp(0rem,12vw,12rem)}
.tags li{border:1.5px solid var(--pet);color:var(--pet);border-radius:999px;padding:.4rem 1rem;font-weight:600;font-size:.9rem;transition:background .25s,color .25s}
@media (hover:hover){.tags li:hover{background:var(--pet);color:#fff}}
.glass{background:linear-gradient(140deg,#ffffffa8,#ffffff5c);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffffcc;box-shadow:0 1px 0 #fff inset,0 30px 60px -40px #0e4a5066;border-radius:22px}
.grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start}
.card{padding:clamp(1.5rem,3vw,2.5rem)}
.where{font-weight:700;font-size:1.15rem;color:var(--ink)}
.sub{color:var(--pet2);font-weight:600;margin:.2rem 0 1.2rem}
.dash{list-style:none;padding:0;display:grid;gap:.8rem}
.dash li{padding-left:1.6rem;position:relative}.dash li::before{content:"";position:absolute;left:0;top:.8em;width:.9rem;height:1.5px;background:var(--cop)}
.skills{list-style:none;padding:0;counter-reset:s}
.skills li{counter-increment:s;display:flex;align-items:baseline;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);font:500 clamp(1.4rem,2.6vw,2.2rem)/1.1 PF,serif;color:var(--pet);transition:padding .35s cubic-bezier(.2,.7,.2,1),color .3s}
.skills li::before{content:counter(s,decimal-leading-zero);font:700 .75rem SS,sans-serif;color:var(--cop);letter-spacing:.1em}
@media (hover:hover){.skills li:hover{padding-left:.8rem;color:var(--cop2)}}
.skills small{font:italic 400 1rem PF,serif;color:#6b7a7c}
.know{margin-top:3rem;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 4rem;color:#3b4b4e}
.know b{display:block;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cop2);margin-bottom:.3rem}
.deg{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:start}
.yr{font:500 clamp(3rem,9vw,7.5rem)/.85 PF,serif;color:var(--pet);display:grid;letter-spacing:-.03em}
.yr span{font-size:.35em;color:var(--cop);padding-left:.3em}
.deg h3{font:600 clamp(1.5rem,2.6vw,2.2rem)/1.15 PF,serif;color:var(--ink)}
.tcc{margin-top:1.5rem;padding:clamp(1.3rem,3vw,2.2rem);border-left:3px solid var(--cop);border-radius:4px 22px 22px 4px}
.tcc small{font-weight:700;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cop2)}
.tcc p{font:italic 400 clamp(1.25rem,2.2vw,1.8rem)/1.25 PF,serif;color:var(--pet);margin:.6rem 0}
.tcc footer{color:#3b4b4e}
.tl{list-style:none;padding:0;position:relative;display:grid;gap:0}
.tl::before{content:"";position:absolute;left:11rem;top:.5rem;bottom:.5rem;width:1px;background:var(--line)}
.tl li{display:grid;grid-template-columns:11rem 1fr;column-gap:2.5rem;padding:1.2rem 0;position:relative}
.tl li::after{content:"";position:absolute;left:calc(11rem - 5px);top:1.75rem;width:11px;height:11px;border-radius:50%;background:var(--paper);border:2px solid var(--cop);transition:background .3s,transform .3s}
@media (hover:hover){.tl li:hover::after{background:var(--cop);transform:scale(1.3)}}
.tl time{font-weight:700;font-size:.85rem;color:var(--cop2);padding-top:.35rem;grid-row:span 2}
.tl h3{font:600 clamp(1.1rem,1.8vw,1.4rem)/1.25 PF,serif;color:var(--ink);padding-left:2.5rem}
.tl p{color:var(--pet2);font-size:.95rem;padding-left:2.5rem}
.contato{background:var(--pet);color:#EAF0EE;padding:clamp(4rem,12vw,9rem) var(--pad);border-radius:clamp(24px,4vw,48px) clamp(24px,4vw,48px) 0 0;position:relative;overflow:hidden}
.contato::after{content:"LS";position:absolute;right:-.05em;bottom:-.3em;font:500 clamp(12rem,32vw,30rem)/1 PF,serif;color:#ffffff08;pointer-events:none}
.contato .kicker{color:#D9A97F}
.huge{font:500 clamp(2rem,7vw,6.5rem)/1 PF,serif;margin:1rem 0 1.5rem;letter-spacing:-.02em;overflow-wrap:anywhere}
.mail{text-decoration:none;background:linear-gradient(#D9A97F,#D9A97F) 0 100%/0 3px no-repeat;transition:background-size .5s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.mail:hover{background-size:100% 3px}}
.contato>p{max-width:44ch;margin-bottom:2rem}
.contato .btn{--b:#F7F3EC;color:var(--pet)}@media (hover:hover){.contato .btn:hover{color:#fff}}
.contato .btn-ghost{background:transparent;color:#F7F3EC;border-color:#F7F3EC}
.toast{min-height:1.5em;margin-top:1rem;color:#D9A97F;font-weight:600}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1.5rem var(--pad);background:#0A3A3F;color:#A9BFBE;font-size:.85rem}
.foot span:last-child{font-family:PF,serif;font-style:italic}
/* reveal: CSS scroll-driven + fallback */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
@supports (animation-timeline:view()){
 @media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:1;transform:none;transition:none;animation:up linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
  .progress{animation:grow linear both;animation-timeline:scroll(root)}
  h1 .l1{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
  .sh small{animation:slide linear both;animation-timeline:view();animation-range:entry 10% cover 40%}
  .yr{animation:drift linear both;animation-timeline:view()}
 }
}
@keyframes up{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes grow{to{transform:scaleX(1)}}
@keyframes slide{from{transform:translateX(-1.5rem);opacity:0}to{transform:none;opacity:1}}
@keyframes drift{from{transform:translateY(2rem)}to{transform:translateY(-2rem)}}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}
@media (max-width:860px){
 .bar nav{display:none}.bar .btn-sm{margin-left:auto}
 .hero{grid-template-columns:1fr;min-height:auto}
 .hero-side{grid-column:1}
 .seal{display:none}
 .grid,.know,.deg{grid-template-columns:1fr}
 .yr{display:flex;gap:.3em;font-size:3rem;align-items:baseline}
 .tl::before{left:5px}
 .tl li{grid-template-columns:1fr;padding-left:2rem}
 .tl li::after{left:0;top:1.55rem}
 .tl h3,.tl p{padding-left:0}.tl time{grid-row:auto}
}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 html{scroll-behavior:auto}
 .js .reveal{opacity:1;transform:none}
 .progress{display:none}
}
@media print{.bar,.progress,.cta,.seal{display:none}.contato{background:none;color:var(--ink)}}

.wa-ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
@media (hover:hover){.btn:hover .wa-ic{transform:rotate(-12deg) scale(1.15)}}
.btn-wa{--b:var(--cop)}.btn-wa::before{background:var(--pet)}
.contato .btn-wa{--b:var(--cop);color:#fff}.contato .btn-wa::before{background:#0A3A3F}
.btn-wa-soft{background:transparent;color:var(--cop2);border-color:var(--cop)}.btn-wa-soft::before{background:var(--cop)}@media (hover:hover){.btn-wa-soft:hover{color:#fff}}
.contato .btn-ghost#copy{background:transparent;color:#F7F3EC;border-color:#F7F3EC}

.photo{grid-column:1;grid-row:3;align-self:end;width:clamp(200px,20vw,290px);aspect-ratio:4/5.4;margin:0;position:relative;animation:rise 1.1s .2s cubic-bezier(.2,.7,.2,1) both}
.photo::before{content:"";position:absolute;inset:-10px 10px 10px -10px;border:1.5px solid var(--cop);border-radius:999px 999px 18px 18px;z-index:-1;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.photo:hover::before{transform:translate(6px,-6px)}}
.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;border-radius:999px 999px 18px 18px;display:block;box-shadow:0 30px 60px -30px #0e4a5080}
.hero .seal{grid-column:1;grid-row:3;justify-self:start;margin-left:clamp(170px,18vw,250px);width:clamp(110px,10vw,150px)}
@media (max-width:860px){.photo{grid-row:auto;grid-column:1;order:-1;width:min(60vw,240px);margin:.5rem 0 0 10px}.hero{display:flex;flex-direction:column}.hero .kicker{order:-2}}
/* ===== interações v3 ===== */
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left}
.chip{border:1.5px solid var(--pet);color:var(--pet);border-radius:999px;padding:.45rem 1.05rem;font-weight:600;font-size:.9rem;transition:background .25s,color .25s,transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .3s}
.tags li{border:0;padding:0}@media (hover:hover){.tags li:hover{background:none}}
@media (hover:hover){.chip:hover{background:var(--pet);color:#fff;transform:translateY(-2px);box-shadow:0 8px 18px -10px var(--pet)}}
.chip:active{transform:scale(.95)}
.chip[aria-expanded=true]{background:var(--cop);border-color:var(--cop);color:#fff}
.chip-panel{margin:1rem 0 0 clamp(0rem,12vw,12rem);max-width:52ch;min-height:3.2em}
.chip-panel p{padding:.9rem 1.1rem;border-left:3px solid var(--cop);background:#ffffff8c;border-radius:4px 14px 14px 4px;animation:pop .4s cubic-bezier(.2,.7,.2,1)}
.chip-panel b{color:var(--pet)}
@keyframes pop{from{opacity:0;transform:translateY(-6px)}}
.plus{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--cop);position:relative;transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:var(--cop);translate:-50% -50%;transition:transform .4s,background .3s}
.plus::after{transform:rotate(90deg)}
[aria-expanded=true] .plus{transform:rotate(180deg);background:var(--cop)}
[aria-expanded=true] .plus::before{background:#fff}[aria-expanded=true] .plus::after{transform:rotate(0);background:#fff}
.acc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.7,.2,1)}
.acc>div{overflow:hidden}
[aria-expanded=true]+.acc,[aria-expanded=true]~.acc{grid-template-rows:1fr}
.card{position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .25s ease-out,box-shadow .3s}
.card-head{display:flex;justify-content:space-between;gap:1rem;width:100%;align-items:flex-start}
.card-head .where,.card-head .sub{display:block}
.card-head:active{transform:scale(.99)}
.card-sum{color:#4d5d60;margin-bottom:.4rem}
.card .dash{padding-top:.4rem}
@media (hover:hover){.card:hover{box-shadow:0 1px 0 #fff inset,0 40px 70px -40px #0e4a5099}}
.glow::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),#b07a4f2e,transparent 65%);opacity:0;transition:opacity .3s}
@media (hover:hover){.glow:hover::after{opacity:1}}
.skills li{display:block;padding:0;font:inherit;color:inherit}
.skills li::before{display:none}
.skills button{counter-increment:none;width:100%;display:flex;align-items:baseline;gap:1rem;padding:1rem .3rem;font:500 clamp(1.4rem,2.6vw,2.2rem)/1.1 PF,serif;color:var(--pet);transition:padding .35s cubic-bezier(.2,.7,.2,1),color .3s,background .3s;border-radius:10px}
.skills button::before{content:"0" counter(s);font:700 .75rem SS,sans-serif;color:var(--cop);letter-spacing:.1em}
.skills button .plus{margin-left:auto;align-self:center}
@media (hover:hover){.skills button:hover{padding-left:1rem;color:var(--cop2);background:#ffffff70}}
.skills button:active{transform:scale(.985)}
@media (hover:hover){.skills li:hover{padding-left:0}}
.skills .acc p{font:400 1rem/1.55 SS,sans-serif;color:#3b4b4e;padding:0 .3rem 1rem 2.4rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem}
.stats p{border-top:1.5px solid var(--cop);padding-top:.8rem;display:grid}
.stats b{font:500 clamp(2.6rem,6vw,4.6rem)/1 PF,serif;color:var(--pet);font-variant-numeric:lining-nums tabular-nums}
.stats span{color:#4d5d60;font-size:.92rem}
.tl li{display:block;padding:0}
.tl li::after{top:1.6rem}
.tl button{width:100%;display:grid;grid-template-columns:11rem 1fr auto;column-gap:2.5rem;align-items:start;padding:1.15rem .4rem 1.15rem 0;border-radius:10px;transition:background .3s,transform .2s}
@media (hover:hover){.tl button:hover{background:#ffffff80}}
.tl button:active{transform:scale(.99)}
.tl button .plus{align-self:center;margin-right:.6rem}
.tl .tt{padding-left:2.5rem;display:grid}
.tl .h3{font:600 clamp(1.1rem,1.8vw,1.4rem)/1.25 PF,serif;color:var(--ink);transition:color .3s}
@media (hover:hover){.tl button:hover .h3{color:var(--pet)}}
.tl .org{color:var(--pet2);font-size:.95rem}
.tl time{grid-row:auto}
.tl .acc p{margin-left:calc(11rem + 5rem);padding:0 0 1.1rem;color:#3b4b4e;font-size:.95rem}
@media (hover:hover){.tl li:hover::after{background:var(--cop);transform:scale(1.3)}}
.tl li:has([aria-expanded=true])::after{background:var(--cop)}
/* marcador desenhado */
.mk{background:linear-gradient(#b07a4f40,#b07a4f40) 0 88%/0% .32em no-repeat;transition:background-size 1.2s .3s cubic-bezier(.2,.7,.2,1)}
.mk.on{background-size:100% .32em}
.sh small{position:relative}
.sh{position:relative}
.sh::after{content:"";position:absolute;left:0;bottom:-.6rem;height:2px;width:3.5rem;background:var(--cop);transform-origin:left;transform:scaleX(0);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.sh.on::after{transform:scaleX(1)}
/* stagger */
.js .reveal[style*="--i"]{transition-delay:calc(var(--i)*70ms)}
.photo,.hero .seal{will-change:transform}
.hero .seal{grid-row:3;align-self:start;margin-left:clamp(190px,19vw,270px);margin-top:-1rem}
@supports (animation-timeline:view()){
 @media (prefers-reduced-motion:no-preference){
  .js .reveal[style*="--i"]{animation-range:entry calc(var(--i)*4%) entry calc(60% + var(--i)*4%)}
  .photo img{animation:px linear both;animation-timeline:scroll(root);animation-range:0 100vh}
  .hero .seal{animation:px2 linear both;animation-timeline:scroll(root);animation-range:0 100vh}
 }
}
@keyframes px{to{transform:translateY(-40px) scale(1.04)}}
@keyframes px2{to{transform:translateY(-90px) rotate(40deg)}}
@media (max-width:860px){
 .stats{grid-template-columns:1fr 1fr}.stats p:last-child{grid-column:1/-1}
 .tl button{grid-template-columns:1fr auto;padding-left:2rem}
 .tl time{grid-column:1}.tl .tt{grid-column:1;padding-left:0}.tl button .plus{grid-row:1/span 2;grid-column:2}
 .tl .acc p{margin-left:2rem}
 .chip-panel{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.mk{background-size:100% .32em}.sh::after{transform:scaleX(1)}}
/* ===== v4: cenas reais, selo, revelações estilo Apple ===== */
:root{--ease:cubic-bezier(.2,.7,.1,1)}
.scene{margin:0;position:relative;isolation:isolate}
.scene::before{content:"";position:absolute;inset:-14% -12%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,#fff 0%,#ffffffd9 45%,#ffffff00 100%);filter:blur(18px)}
.scene img{width:100%;height:auto;display:block;-webkit-mask:radial-gradient(ellipse 72% 70% at 50% 46%,#000 52%,transparent 100%);mask:radial-gradient(ellipse 72% 70% at 50% 46%,#000 52%,transparent 100%)}
@media (prefers-reduced-motion:no-preference){
 .scene img{animation:float 7s ease-in-out infinite;animation-delay:calc(var(--i,0)*-2.3s)}
}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-scene{grid-column:1;grid-row:3;align-self:end;width:min(100%,560px);margin:-1rem 0 -1rem -2rem}
/* selo */
.hero .seal{grid-column:1;grid-row:3;align-self:start;justify-self:end;margin:0 1rem 0 0;width:clamp(120px,11vw,160px);animation:none}
.seal svg{animation:none;overflow:visible;font:inherit;letter-spacing:0}
.seal .ring{transform-origin:100px 100px;animation:spin 40s linear infinite}
.seal .ring text{font:700 12.6px SS,sans-serif;fill:var(--pet)}
.seal .disc{fill:var(--pet)}.seal .disc-line{fill:none;stroke:var(--cop);stroke-width:1}
.seal .mono{font:600 50px PF,serif;fill:#F7F3EC}.seal .mS{font-style:italic;font-weight:500;fill:#D9A97F}
.seal>span{display:none}
/* galeria */
.lab{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem 5rem;align-items:start}
.lab-sticky{position:sticky;top:6rem}
.lab-sticky p{font:400 clamp(1.15rem,1.6vw,1.4rem)/1.55 SS,sans-serif;color:#3b4b4e;max-width:34ch;margin-top:1.6rem}
.lab-grid{display:grid;gap:3rem}
.lab-grid .scene:nth-child(2){width:88%;justify-self:end}
/* revelações progressivas */
.js .reveal,.js .reveal[style*="--i"]{opacity:0;transform:translateY(48px) scale(.97);filter:blur(8px);animation:none!important;transition:opacity 1.1s var(--ease),transform 1.15s var(--ease),filter 1s var(--ease);transition-delay:calc(var(--i,0)*190ms)}
.js .reveal.in{opacity:1;transform:none;filter:none}
.js .reveal.lines{opacity:1;transform:none;filter:none}
.ln{display:block;overflow:hidden;padding-bottom:.08em}
.ln>span{display:inline-block;transform:translateY(105%);opacity:0;filter:blur(4px);transition:transform 1.1s var(--ease),opacity 1s var(--ease),filter 1s var(--ease);transition-delay:calc(var(--l)*170ms)}
.in .ln>span{transform:none;opacity:1;filter:none}
.sh{opacity:1}
.js .sh small{display:inline-block;transition:opacity 1s var(--ease),transform 1s var(--ease);opacity:0;transform:translateY(12px)}
.js .sh.on small{opacity:1;transform:none}
@media (max-width:860px){
 .hero-scene{order:-1;width:calc(100% + 2rem);margin:0 -1rem}
 .hero .seal{display:block;order:-1;width:96px;align-self:flex-end;margin:-4.5rem .2rem 0 0;position:relative;z-index:2}
 .lab{grid-template-columns:1fr}.lab-sticky{position:static}
 .lab-grid .scene:nth-child(2){width:100%}
}
@media (prefers-reduced-motion:reduce){
 .js .reveal,.js .reveal[style*="--i"]{opacity:1;transform:none;filter:none;transition:none}
 .ln>span{transform:none;opacity:1;filter:none;transition:none}
 .seal .ring{animation:none}.js .sh small{opacity:1;transform:none}
}
.hero-scene{animation:rise 1.2s .25s var(--ease) both}
.scene img{-webkit-mask:radial-gradient(ellipse 58% 56% at 50% 48%,#000 38%,#0009 62%,transparent 100%);mask:radial-gradient(ellipse 58% 56% at 50% 48%,#000 38%,#0009 62%,transparent 100%)}
.scene img{-webkit-mask:radial-gradient(ellipse 60% 58% at 50% 50%,#000 40%,#0009 64%,transparent 100%),linear-gradient(#0000,#000 16%,#000 84%,#0000);-webkit-mask-composite:source-in;mask:radial-gradient(ellipse 60% 58% at 50% 50%,#000 40%,#0009 64%,transparent 100%),linear-gradient(#0000,#000 16%,#000 84%,#0000);mask-composite:intersect}
.tl .acc p{font-style:italic}
/* ===== v5: acabamento ===== */
.sh small,.stats span,.skills small{color:var(--cop2)}
:focus-visible{outline:2.5px solid var(--cop2);outline-offset:3px}
.contato :focus-visible,.foot :focus-visible{outline-color:#E7BE93}
button:focus-visible{border-radius:10px}
.chip:focus-visible{border-radius:999px}
.scene img{user-select:none}
/* rodapé */
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1.6rem 3rem;align-items:start;padding:3rem var(--pad) 2rem;background:#0A3A3F;color:#B9CCCB;font-size:.92rem;line-height:1.6}
.foot span:last-child{font-family:inherit;font-style:normal}
.foot b{color:#F7F3EC;font-weight:600}
.f-brand{display:flex;gap:1rem;align-items:center}
.f-mark{width:52px;height:52px;flex:none;border-radius:50%;border:1px solid #B07A4F;display:grid;place-items:center;font:600 1.35rem/1 PF,serif;color:#F7F3EC}
.f-mark i{color:#D9A97F;font-weight:400}
.f-nav,.f-act{display:grid;gap:.35rem}
.foot a{color:#B9CCCB;text-decoration:none;width:fit-content;background:linear-gradient(#D9A97F,#D9A97F) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease),color .3s}
@media (hover:hover){.foot a:hover{color:#fff;background-size:100% 1px}}
.f-copy{grid-column:1/-1;border-top:1px solid #ffffff1f;padding-top:1.2rem;font-size:.8rem;color:#8FA9A8}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}.f-brand{grid-column:1/-1}}
/* WhatsApp flutuante */
.wa-float{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);z-index:60;display:flex;align-items:center;gap:.55rem;height:56px;padding:0 1.1rem 0 1rem;border-radius:999px;background:#0E4A50;color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;box-shadow:0 14px 30px -12px #0e4a50b0,0 0 0 1px #ffffff26 inset;transform:translateY(140%) scale(.9);opacity:0;pointer-events:none;transition:transform .6s var(--ease),opacity .4s,background .3s,box-shadow .3s}
.wa-float.show{transform:none;opacity:1;pointer-events:auto}
.wa-float .wa-ic{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.6}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #B07A4F;opacity:0}
@media (hover:hover){.wa-float:hover{background:#13616a;box-shadow:0 20px 40px -14px #0e4a50cc}}
@media (hover:hover){.wa-float:hover .wa-ic{animation:wiggle .6s var(--ease)}}
.wa-float:active{transform:scale(.94)}
@keyframes wiggle{30%{transform:rotate(-14deg)}60%{transform:rotate(10deg)}}
@keyframes ping{from{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}
@media (prefers-reduced-motion:no-preference){.wa-float.show::before{animation:ping 2.4s 1s ease-out 3}}
@media (max-width:560px){.wa-float{width:56px;padding:0;justify-content:center}.wa-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
/* impressão */
@media print{
 @page{margin:14mm}
 body{background:#fff;color:#000;font-size:11pt}
 .bar,.progress,.cta,.seal,.wa-float,.scene,.lab,.chip-panel,.plus,.stats,.toast,.f-nav,.f-top,.skip{display:none!important}
 .js .reveal,.ln>span,.js .sh small{opacity:1!important;transform:none!important;filter:none!important}
 .acc{grid-template-rows:1fr!important}
 .hero{min-height:0;padding:0 0 1rem}.sec{padding:1rem 0;break-inside:avoid}
 .glass,.card{background:none!important;box-shadow:none!important;backdrop-filter:none!important;border:1px solid #ccc}
 .contato{background:none;color:#000;padding:1rem 0}.contato a{color:#000}
 .foot{background:none;color:#000;padding:1rem 0;display:block}.foot a{color:#000}
 a[href^="mailto"]::after{content:""}
}
[tabindex="-1"]:focus{outline:none}
.f-mark{display:flex!important;align-items:baseline;justify-content:center;padding-top:.15rem}.f-mark i{margin-left:1px}
/* ===== v6: toque e mobile ===== */
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{overscroll-behavior-y:none}
a,button,.chip,summary{touch-action:manipulation}
/* fade mais forte em todas as bordas */
.scene img{-webkit-mask:radial-gradient(ellipse 54% 54% at 50% 50%,#000 34%,#000a 58%,#0003 80%,transparent 100%),linear-gradient(90deg,#0000,#000 14%,#000 86%,#0000);-webkit-mask-composite:source-in;mask:radial-gradient(ellipse 54% 54% at 50% 50%,#000 34%,#000a 58%,#0003 80%,transparent 100%),linear-gradient(90deg,#0000,#000 14%,#000 86%,#0000);mask-composite:intersect}
.scene::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 40px 30px var(--paper);border-radius:8px;opacity:.0}
/* feedback de toque */
.btn:active,.chip:active,.skills button:active,.tl button:active,.card-head:active,.wa-float:active,.foot a:active{transform:scale(.96);transition-duration:.12s}
.skills button:active,.tl button:active{background:#ffffffa6}
.chip:active{background:var(--pet);color:#fff}
@media (hover:none){
 .glow::after{display:none}.card{transform:none!important}
}
@media (max-width:860px){
 .bar{padding-top:env(safe-area-inset-top)}
 .btn,.chip,.btn-sm{min-height:44px}
 .chip{display:inline-flex;align-items:center;padding:.55rem 1.15rem}
 .tags{gap:.6rem}
 .skills button,.tl button{min-height:56px}
 .f-nav a,.f-act a{display:inline-block;padding:.55rem 0}
 .wa-float{right:calc(1rem + env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom))}
 /* fotos: centralizadas e preenchendo */
 .scene{width:100%!important;margin:0 auto!important;justify-self:stretch!important}
 .scene img{width:100%;aspect-ratio:1/1;height:auto;object-fit:cover}
 .hero-scene{width:calc(100% + 2*var(--pad))!important;margin:0 calc(-1*var(--pad))!important}
 .hero-scene img{aspect-ratio:1/1.02;object-position:52% 30%}
 .lab-grid .scene:nth-child(1) img{object-position:36% 40%}
 .lab-grid .scene:nth-child(2) img{object-position:74% 38%}
 .scene::before{inset:-6% -4%}
 .lab-grid{gap:1.2rem}
 /* títulos e seções */
 .sh{text-align:center}.sh::after{left:50%;translate:-50% 0}
 .sh small{display:block;margin-bottom:.35rem}
 .lab-sticky{position:static!important;text-align:center}.lab-sticky p{margin-inline:auto}
 .stats{text-align:center}
 .contato{text-align:center}.contato .cta{justify-content:center}
 .foot{text-align:left}
 .hero .seal{margin-top:-4rem}
}
@media (max-width:430px){
 :root{--pad:1.15rem}
 body{font-size:16.5px;line-height:1.6}
 h1{font-size:clamp(2.9rem,14.5vw,4rem)}
 .big{font-size:clamp(1.5rem,7vw,1.9rem)!important;line-height:1.25}
 .hero-side .cta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
 .hero-side .cta .btn-wa{grid-column:1/-1}
 .hero-side .cta .btn{justify-content:center}
 .contato .cta{display:grid;gap:.6rem}.contato .cta .btn{justify-content:center}
 .stats{gap:1rem}.stats b{font-size:2.6rem}
 .tl button{padding-left:1.6rem}.tl .acc p{margin-left:1.6rem}
 .skills button{font-size:1.45rem}
}
@media (max-width:370px){.hero-side .cta{grid-template-columns:1fr}.foot{grid-template-columns:1fr}}
@media (max-width:860px){.foot a,.f-top{min-height:44px;display:inline-flex;align-items:center}.bar a.mark{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}}
@media (max-width:860px){.yr{animation:none!important;transform:none!important;margin-bottom:.6rem}.scene::before{inset:4% 6%;filter:blur(24px)}}
