/* ============ TOKENS ============ */
:root{
  --paper:#F1EDE6;
  --paper-2:#C4BCB1;
  --ink:#132631;
  --ink-2:#153E5A;
  --ink-3:#5c6b72;
  --accent:#D64D61;
  --accent-2:#782B4D;
  --pink:#FAB6A9;
  --polo:#98ABD2;
  --blue:#5E7DB5;
  --line:rgba(19,38,49,.16);
  --line-strong:rgba(19,38,49,.34);
  --line-inv:rgba(241,237,230,.14);
  --serif:'Trirong', Georgia, serif;
  --body:'EB Garamond', Georgia, serif;
  --mono:'Space Mono', ui-monospace, monospace;
  --ease:cubic-bezier(.8,0,.2,1);
  --ease-el:cubic-bezier(.175,.885,.32,1.275);
  --gutter:4.8rem;
  --maxw:1240px;
}
@media (max-width:760px){:root{--gutter:1.4rem}}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.15rem;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--accent);color:var(--paper)}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:var(--ink-2);border:2px solid var(--paper)}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}

/* ============ PRELOADER ============ */
#preloader{
  position:fixed;inset:0;z-index:1000;background:var(--ink);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.4rem;
  transition:transform 1s var(--ease);
}
#preloader.done{transform:translateY(-101%)}
#preloader .pl-name{
  font-family:var(--mono);font-size:.8rem;font-weight:700;letter-spacing:.5em;text-transform:uppercase;
  color:var(--paper);display:flex;
}
#preloader .pl-name span{opacity:0;animation:plIn .5s var(--ease) forwards}
@keyframes plIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
#preloader .pl-bar{width:160px;height:1px;background:rgba(241,237,230,.15);overflow:hidden}
#preloader .pl-bar i{display:block;height:100%;width:0;background:var(--accent);animation:plBar 1.3s var(--ease) .2s forwards}
@keyframes plBar{to{width:100%}}

/* ============ CURSOR ============ */
.cur-dot,.cur-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:999;border-radius:50%;display:none}
@media (pointer:fine){.cur-dot,.cur-ring{display:block}}
.cur-dot{width:6px;height:6px;background:var(--accent);transform:translate(-50%,-50%)}
.cur-ring{
  width:34px;height:34px;border:1px solid var(--accent);
  transform:translate(-50%,-50%) scale(.7);
  transition:width .3s var(--ease),height .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease);
}
.cur-ring.hov{width:56px;height:56px;border-color:var(--pink);background:rgba(214,77,97,.08)}

/* ============ SCROLL PROGRESS ============ */
#progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--accent),var(--pink));box-shadow:0 0 12px rgba(214,77,97,.6)}

/* ============ REVEAL ============ */
.rv{opacity:0;filter:blur(12px);transform:translateY(16px);
  transition:opacity 1.2s var(--ease),filter 1.2s var(--ease),transform 1.2s var(--ease)}
.rv.in{opacity:1;filter:blur(0);transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}.rv-d4{transition-delay:.32s}

/* ============ NAV ============ */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(241,237,230,.85);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  transition:transform .5s var(--ease);
}
header.hide{transform:translateY(-100%)}
.nav{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);
  height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{font-family:var(--mono);font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.brand em{font-style:normal;color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none}
.nav-links a{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-2);text-decoration:none;position:relative;padding:.2rem 0;
}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--accent);transition:width .45s var(--ease)}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{width:100%}
.nav-ava{
  font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--paper)!important;background:var(--accent);padding:.55rem 1rem;text-decoration:none;
  transition:background .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
}
.nav-ava:hover{background:var(--ink);transform:translateY(-1px);box-shadow:0 6px 18px -6px rgba(214,77,97,.55)}
.nav-ava::after{display:none}
.burger{display:none;background:none;border:1px solid var(--line-strong);width:42px;height:42px;cursor:pointer;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease-el),opacity .2s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:26px}
.burger.x span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:960px){
  .nav-links{position:fixed;inset:64px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    padding:0 var(--gutter);max-height:0;overflow:hidden;transition:max-height .6s var(--ease),padding .6s var(--ease)}
  .nav-links.open{max-height:520px;padding:1rem var(--gutter) 1.6rem}
  .nav-links li{width:100%;padding:.7rem 0;border-top:1px solid var(--line)}
  .nav-ava{display:inline-block;margin-top:.6rem}
  .burger{display:block}
}

/* ============ GLOW BUTTONS ============ */
.btn{
  --glow:0;
  font-family:var(--mono);font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  padding:.95rem 1.6rem;text-decoration:none;border:1px solid var(--paper);
  color:var(--ink);background:var(--paper);display:inline-block;position:relative;overflow:hidden;
  transition:color .35s var(--ease),background .35s var(--ease),border-color .35s var(--ease),
             transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 0 0 rgba(214,77,97,0);
  will-change:transform;
}
.btn::before{ /* sheen sweep */
  content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);transition:left .6s var(--ease);
}
.btn:hover::before{left:130%}
.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--paper);transform:translateY(-2px);
  box-shadow:0 0 28px rgba(214,77,97,.55),0 10px 26px -10px rgba(214,77,97,.6)}
