/* ============================================================
   Ana Carolina Tiveron Barusso — personal site
   Visual system matched to the Editorial CV / cover letter
   ============================================================ */

:root{
  --ink:#1A1A18;
  --ink-soft:#3A3A36;
  --muted:#75726C;
  --rule:#DDD9D2;
  --paper:#FCFBF9;
  --paper-alt:#F5F2ED;
  --terracotta:#8A5A3C;
  --terracotta-dk:#6E4630;
  --navy:#213042;
  --navy-2:#2E4056;
  --serif:Georgia,'Times New Roman',Times,serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --bar:60px;
  --wrap:1080px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--terracotta);text-decoration:none}
a:hover{color:var(--terracotta-dk);text-decoration:underline}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}

.eyebrow{
  font-size:11px;letter-spacing:.20em;text-transform:uppercase;
  color:var(--terracotta);font-weight:700;margin:0 0 18px;line-height:1.9;
}

/* ============================================================
   TOP BAR
   ============================================================ */
.topbar{
  position:sticky;top:0;z-index:60;
  background:rgba(252,251,249,.95);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--rule);
}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:var(--bar);max-width:none;padding:0 34px}
.brand{font-family:var(--serif);font-size:17px;color:var(--ink)}
.brand:hover{text-decoration:none;color:var(--terracotta)}
.brand .mono{
  display:inline-block;width:26px;height:26px;line-height:26px;text-align:center;
  background:var(--navy);color:#fff;font-family:var(--sans);font-size:11px;
  font-weight:700;border-radius:3px;margin-right:9px;vertical-align:2px;
}
.nav{display:flex;gap:26px;align-items:center}
.nav a{
  font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);font-weight:600;white-space:nowrap;
}
.nav a:hover,.nav a.is-active{color:var(--ink);text-decoration:none}
.nav a.is-active{border-bottom:2px solid var(--terracotta);padding-bottom:3px}

/* ============================================================
   SPLIT SCREEN — photo left, content right
   ============================================================ */
.split{display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);align-items:start}

.split-photo{
  position:sticky;top:var(--bar);
  height:calc(100vh - var(--bar));
  background:#141a22 url('photo.jpg') center 34% / cover no-repeat;
  overflow:hidden;
}
.photo-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(33,48,66,.34) 0%,rgba(33,48,66,0) 26%,rgba(20,26,34,0) 52%,rgba(20,26,34,.82) 100%);
}
.photo-caption{
  position:absolute;left:38px;right:38px;bottom:32px;z-index:2;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.photo-caption .mono-mark{
  display:inline-block;width:34px;height:34px;line-height:33px;text-align:center;
  border:1px solid rgba(255,255,255,.45);color:#fff;
  font-size:12px;font-weight:700;letter-spacing:.04em;border-radius:3px;flex:0 0 auto;
}
.photo-caption .loc{
  color:rgba(255,255,255,.86);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:600;
}

.split-content{padding:64px 58px 78px;min-width:0;max-width:840px}
.intro h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(32px,3.4vw,46px);line-height:1.1;margin:0 0 28px;
  letter-spacing:-.005em;
}

/* --- about box --- */
.about-box{
  border:1px solid var(--rule);border-top:3px solid var(--terracotta);
  background:#fff;padding:30px 32px 26px;
  box-shadow:0 1px 2px rgba(26,26,24,.04);
}
.box-title{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--muted);font-weight:700;margin:0 0 16px;
}
.about-box p{margin:0 0 15px;font-size:16.5px;line-height:1.75;color:var(--ink-soft)}
.about-box p:last-of-type{margin-bottom:0}
.about-box strong{color:var(--ink);font-weight:600}

.highlights{
  list-style:none;margin:26px 0 0;padding:22px 0 0;border-top:1px solid var(--rule);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:18px;
}
.highlights li{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600;line-height:1.5}
.highlights span{
  display:block;font-family:var(--serif);font-size:29px;color:var(--navy);
  letter-spacing:0;text-transform:none;line-height:1.1;margin-bottom:4px;font-weight:400;
}