.btn.ghost{background:transparent;color:var(--paper);border-color:rgba(241,237,230,.4)}
.btn.ghost:hover{border-color:var(--pink);background:rgba(250,182,169,.08);color:var(--pink);
  box-shadow:0 0 28px rgba(250,182,169,.35)}
.btn.on-light{border-color:var(--ink);color:var(--paper);background:var(--ink)}
.btn.on-light:hover{background:var(--accent);border-color:var(--accent)}

/* ============ HERO ============ */
.hero{
  min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
  background:radial-gradient(120% 100% at 20% 0%,var(--ink-2) 0%,var(--ink) 55%);
  color:var(--paper);padding:calc(64px + 3rem) var(--gutter) 0;
  position:relative;overflow:hidden;
}
/* aurora blobs */
.aurora{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;opacity:.5;will-change:transform}
.a1{width:44vw;height:44vw;background:radial-gradient(circle,rgba(214,77,97,.5),transparent 65%);top:-14%;right:-8%;animation:drift1 22s ease-in-out infinite alternate}
.a2{width:36vw;height:36vw;background:radial-gradient(circle,rgba(152,171,210,.4),transparent 65%);bottom:-10%;left:-10%;animation:drift2 28s ease-in-out infinite alternate}
.a3{width:24vw;height:24vw;background:radial-gradient(circle,rgba(250,182,169,.28),transparent 65%);top:32%;left:36%;animation:drift1 26s ease-in-out infinite alternate-reverse}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(-6vw,5vh) scale(1.15)}}
@keyframes drift2{from{transform:translate(0,0) scale(1.1)}to{transform:translate(7vw,-4vh) scale(.95)}}
/* grain */
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-grid{
  max-width:var(--maxw);margin:0 auto;width:100%;position:relative;z-index:2;
  display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:end;
}
.hero-left{grid-column:span 7;padding-bottom:3.2rem}
.hero-right{grid-column:span 5;display:flex;justify-content:flex-end;padding-bottom:2rem;will-change:transform}
.kicker{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--pink);display:flex;align-items:center;gap:.8rem;margin-bottom:1.6rem;
}
.kicker::before{content:"";width:2.4rem;height:1px;background:var(--pink)}
.hero h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.6rem,6.2vw,5.4rem);line-height:1.02;letter-spacing:-.01em;
}
.hero h1 .thin{font-weight:300;color:var(--paper-2)}
.hero h1 .lt{display:inline-block;opacity:0;transform:translateY(.5em) rotate(3deg);filter:blur(8px);
  transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.hero h1.on .lt{opacity:1;transform:none;filter:blur(0)}
.hero-sub{margin-top:1.6rem;max-width:34rem;font-size:1.22rem;color:rgba(241,237,230,.78)}
.hero-sub strong{color:var(--paper);font-weight:500}
.hero-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}
.hero-tags span{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--line-inv);padding:.42rem .8rem;color:rgba(241,237,230,.7);
  transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease);
}
.hero-tags span:hover{border-color:var(--pink);color:var(--pink);background:rgba(250,182,169,.06)}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}
/* scroll indicator */
.scroll-ind{position:absolute;left:50%;bottom:7.2rem;transform:translateX(-50%);z-index:3;
  width:1px;height:64px;background:rgba(241,237,230,.18);overflow:hidden}
.scroll-ind i{position:absolute;left:0;top:0;width:100%;height:40%;background:var(--pink);
  animation:scrArr 2.5s ease-in-out infinite}
@keyframes scrArr{0%{transform:translateY(-100%)}80%,100%{transform:translateY(260%)}}
@media (max-width:900px){.scroll-ind{display:none}}
/* constellation */
.net{width:min(100%,440px);height:auto;display:block;overflow:visible}
.net line{stroke:rgba(152,171,210,.28);stroke-width:1}
.net circle{fill:var(--polo)}
.net circle.hot{fill:var(--pink)}
.net circle.big{fill:var(--accent)}
.net .pulse{animation:pulse 4.5s ease-in-out infinite alternate}
.net .pulse2{animation:pulse 6.5s ease-in-out infinite alternate-reverse}
@keyframes pulse{from{opacity:.45}to{opacity:1}}
.net-legend{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(241,237,230,.45);text-align:right;margin-top:.4rem}

/* ---- hero slideshow (destaques) ---- */
.news{max-width:var(--maxw);margin:0 auto;width:100%;position:relative;z-index:2;
  border-top:1px solid var(--line-inv)}
.slides{position:relative;min-height:118px}
.slide{position:absolute;inset:0;padding:1.3rem 0 1.5rem;max-width:560px;
  opacity:0;transform:translateX(26px);filter:blur(6px);pointer-events:none;
  transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.slide.on{opacity:1;transform:none;filter:none;pointer-events:auto;position:relative}
.slide time{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;color:var(--pink);text-transform:uppercase}
.slide p{font-size:1rem;color:rgba(241,237,230,.78);margin-top:.5rem;line-height:1.45}
.slide-ui{position:absolute;right:0;bottom:1.4rem;display:flex;align-items:center;gap:1.1rem;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;color:rgba(241,237,230,.5)}
.dots{display:flex;gap:.5rem}
.dots b{width:22px;height:2px;background:rgba(241,237,230,.2);cursor:pointer;position:relative;overflow:hidden;transition:background .3s}
.dots b.on{background:var(--pink)}
.dots b.on::after{content:"";position:absolute;inset:0;background:var(--accent);transform-origin:left;animation:dotProg 6s linear forwards}
@keyframes dotProg{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:900px){
  .hero-left{grid-column:1/-1;padding-bottom:1rem}
  .hero-right{grid-column:1/-1;justify-content:flex-start;padding-bottom:1.2rem}
  .slide-ui{position:static;justify-content:flex-end;padding:0 0 1.2rem}
}

/* ============ MARQUEE ============ */
.marquee{background:var(--accent);color:var(--paper);overflow:hidden;padding:.85rem 0;
  border-top:1px solid rgba(241,237,230,.2);position:relative;z-index:3}
.marquee-track{display:flex;width:max-content;animation:mq 30s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{
  font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  padding:0 1.8rem;white-space:nowrap;display:flex;align-items:center;gap:1.8rem;
}
.marquee-track span::after{content:"◆";font-size:.5rem;color:var(--pink)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ============ SECTION FRAME ============ */
section.page{padding:7rem var(--gutter) 6rem;position:relative;overflow:hidden}
.wrap{max-width:var(--maxw);margin:0 auto;position:relative;z-index:2}
.wm{ /* watermark roman numeral, parallax */
  position:absolute;top:2rem;right:2vw;z-index:0;pointer-events:none;
  font-family:var(--serif);font-weight:600;font-size:clamp(10rem,22vw,20rem);line-height:1;
  color:var(--ink);opacity:.045;will-change:transform;
}
.dark .wm{color:var(--paper);opacity:.05}
.sec-head{position:relative;margin-bottom:3.6rem}
.sec-badge{
  position:absolute;top:-2.6rem;left:0;
  font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:.4rem .9rem;
}
.sec-head h2{font-family:var(--serif);font-weight:400;
  font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.06;letter-spacing:-.01em;max-width:22ch}
.sec-head h2 .rn{color:var(--accent);font-weight:300}
.sec-head p{margin-top:1.1rem;max-width:44rem;color:var(--ink-2);font-size:1.18rem}
.dark{background:var(--ink);color:var(--paper)}
.dark .sec-badge{background:var(--paper);color:var(--ink)}
.dark .sec-head p{color:rgba(241,237,230,.72)}
.dark .rn{color:var(--pink)!important}
.midnight{background:linear-gradient(160deg,var(--ink-2),var(--ink));color:var(--paper)}
.midnight .sec-badge{background:var(--paper);color:var(--ink)}
.midnight .sec-head p{color:rgba(241,237,230,.72)}
.midnight .rn{color:var(--polo)!important}

/* ============ SOBRE + DASH ============ */
.about-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}
.about-main{grid-column:span 7}
.about-main p+p{margin-top:1.2rem}
.about-main .lead{font-size:1.42rem;line-height:1.5;font-family:var(--serif);font-weight:300}
.about-side{grid-column:9/span 4;display:flex;flex-direction:column;gap:1.6rem}
/* portrait */
.portrait{position:relative;border:1px solid var(--line);padding:.55rem;background:#fff}
.portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;
  filter:grayscale(.25) contrast(1.02);transition:filter .8s var(--ease)}
.portrait:hover img{filter:grayscale(0) contrast(1)}
.portrait::before{content:"";position:absolute;inset:-7px auto auto -7px;width:34px;height:34px;
  border-top:2px solid var(--accent);border-left:2px solid var(--accent);transition:all .5s var(--ease)}
.portrait::after{content:"";position:absolute;inset:auto -7px -7px auto;width:34px;height:34px;
  border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);transition:all .5s var(--ease)}
.portrait:hover::before,.portrait:hover::after{width:calc(100% + 14px);height:calc(100% + 14px);opacity:.35}
.portrait figcaption{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-2);padding:.7rem .3rem .25rem;display:flex;justify-content:space-between;gap:1rem}
.portrait figcaption em{font-style:normal;color:var(--accent-2)}
/* dashboard panel */
.dash{
  background:linear-gradient(160deg,var(--ink),var(--ink-2));color:var(--paper);
  padding:1.8rem 1.7rem;position:relative;overflow:hidden;
  border:1px solid rgba(250,182,169,.18);
  box-shadow:0 30px 60px -30px rgba(19,38,49,.5);
}
.dash::before{content:"";position:absolute;top:-40%;right:-30%;width:70%;height:120%;
  background:radial-gradient(circle,rgba(214,77,97,.25),transparent 65%);filter:blur(30px)}