/* --- buttons --- */
.cta-row{display:flex;gap:11px;flex-wrap:wrap;margin-top:26px}
.btn{
  display:inline-block;padding:11px 20px;border-radius:3px;
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
  border:1px solid transparent;transition:all .16s ease;cursor:pointer;
}
.btn-primary{background:#fff;color:var(--navy)}
.btn-primary:hover{background:#E9EEF4;color:var(--navy);text-decoration:none}
.btn-ghost{border-color:rgba(255,255,255,.42);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy-2);color:#fff;text-decoration:none}
.btn-outline{border-color:var(--rule);color:var(--ink);background:transparent}
.btn-outline:hover{border-color:var(--terracotta);color:var(--terracotta);text-decoration:none}

/* ============================================================
   SECTION MENU (tabs) + PANELS
   ============================================================ */
.tabs{
  display:flex;flex-wrap:wrap;row-gap:2px;
  margin:54px 0 0;border-bottom:1px solid var(--rule);
}
.tab{
  appearance:none;background:none;border:0;border-bottom:2px solid transparent;
  padding:10px 2px 12px;margin-right:20px;
  font-family:var(--sans);font-size:11px;letter-spacing:.11em;text-transform:uppercase;
  font-weight:700;color:var(--muted);cursor:pointer;transition:color .15s ease;
  line-height:1.5;
}
.tab:hover{color:var(--ink)}
.tab.is-active{color:var(--ink);border-bottom-color:var(--terracotta)}

.panels{padding-top:8px}
.panel{display:none;animation:fade .28s ease}
.panel.is-active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* --- experience --- */
.job{padding:26px 0;border-bottom:1px solid var(--rule)}
.job:last-child{border-bottom:0;padding-bottom:6px}
.job-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}
.job h3{font-family:var(--serif);font-size:21px;font-weight:400;margin:0;line-height:1.3}
.job .dates{
  font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);font-weight:700;white-space:nowrap;
}
.job .org{font-size:13px;color:var(--terracotta);font-weight:600;margin:6px 0 14px}
.job ul{margin:0;padding-left:0;list-style:none}
.job li{position:relative;padding-left:20px;margin-bottom:9px;color:var(--ink-soft);font-size:15.5px;line-height:1.66}
.job li::before{content:'';position:absolute;left:0;top:11px;width:9px;height:1.5px;background:var(--terracotta)}

/* --- education / certificates / skills blocks --- */
.edu,.cert,.skill,.tool-group{padding:20px 0;border-bottom:1px solid var(--rule)}
.edu:last-child,.cert:last-child,.skill:last-child,.tool-group:last-child{border-bottom:0}
.edu h4,.cert h4,.skill h4,.tool-group h4{
  font-family:var(--serif);font-size:18px;font-weight:400;margin:0 0 6px;line-height:1.35;
}
.edu p,.cert p,.skill p{margin:0;font-size:15px;color:var(--muted);line-height:1.62}
.skill p{color:var(--ink-soft);font-size:15.5px}
.tool-group h4{font-size:15px;font-family:var(--sans);font-weight:700;letter-spacing:.02em;color:var(--ink);margin-bottom:11px}

/* --- tags --- */
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{
  font-size:12.5px;padding:6px 12px;background:var(--paper-alt);
  border:1px solid var(--rule);color:var(--ink-soft);border-radius:2px;
}

/* --- definition rows --- */
.dl{margin:0}
.dl .row{display:flex;gap:22px;padding:16px 0;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.dl .row:last-child{border-bottom:0}
.dl dt{
  flex:0 0 150px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--muted);font-weight:700;padding-top:3px;
}
.dl dd{margin:0;flex:1 1 300px;color:var(--ink-soft);font-size:15.5px}

/* ============================================================
   GENERIC SECTIONS
   ============================================================ */
.section{padding:64px 0}
.band{background:var(--paper-alt);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.section-title{
  font-size:11.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--terracotta);margin:0 0 20px;
}
.lead{font-size:17px;line-height:1.78;color:var(--ink-soft);margin:0;max-width:70ch}

/* ============================================================
   ARTICLES / NEWS
   ============================================================ */
.post-list{margin-top:8px}
.post{display:block;padding:24px 0;border-top:1px solid var(--rule);color:inherit}
.post:first-child{border-top:0}
.post:hover{text-decoration:none}
.post:hover h3{color:var(--terracotta)}
.post .kicker{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:9px}
.post .kicker .type{color:var(--terracotta)}
.post h3{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.32;margin:0 0 9px;transition:color .15s ease}
.post p{margin:0;color:var(--ink-soft);font-size:15.5px;max-width:70ch}
.post .more{display:inline-block;margin-top:11px;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--terracotta);font-weight:700}