.dash h4{font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--pink);margin-bottom:1.3rem;display:flex;align-items:center;gap:.6rem;position:relative}
.dash h4 i{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:blink 2s infinite;font-style:normal}
@keyframes blink{0%,100%{opacity:1;box-shadow:0 0 8px var(--accent)}50%{opacity:.3;box-shadow:none}}
.dash-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1rem;position:relative}
.stat b{font-family:var(--serif);font-weight:500;font-size:2.2rem;line-height:1;display:block;color:var(--paper)}
.stat b em{font-style:normal;color:var(--pink);font-size:1.3rem}
.stat>span{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(241,237,230,.55);display:block;margin-top:.4rem}
.dash svg{width:100%;height:52px;margin-top:1.4rem;position:relative}
.dash .spark{fill:none;stroke:var(--pink);stroke-width:2;stroke-linecap:round}
.dash .spark-area{fill:url(#sparkGrad);stroke:none}
.dash .spark-lbl{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(241,237,230,.45);margin-top:.4rem;position:relative}
.fact{margin-bottom:0;border-left:1px solid var(--line);padding-left:1.4rem}
.fact dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.35rem}
.fact dd{font-size:1.05rem;color:var(--ink-2)}
.fact dd a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:3px}
.fact dd a:hover{color:var(--accent)}
@media (max-width:900px){.about-main{grid-column:1/-1}.about-side{grid-column:1/-1}}

/* interests split */
.interests{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);margin-top:3.4rem}
.int-cell{padding:2.2rem 2rem 2.4rem;position:relative;overflow:hidden}
.int-cell+.int-cell{border-left:1px solid var(--line)}
.int-cell::after{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s var(--ease);
  background:linear-gradient(120deg,rgba(94,125,181,.08),rgba(214,77,97,.08))}
.int-cell:hover::after{opacity:1}
.int-cell h3{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}
.int-cell p{color:var(--ink-2);font-size:1.05rem;position:relative}
@media (max-width:820px){.interests{grid-template-columns:1fr}.int-cell+.int-cell{border-left:none;border-top:1px solid var(--line)}}

/* ============ LIST ROWS ============ */
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:repeat(12,1fr);gap:1.4rem;align-items:baseline;
  padding:1.7rem 0;border-bottom:1px solid var(--line);
  transition:background .4s var(--ease),padding .4s var(--ease)}
.row:hover{background:rgba(19,38,49,.035);padding-left:.8rem;padding-right:.8rem}
.row .yr{grid-column:span 2;font-family:var(--mono);font-size:.8rem;color:var(--accent);letter-spacing:.06em}
.row .bd{grid-column:span 8}
.row .bd h3{font-family:var(--serif);font-weight:500;font-size:1.32rem;line-height:1.25}
.row .bd p{margin-top:.4rem;color:var(--ink-2);font-size:1.02rem}
.row .meta{grid-column:span 2;text-align:right;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.row .lk{display:inline-flex;gap:1.2rem;margin-top:.7rem;flex-wrap:wrap}
.row .lk a{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .3s var(--ease)}
.row .lk a:hover{border-color:var(--accent)}
.dark .rows{border-top-color:var(--line-inv)}
.dark .row{border-bottom-color:var(--line-inv)}
.dark .row:hover{background:rgba(241,237,230,.05)}
.dark .row .yr{color:var(--pink)}
.dark .row .bd p{color:rgba(241,237,230,.66)}
.dark .row .meta{color:rgba(241,237,230,.42)}
.dark .row .lk a{color:var(--pink)}
.dark .row .lk a:hover{border-color:var(--pink)}
@media (max-width:820px){.row .yr,.row .bd,.row .meta{grid-column:span 12;text-align:left}}

/* research lines */
.lines{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line-inv);margin-bottom:4rem}
.line-cell{padding:2rem 1.8rem 2.2rem;border-left:1px solid var(--line-inv);position:relative;overflow:hidden}
.line-cell:first-child{border-left:none}
.line-cell::after{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s var(--ease);
  background:linear-gradient(120deg,rgba(152,171,210,.12),rgba(214,77,97,.12))}
.line-cell:hover::after{opacity:1}
.line-cell .num{font-family:var(--mono);font-size:.7rem;color:var(--pink);letter-spacing:.18em}
.line-cell h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin:.8rem 0 .6rem;line-height:1.2;position:relative}
.line-cell p{font-size:1rem;color:rgba(241,237,230,.66);position:relative}
@media (max-width:1100px) and (min-width:821px){.lines{grid-template-columns:1fr 1fr}.line-cell:nth-child(3){border-left:none}.line-cell:nth-child(n+3){border-top:1px solid var(--line-inv)}}
@media (max-width:820px){.lines{grid-template-columns:1fr}.line-cell{border-left:none;border-top:1px solid var(--line-inv)}.line-cell:first-child{border-top:none}}

/* ============ ENSINO ============ */
.level-tabs{display:flex;gap:0;border:1px solid var(--line-strong);width:max-content;margin-bottom:2.6rem;flex-wrap:wrap}
.level-tab{font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:.85rem 1.6rem;background:transparent;border:none;cursor:pointer;color:var(--ink-2);transition:all .35s var(--ease)}
.level-tab.active{background:var(--ink);color:var(--paper);box-shadow:0 8px 20px -8px rgba(19,38,49,.5)}
.level-tab:not(.active):hover{color:var(--accent)}
.level{display:none}
.level.show{display:block;animation:lvlIn .8s var(--ease)}
@keyframes lvlIn{from{opacity:0;filter:blur(8px);transform:translateY(10px)}to{opacity:1;filter:blur(0);transform:none}}
.teach-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:stretch}
.teach-list{grid-column:span 7}
.course{border-bottom:1px solid var(--line);padding:1.3rem 0;display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:baseline}
.course:first-child{border-top:1px solid var(--line)}
.course .cd{font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em;min-width:4.4rem}
.course h3{font-family:var(--serif);font-weight:500;font-size:1.2rem}
.course p{color:var(--ink-2);font-size:.98rem;margin-top:.2rem}
.course .dw{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-left:.6rem}
.ava-card{grid-column:8/span 5;background:var(--paper-2);border:1px solid var(--line-strong);padding:2.4rem 2.2rem;
  display:flex;flex-direction:column;justify-content:space-between;gap:2rem;position:relative;overflow:hidden;
  transition:box-shadow .4s var(--ease)}
.ava-card:hover{box-shadow:0 24px 50px -24px rgba(120,43,77,.4)}
.ava-card::before{content:"AVA";position:absolute;right:-1.2rem;bottom:-2.6rem;
  font-family:var(--serif);font-size:9rem;font-weight:600;color:rgba(214,77,97,.09);line-height:1;pointer-events:none}
.ava-card h3{font-family:var(--serif);font-weight:400;font-size:1.9rem;line-height:1.1}
.ava-card p{color:var(--ink-2);margin-top:.9rem;font-size:1.05rem}
.ava-card .btn{align-self:flex-start;background:var(--accent);border-color:var(--accent);color:var(--paper)}
.ava-card .btn:hover{background:var(--ink);border-color:var(--ink)}
.ava-note{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:1rem}
@media (max-width:900px){.teach-list{grid-column:1/-1}.ava-card{grid-column:1/-1}}
.mats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:3.4rem;perspective:900px}
.mat{border:1px solid var(--line);padding:1.6rem 1.5rem;background:var(--paper);
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease);transform-style:preserve-3d;will-change:transform}
.mat:hover{border-color:var(--accent);box-shadow:0 22px 44px -20px rgba(19,38,49,.35)}
.mat .mt{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.mat h3{font-family:var(--serif);font-weight:500;font-size:1.25rem;margin:.7rem 0 .5rem}
.mat p{font-size:.96rem;color:var(--ink-2)}
.mat .c{font-family:var(--mono);font-size:.62rem;color:var(--ink-3);margin-top:.9rem;display:block;letter-spacing:.1em}
@media (max-width:900px){.mats{grid-template-columns:1fr}}

/* acervos por nível × área */
.acervo{margin-top:3.6rem}
.acervo-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.6rem;flex-wrap:wrap;margin-bottom:2rem}
.acervo-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.1}
.acervo-title span{color:var(--accent-2);font-weight:300;font-style:italic}
.level-tabs.small{margin-bottom:0}
.level-tabs.small .level-tab{padding:.6rem 1.1rem;font-size:.64rem}
.acervo-level{display:none}
.acervo-level.show{display:block;animation:lvlIn .8s var(--ease)}
.acervo-level .mats{margin-top:0}

/* handbook / material próprio */
.handbook{
  margin-top:4rem;display:grid;grid-template-columns:340px 1fr;gap:0;
  border:1px solid var(--line-strong);background:var(--paper);
  box-shadow:0 34px 70px -40px rgba(19,38,49,.45);overflow:hidden;
}
.hb-cover{
  background:linear-gradient(155deg,var(--accent-2),var(--accent) 55%,#8f3a55);
  color:var(--paper);padding:2.2rem 1.9rem;display:flex;flex-direction:column;gap:1rem;
  position:relative;overflow:hidden;min-height:420px;
}
.hb-cover::after{content:"";position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.hb-cover::before{content:"";position:absolute;left:1.9rem;top:0;bottom:0;width:2px;background:rgba(250,244,230,.35)}
.hb-tag{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--pink)}
.hb-title{font-family:var(--serif);font-weight:500;font-size:2rem;line-height:1.08;margin-top:auto}
.hb-sub{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,244,230,.7)}
.hb-author{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;border-top:1px solid rgba(250,244,230,.3);padding-top:1rem;margin-top:.6rem}
.hb-body{padding:2.6rem 2.6rem 2.4rem;display:flex;flex-direction:column;gap:1.1rem}
.hb-kicker{font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-2)}
.hb-body h3{font-family:var(--serif);font-weight:400;font-size:1.9rem;line-height:1.12}
.hb-body>p{color:var(--ink-2);max-width:44rem}
.hb-formats{display:flex;flex-wrap:wrap;gap:.5rem}
.hb-formats span{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--line-strong);padding:.4rem .8rem;color:var(--ink-2)}
.hb-actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;margin-top:.4rem}
.hb-lnk{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);
  text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
.hb-lnk:hover{border-color:var(--accent-2)}
@media (max-width:900px){.handbook{grid-template-columns:1fr}.hb-cover{min-height:300px}}

/* ============ MÉTODOS (flip cards) ============ */
.meth-intro{max-width:44rem;color:rgba(241,237,230,.72);margin-bottom:3rem;font-size:1.15rem}
.flips{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;perspective:1400px}
.flip{height:240px;position:relative;cursor:pointer;transform-style:preserve-3d;transition:transform .7s var(--ease)}
.flip.flipped{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  padding:1.7rem 1.6rem;display:flex;flex-direction:column;justify-content:space-between;
  border:1px solid var(--line-inv)}