.empty{border:1px dashed var(--rule);background:#fff;padding:44px 30px;text-align:center;border-radius:3px}
.empty h3{font-family:var(--serif);font-weight:400;font-size:21px;margin:0 0 8px}
.empty p{margin:0;color:var(--muted);font-size:15px}

/* article page */
.article-head{padding:56px 0 26px;border-bottom:1px solid var(--rule)}
.article-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,4.4vw,42px);line-height:1.18;margin:0 0 14px}
.article-head .kicker{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600}
.article-body{padding:34px 0 20px;max-width:72ch}
.article-body p{font-size:17px;line-height:1.82;color:var(--ink-soft);margin:0 0 20px}
.article-body h2{font-family:var(--serif);font-weight:400;font-size:25px;margin:34px 0 12px;line-height:1.3}
.article-body h3{font-family:var(--serif);font-weight:400;font-size:20px;margin:28px 0 10px}
.article-body ul,.article-body ol{padding-left:22px;margin:0 0 20px}
.article-body li{font-size:17px;line-height:1.8;color:var(--ink-soft);margin-bottom:8px}
.article-body blockquote{margin:26px 0;padding:4px 0 4px 22px;border-left:3px solid var(--terracotta);font-family:var(--serif);font-size:19px;line-height:1.7;color:var(--ink)}
.article-body img{margin:26px 0;border:1px solid var(--rule)}
.article-body a{border-bottom:1px solid rgba(138,90,60,.35)}
.back-link{display:inline-block;margin-top:26px;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:700}

/* ============================================================
   CONTACT + FOOTER
   ============================================================ */
.contact-card{
  background:var(--navy);color:#fff;padding:46px 40px;border-radius:3px;
  display:flex;gap:30px;justify-content:space-between;align-items:center;flex-wrap:wrap;
}
.contact-card h2{font-family:var(--serif);font-weight:400;font-size:30px;margin:0 0 10px;line-height:1.2}
.contact-card p{margin:0;color:#B7C4D3;font-size:15.5px;max-width:46ch}
.contact-card .cta-row{margin-top:0}

.site-footer{border-top:1px solid var(--rule);padding:30px 0 46px;font-size:13px;color:var(--muted)}
.site-footer .wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--terracotta)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Telas muito largas: a coluna de texto não deve esticar, e a foto
   não precisa ocupar quase metade de um monitor ultrawide. */
@media (min-width:1600px){
  .split{grid-template-columns:minmax(0,34%) minmax(0,66%)}
  .split-content{padding:72px 66px 86px}
}
@media (min-width:2100px){
  .split{grid-template-columns:minmax(0,30%) minmax(0,70%)}
}

@media (max-width:1180px){
  .split{grid-template-columns:minmax(0,38%) minmax(0,62%)}
  .split-content{padding:52px 42px 66px}
}

@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .split-photo{
    position:relative;top:0;height:66vh;min-height:380px;
    background-position:center 30%;
  }
  .photo-caption{left:26px;right:26px;bottom:22px;flex-wrap:nowrap;gap:12px}
  .photo-caption .loc{font-size:10.5px;letter-spacing:.10em;line-height:1.5}
  .split-content{padding:38px 26px 56px}
  .intro h1{font-size:clamp(30px,7.5vw,40px)}
  .about-box{padding:24px 22px 22px}
  .tabs{margin-top:40px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;margin-right:18px}
}

@media (max-width:700px){
  .wrap{padding:0 20px}
  .topbar .wrap{padding:0 20px}
  .nav{gap:15px}
  .nav a{font-size:11px;letter-spacing:.07em}
  .brand span.full{display:none}
  .section{padding:46px 0}
  .contact-card{padding:32px 24px}
  .dl dt{flex:0 0 100%}
  .job h3{font-size:19px}
}

@media print{
  .topbar,.cta-row,.site-footer,.contact-card,.tabs,.split-photo{display:none}
  body{background:#fff}
  .split{display:block}
  .split-content{padding:0}
  .panel{display:block !important}
  .about-box{border:0;padding:0}
}