.flip-front{background:rgba(241,237,230,.03);transition:background .4s var(--ease)}
.flip:hover .flip-front{background:rgba(250,182,169,.06)}
.flip-front .fn{font-family:var(--mono);font-size:.66rem;color:var(--polo);letter-spacing:.2em}
.flip-front h3{font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.14}
.flip-front .tap{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,237,230,.4)}
.flip-back{background:var(--paper);color:var(--ink);transform:rotateY(180deg)}
.flip-back h4{font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.flip-back p{font-size:.85rem;color:var(--ink-2);line-height:1.5}
@media (max-width:1000px){.flips{grid-template-columns:repeat(2,1fr)}.flip{height:230px}}
@media (max-width:520px){.flips{grid-template-columns:1fr}}

/* ============ DADOS ============ */
.stack{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}
.stack span{
  font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid rgba(152,171,210,.45);color:var(--polo);padding:.5rem 1rem;
  transition:all .3s var(--ease);cursor:default;
}
.stack span:hover{border-color:var(--pink);color:var(--pink);box-shadow:0 0 16px rgba(250,182,169,.25);transform:translateY(-2px)}
.principles{color:rgba(241,237,230,.6);font-size:1rem;max-width:52rem;margin-bottom:2.6rem;font-style:italic}
.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;perspective:900px}
.repo{
  border:1px solid rgba(152,171,210,.28);padding:0 0 1.5rem;display:flex;flex-direction:column;gap:.9rem;min-height:250px;
  background:rgba(241,237,230,.035);
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
  transform-style:preserve-3d;will-change:transform;overflow:hidden;
}
.repo:hover{background:rgba(241,237,230,.07);border-color:rgba(250,182,169,.55);
  box-shadow:0 24px 50px -24px rgba(0,0,0,.6),0 0 30px -8px rgba(250,182,169,.25)}
.repo-bar{display:flex;align-items:center;gap:.45rem;padding:.85rem 1.2rem;border-bottom:1px solid var(--line-inv);
  background:rgba(19,38,49,.35)}
.repo-bar i{width:9px;height:9px;border-radius:50%;background:rgba(241,237,230,.2)}
.repo-bar i:nth-child(1){background:var(--accent)}
.repo-bar i:nth-child(2){background:var(--pink)}
.repo-bar i:nth-child(3){background:var(--polo)}
.repo-bar .tag{margin-left:auto}
.repo .tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pink)}
.repo h3{font-family:var(--serif);font-weight:500;font-size:1.28rem;line-height:1.2;padding:0 1.5rem;margin-top:.4rem}
.repo p{font-size:.95rem;color:rgba(241,237,230,.7);flex:1;padding:0 1.5rem}
.repo p strong{color:var(--paper);font-weight:500}
.repo .st{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:0 1.5rem;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;color:rgba(241,237,230,.45);text-transform:uppercase}
.pill{font-weight:700;padding:.32rem .7rem;letter-spacing:.12em}
.pill.p1{background:rgba(250,182,169,.14);color:var(--pink);border:1px solid rgba(250,182,169,.4)}
.pill.p2{background:rgba(152,171,210,.14);color:var(--polo);border:1px solid rgba(152,171,210,.45)}
.pill.p3{background:rgba(214,77,97,.16);color:#f08a99;border:1px solid rgba(214,77,97,.5)}
@media (max-width:1100px){.repo-grid{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.repo-grid{grid-template-columns:1fr}}

/* ============ TEXTOS ============ */
.post{border-top:1px solid var(--line);padding:2.2rem 0;display:grid;grid-template-columns:repeat(12,1fr);gap:1.4rem}
.post .pd{grid-column:span 2;font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em;line-height:1.7}
.post .pb{grid-column:span 10}
.post h3{font-family:var(--serif);font-weight:400;font-size:1.7rem;line-height:1.15;max-width:26ch}
.post h3 a{color:var(--ink);text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));
  background-size:0% 2px;background-repeat:no-repeat;background-position:0 96%;transition:background-size .5s var(--ease)}
.post h3 a:hover{background-size:100% 2px}
.post p{margin-top:.7rem;color:var(--ink-2);max-width:44rem;font-size:1.05rem}
.post .cite{margin-top:1rem;font-family:var(--mono);font-size:.68rem;color:var(--ink-3);
  border-left:2px solid var(--accent);padding-left:.9rem;line-height:1.6;max-width:44rem}
@media (max-width:820px){.post .pd,.post .pb{grid-column:1/-1}}

/* ============ CANAIS ============ */
.chan-group h3{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin:2.4rem 0 1.1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.chan-group:first-of-type h3{margin-top:0}
.chips{display:flex;flex-wrap:wrap;gap:.8rem}
.chip{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-decoration:none;
  color:var(--ink-2);border:1px solid var(--line-strong);padding:.7rem 1.2rem;
  display:inline-flex;align-items:center;gap:.6rem;
  transition:all .35s var(--ease);
}
.chip i{font-style:normal;color:var(--accent);transition:transform .35s var(--ease)}
.chip:hover{border-color:var(--accent);color:var(--ink);background:rgba(214,77,97,.05);transform:translateY(-2px);
  box-shadow:0 10px 22px -12px rgba(214,77,97,.4)}
.chip:hover i{transform:translate(2px,-2px)}

/* ============ CURRÍCULO ============ */
.cv-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}
.cv-col{grid-column:span 6}
.cv-col h3{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.cv-item{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;padding:.9rem 0;align-items:baseline}
.cv-item .y{font-family:var(--mono);font-size:.76rem;color:var(--ink-3);min-width:6.4rem}
.cv-item b{font-family:var(--serif);font-weight:500;font-size:1.08rem}
.cv-item span{display:block;color:var(--ink-2);font-size:.96rem;margin-top:.15rem}
@media (max-width:820px){.cv-col{grid-column:1/-1}}

/* ============ FOOTER ============ */
footer{background:radial-gradient(120% 120% at 80% 0%,var(--ink-2),var(--ink) 60%);color:var(--paper);position:relative;overflow:hidden}
.contact{padding:7rem var(--gutter) 5rem;position:relative;z-index:2}
.contact .wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:end}
.contact-left{grid-column:span 8}
.contact-left h2{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,5.6vw,4.6rem);line-height:1.04}
.contact-left h2 em{font-style:italic;color:var(--pink)}
.contact-left p{margin-top:1.4rem;color:rgba(241,237,230,.7);max-width:34rem}
.contact-right{grid-column:9/span 4;display:flex;flex-direction:column;gap:.9rem}
.soc{display:flex;justify-content:space-between;align-items:center;text-decoration:none;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(241,237,230,.75);border-bottom:1px solid var(--line-inv);padding:.9rem 0;
  transition:color .3s var(--ease),padding-left .3s var(--ease)}
.soc:hover{color:var(--paper);padding-left:.5rem}
.soc i{font-style:normal;color:var(--pink)}
@media (max-width:900px){.contact-left{grid-column:1/-1}.contact-right{grid-column:1/-1}}
.foot-bar{border-top:1px solid var(--line-inv);padding:1.6rem var(--gutter) 2rem;position:relative;z-index:2}
.foot-bar .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(241,237,230,.4)}

/* ============ MELHORIAS V4 ============ */
/* anchor offset under fixed nav */
section[id],footer[id]{scroll-margin-top:64px}
/* focus visibility */
a:focus-visible,button:focus-visible,.flip:focus-visible,.chip:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px}
/* nav active */
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{width:100%}
/* contrast: small mono labels on light bg -> brown */
.fact dt,.mat .mt,.chan-group h3,.cv-col h3,.post .pd,.int-cell h3,.flip-back h4{color:var(--accent-2)}
.course .dw{color:var(--ink-2)}
/* status chip */
.status{
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.4rem;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper);border:1px solid var(--line-inv);padding:.5rem 1rem;
  background:rgba(250,182,169,.07);backdrop-filter:blur(4px);
}
.status i{width:7px;height:7px;border-radius:50%;background:#7ee2a8;animation:blink2 2.2s infinite;font-style:normal}
@keyframes blink2{0%,100%{opacity:1;box-shadow:0 0 10px #7ee2a8}50%{opacity:.35;box-shadow:none}}
/* rotating word */
.rot{display:inline-block;position:relative;color:var(--pink);font-weight:500;min-width:5.5ch;text-align:left}
.rot .rw{position:absolute;left:0;top:0;opacity:0;transform:translateY(.4em);filter:blur(4px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),filter .5s var(--ease);white-space:nowrap}
.rot .rw.on{position:relative;opacity:1;transform:none;filter:none}
/* constellation hover */
.net:hover line{stroke:rgba(250,182,169,.5)}
.net:hover circle{filter:drop-shadow(0 0 6px rgba(250,182,169,.6))}
/* preloader pct */
#preloader .pl-pct{font-family:var(--mono);font-size:.64rem;letter-spacing:.3em;color:rgba(241,237,230,.5)}
/* publications filter */
.pub-filter{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.4rem}
.pf{font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:.6rem 1.1rem;background:transparent;border:1px solid var(--line-inv);color:rgba(241,237,230,.6);
  cursor:pointer;transition:all .35s var(--ease)}
.pf:hover{border-color:var(--pink);color:var(--pink)}
.pf.active{background:var(--pink);border-color:var(--pink);color:var(--ink);box-shadow:0 0 20px rgba(250,182,169,.35)}
.row.hide-row{display:none}
.rows .row{animation:none}
.rows .row.pop{animation:rowIn .7s var(--ease)}
@keyframes rowIn{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
/* big footer email */
.big-mail{
  display:inline-block;margin-top:1.8rem;font-family:var(--serif);font-weight:400;
  font-size:clamp(1.4rem,3vw,2.2rem);color:var(--paper);text-decoration:none;
  background-image:linear-gradient(var(--pink),var(--pink));background-size:0% 2px;
  background-repeat:no-repeat;background-position:0 100%;transition:background-size .6s var(--ease),color .4s var(--ease);
}
.big-mail:hover{background-size:100% 2px;color:var(--pink)}
/* back to top */
#toTop{
  position:fixed;right:1.6rem;bottom:1.6rem;z-index:150;
  width:52px;height:52px;border-radius:50%;border:1px solid var(--line-strong);
  background:var(--ink);color:var(--paper);cursor:pointer;
  font-family:var(--mono);font-size:1rem;
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease),background .3s var(--ease);
}
#toTop.show{opacity:1;transform:none;pointer-events:auto}
#toTop:hover{background:var(--accent);border-color:var(--accent);box-shadow:0 0 24px rgba(214,77,97,.55)}
/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv,.hero h1 .lt{opacity:1!important;filter:none!important;transform:none!important}
  html{scroll-behavior:auto}
  #preloader{display:none}
}

/* ============ EXTRAS GLOBAIS ============ */
::selection{background:var(--accent);color:var(--paper)}
img{max-width:100%}

/* ============ PÁGINAS INTERNAS ============ */
.sub-hero{position:relative;overflow:hidden;padding:11rem 0 4.5rem;
  background:linear-gradient(160deg,var(--ink),var(--ink-2));color:var(--paper)}
.sub-hero .wm{top:auto;bottom:-8rem;color:rgba(241,237,230,.05)}
.sub-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,5vw,4rem);line-height:1.05;max-width:16ch}
.sub-hero h1 em{font-style:italic;color:var(--pink)}
.sub-hero .sub-lead{max-width:60ch;font-size:1.15rem;line-height:1.6;color:rgba(241,237,230,.75);margin-top:1.4rem}
.crumb{display:flex;gap:.8rem;align-items:center;font-family:var(--mono);font-size:.62rem;
  letter-spacing:.18em;text-transform:uppercase;margin-bottom:2rem;color:rgba(241,237,230,.55)}
.crumb a{color:var(--pink);text-decoration:none}
.crumb a:hover{color:var(--paper)}
.crumb i{font-style:normal;opacity:.5}
.sub-body{padding:5rem 0 6rem}
.sub-body.alt{background:rgba(196,188,177,.28)}
.two-col{display:grid;grid-template-columns:2fr 1fr;gap:4rem}
@media (max-width:900px){.two-col{grid-template-columns:1fr}}

/* artigo / texto */
.article{font-size:1.14rem;line-height:1.75;color:var(--ink-2)}
.article p+p{margin-top:1.3rem}
.article h2{font-family:var(--serif);font-weight:500;font-size:1.9rem;color:var(--ink);margin:3rem 0 1rem}
.article h3{font-family:var(--serif);font-weight:500;font-size:1.45rem;color:var(--ink);margin:2.4rem 0 .8rem}
.article blockquote{border-left:3px solid var(--accent);padding:.4rem 0 .4rem 1.6rem;margin:2rem 0;
  font-family:var(--serif);font-size:1.3rem;font-style:italic;color:var(--ink)}
.article ul{margin:1.2rem 0 1.2rem 1.4rem}
.article li{margin-bottom:.6rem}
.article .lede{font-family:var(--serif);font-size:1.45rem;line-height:1.55;font-weight:300;color:var(--ink)}
.cite-box{border:1px solid var(--line-strong);border-left:4px solid var(--accent);padding:1.6rem 1.8rem;margin:2.4rem 0;
  background:#fff;font-size:.98rem;line-height:1.6}
.cite-box h4{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-2);margin-bottom:.7rem}
.cite-box p{margin:0}
.cite-box button{margin-top:1rem}
.refs{font-size:.98rem;line-height:1.7;color:var(--ink-2)}
.refs p{margin-bottom:.9rem;padding-left:1.8rem;text-indent:-1.8rem}
.post-meta{display:flex;gap:1.4rem;flex-wrap:wrap;font-family:var(--mono);font-size:.62rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2rem}
.post-meta span b{color:var(--accent-2);font-weight:700}
.back-link{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--accent);padding-bottom:.3rem;transition:color .3s}
.back-link:hover{color:var(--accent)}

/* lista de publicações (página) */
.pub-full{display:grid;gap:0;border:1px solid var(--line)}
.pub-item{padding:2rem 2.2rem;position:relative;overflow:hidden;transition:background .3s}
.pub-item+.pub-item{border-top:1px solid var(--line)}
.pub-item:hover{background:rgba(255,255,255,.55)}
.pub-item .pk{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-2);margin-bottom:.5rem;display:block}
.pub-item h3{font-family:var(--serif);font-weight:500;font-size:1.45rem;line-height:1.25;color:var(--ink)}
.pub-item p{margin-top:.6rem;color:var(--ink-2);font-size:1.02rem}
.pub-item .pmeta{margin-top:.8rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}

/* capítulos do handbook */
.chapters{counter-reset:ch;border:1px solid var(--line)}
.chapter{display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:baseline;padding:1.6rem 2rem;position:relative;transition:background .3s}
.chapter+.chapter{border-top:1px solid var(--line)}
.chapter:hover{background:rgba(255,255,255,.55)}
.chapter::before{counter-increment:ch;content:counter(ch,decimal-leading-zero);
  font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em}
.chapter h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;color:var(--ink)}
.chapter p{grid-column:2;font-size:.98rem;color:var(--ink-2);margin-top:.3rem}
.chapter .ch-tag{font-family:var(--mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
@media (max-width:640px){.chapter{grid-template-columns:auto 1fr}.chapter .ch-tag{grid-column:2}}

/* nota de rodapé / observações */
.note{font-size:.9rem;color:var(--ink-3);border-top:1px solid var(--line);padding-top:1rem;margin-top:2.5rem}
