/* yuri/site/garden.css — índice pessoal (yuri.artelonga.com.br). Estático, vanilla. */
:root{ --ink:#161413; --ink2:#5b5450; --ink3:#6f6760; --line:#e7e1da; --bg:#fbf9f6; --bg2:#fff;
  --accent:#9a3b2e; --mono:'Space Mono',ui-monospace,monospace; }
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:920px;margin:0 auto;padding:2.4rem 6vw 6rem}
.site-head{display:flex;align-items:baseline;gap:.8rem;border-bottom:2px solid var(--ink);padding-bottom:.8rem}
.site-head h1{font-family:var(--mono);font-size:1.5rem;letter-spacing:-.02em}
.site-head a.home{text-decoration:none}
.site-head .sub{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* tira de identidade (papel · aparições · Terra · serviços) — elementos do perfil */
.identity{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .7rem;margin-top:.7rem;font-family:var(--mono);font-size:.72rem}
.identity .role{letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;color:#fff;background:var(--accent);border-radius:999px;padding:.2rem .6rem}
.identity .ident-link{color:var(--ink2);text-decoration:none;border-bottom:1px solid var(--line)}
.identity .ident-link:hover{color:var(--accent);border-bottom-color:var(--accent)}
.identity .ident-link.count{color:var(--ink3)}

/* nav superior — destaques (portfolio, résumé) */
.topnav{display:flex;gap:.6rem;margin-top:1rem;flex-wrap:wrap}
.topnav a{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;text-decoration:none;color:var(--ink);
  border:1px solid var(--ink);border-radius:999px;padding:.4rem .9rem;background:var(--bg2)}
.topnav a:hover{background:var(--ink);color:#fff}
.topnav a .pdf{font-size:.6rem;letter-spacing:.1em;color:var(--accent);margin-left:.3rem}
.topnav a:hover .pdf{color:#fff}

/* filtros */
.filters{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.5rem .6rem;align-items:center}
.filters .grp{display:flex;flex-wrap:wrap;gap:.35rem}
.chip{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;padding:.28rem .6rem;border:1px solid var(--line);
  border-radius:999px;background:var(--bg2);cursor:pointer;color:var(--ink2)}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip.cat.on{background:var(--accent);border-color:var(--accent)}
.filters input.q{font:inherit;font-size:.85rem;padding:.35rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--bg2);min-width:160px;flex:1}
.flabel{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-right:.1rem}

/* lista */
.count{font-family:var(--mono);font-size:.72rem;color:var(--ink3);margin:1.2rem 0 .6rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.card{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:10px;
  padding:1rem 1.1rem;background:var(--bg2);transition:border-color .12s,transform .12s}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card .ct{display:flex;gap:.4rem;align-items:center;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.card .ct .t{color:var(--accent);font-weight:700}
.card .ct .cat{margin-left:auto;border:1px solid var(--line);border-radius:3px;padding:.05rem .35rem}
.card h3{margin-top:.5rem;font-size:1.05rem;letter-spacing:-.01em}
.card .by{margin-top:.25rem;font-size:.82rem;color:var(--ink2)}
.card .snip{margin-top:.55rem;font-size:.82rem;color:var(--ink3);line-height:1.45}
.card .mk{margin-top:.6rem;display:flex;gap:.35rem;flex-wrap:wrap}
.card .mk span{font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);border:1px solid var(--line);border-radius:3px;padding:.05rem .35rem}
.empty{color:var(--ink3);font-style:italic;margin-top:1rem}

/* entrada (view) */
.entry{margin-top:1.4rem}
.entry .crumb{font-family:var(--mono);font-size:.72rem}
.entry .crumb a{color:var(--accent);text-decoration:none}
.entry .meta{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.5rem .9rem}
.entry h1.title{font-size:2rem;letter-spacing:-.02em;margin-top:.3rem}
.entry .body{margin-top:1.2rem;font-size:1rem}
.entry .body h1,.entry .body h2{font-size:1.3rem;margin:1.4rem 0 .4rem;letter-spacing:-.01em}
.entry .body p{margin:.8rem 0;max-width:66ch}
.entry .body ul{margin:.6rem 0 .6rem 1.2rem}
.entry .body a{color:var(--accent)}

/* citação [!quote] — callout Obsidian-like */
.callout{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--bg2);
  border-radius:8px;padding:.9rem 1.1rem;margin:1rem 0}
.callout .ttl{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;display:flex;gap:.4rem;align-items:center}
.callout .ttl::before{content:"“"}
.callout .q{margin-top:.5rem;font-size:1.05rem;line-height:1.5;white-space:pre-line}

/* embed de mídia (youtube responsivo) + transclusão */
.media{margin:1rem 0}
.yt{position:relative;width:100%;padding-top:56.25%;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.media .ext{font-family:var(--mono);font-size:.72rem}
.media .ext a{color:var(--accent)}
.embed{border:1px dashed var(--line);border-radius:10px;padding:1rem 1.1rem;margin:1.1rem 0;background:var(--bg2)}
.embed > .eh{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.embed > .eh a{color:var(--accent);text-decoration:none}
.note-loc{font-family:var(--mono);font-size:.72rem;color:var(--ink2);border:1px solid var(--line);border-radius:6px;padding:.5rem .7rem;display:inline-block;margin-top:.4rem}

/* toggle de idioma (AL-61) — PT/EN no header */
.langtoggle{margin-left:auto;display:flex;gap:.25rem}
.langtoggle button.lang{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;padding:.2rem .5rem;
  border:1px solid var(--line);border-radius:999px;background:var(--bg2);color:var(--ink3);cursor:pointer}
.langtoggle button.lang:hover{border-color:var(--accent);color:var(--accent)}
.langtoggle button.lang.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* intro "Terra" — bio no topo do índice (AL-61) */
.intro{margin-top:1.4rem;max-width:66ch}
.intro .introttl{font-family:var(--mono);font-size:1.05rem;letter-spacing:.02em;color:var(--accent)}
.intro .introtxt{margin-top:.5rem;font-size:.95rem;color:var(--ink2);line-height:1.6}

/* seções: Portfólio de Sistemas / Criativo (AL-61) */
.sections{margin-top:.4rem}
.section{margin-top:1.8rem}
.section h2.kind{font-family:var(--mono);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:.5rem;margin-bottom:1rem;
  display:flex;align-items:baseline;gap:.6rem}
.section-systems h2.kind{color:var(--ink)}
.section-creative h2.kind{color:var(--accent)}
.section h2.kind .n{font-size:.62rem;letter-spacing:.06em;text-transform:none;color:var(--ink3)}

/* System Portfolio — história em 8 slides (acima do grafo) */
.sysslides{margin:1.1rem 0 1.2rem;border:1px solid var(--line);border-radius:10px;
  background:linear-gradient(160deg,#fff 0%,var(--bg2) 60%,#f4efe9 100%);overflow:hidden}
.ss-stage{padding:1.6rem 1.5rem 1.2rem;min-height:11rem}
@keyframes ssIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ss-slide{animation:ssIn .42s ease both}
.ss-kicker{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}
.ss-title{font-family:var(--mono);font-size:1.5rem;letter-spacing:-.01em;margin:.4rem 0 .6rem;color:var(--ink)}
.ss-body{font-size:.95rem;line-height:1.6;color:var(--ink2);max-width:60ch}
.ss-stats{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.7rem}
.ss-stat{border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;background:var(--bg2)}
.ss-stat b{display:block;font-family:var(--mono);font-size:1.35rem;color:var(--accent);letter-spacing:-.01em}
.ss-stat span{font-size:.66rem;letter-spacing:.04em;color:var(--ink3)}
.ss-nav{display:flex;align-items:center;gap:.8rem;padding:.4rem .9rem .9rem;justify-content:center}
.ss-arrow{font-family:var(--mono);font-size:1.1rem;line-height:1;width:1.9rem;height:1.9rem;border:1px solid var(--line);
  border-radius:50%;background:var(--bg2);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.ss-arrow:hover{border-color:var(--accent);color:var(--accent)}
.ss-dots{display:flex;gap:.4rem}
.ss-dot{width:.5rem;height:.5rem;border-radius:50%;border:none;padding:0;background:var(--line);cursor:pointer}
.ss-dot.on{background:var(--accent);transform:scale(1.25)}
.ss-dot:hover{background:var(--ink3)}
@media (max-width:560px){.ss-title{font-size:1.25rem}.ss-stage{padding:1.2rem 1.1rem}}

/* Banner de candidatura — Data Analyst @ Hostinger (roxo da marca) */
.hostinger-banner{--hg:#673de6;margin:1.1rem 0 .9rem;border:1px solid var(--line);border-left:4px solid var(--hg);
  border-radius:10px;padding:1.1rem 1.3rem;background:linear-gradient(135deg,#f6f3ff 0%,var(--bg2) 70%)}
.hb-hi{font-family:var(--mono);font-size:.95rem;color:var(--hg)}
.hb-hi span{font-size:.7rem;color:var(--ink3);letter-spacing:.02em}
.hb-title{font-family:var(--mono);font-size:1.15rem;letter-spacing:-.01em;margin:.4rem 0 .5rem;color:var(--ink);font-weight:400}
.hb-title b{font-weight:700}
.hb-sub{font-size:.9rem;line-height:1.55;color:var(--ink2);max-width:64ch}
.hb-sub b{color:var(--ink)}
.hb-links{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hb-btn{font-family:var(--mono);font-size:.74rem;letter-spacing:.03em;text-decoration:none;padding:.4rem .9rem;
  border:1px solid var(--hg);border-radius:999px;color:var(--hg);background:#fff}
.hb-btn:hover{background:var(--hg);color:#fff}
.hb-btn.primary{background:var(--hg);color:#fff}
.hb-btn.primary:hover{background:#5530c4}

/* System Portfolio — LINHA DO TEMPO viva (grafo que cresce por slide) */
.sysgraph{width:100%;margin:1.1rem 0 1.4rem;border:1px solid var(--line);border-radius:10px;overflow:hidden}
/* tabs das duas faixas (Sistemas / Web · Dados) */
.sg-tabs{display:flex;gap:.4rem;padding:.55rem .7rem;border-bottom:1px solid var(--line);background:var(--bg)}
.sg-tab{font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.02em;cursor:pointer;
  padding:.4rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--bg2);color:var(--ink2)}
.sg-tab:hover{border-color:var(--ink3);color:var(--ink)}
.sg-tab.on{background:var(--ink);border-color:var(--ink);color:#fff}
.sg-canvas-wrap{position:relative;width:100%;height:500px;touch-action:none;
  background:radial-gradient(120% 120% at 50% 42%, #fff 0%, var(--bg2) 55%, #f4efe9 100%)}
.sg-canvas-wrap canvas{display:block;width:100%;height:100%;cursor:grab}
/* setas sobre a imagem (passar de slide direto no grafo) */
.sg-ov{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:2.4rem;height:2.4rem;
  display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:1.4rem;line-height:1;
  border:1px solid var(--line);border-radius:50%;background:rgba(255,253,250,.9);color:var(--ink);cursor:pointer;
  box-shadow:0 3px 12px rgba(0,0,0,.12);backdrop-filter:blur(2px)}
.sg-ov:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.sg-ov-prev{left:1rem} .sg-ov-next{right:1rem}
.sg-ov:disabled{opacity:0;pointer-events:none}
/* painel da linha do tempo (anos + descrição + controles) */
.sg-time{border-top:1px solid var(--line);background:var(--bg2);padding:.6rem .9rem 1rem}
.sg-track{display:flex;gap:.3rem;overflow-x:auto;padding-bottom:.5rem}
.sg-tk{flex:1;min-width:3.4rem;border:none;background:none;cursor:pointer;padding:.3rem .1rem .4rem;
  border-bottom:2px solid var(--line);position:relative}
.sg-tk .sg-yr{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;color:var(--ink3);white-space:nowrap}
.sg-tk.done{border-bottom-color:var(--ink3)} .sg-tk.done .sg-yr{color:var(--ink2)}
.sg-tk.on{border-bottom-color:var(--accent)} .sg-tk.on .sg-yr{color:var(--accent);font-weight:700}
@keyframes sgPanel{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sg-panel{animation:sgPanel .4s ease both;margin-top:.7rem;min-height:6.5rem}
.sg-pyear{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.sg-ptitle{font-family:var(--mono);font-size:1.3rem;letter-spacing:-.01em;margin:.2rem 0 .5rem;color:var(--ink)}
.sg-pbody{font-size:.92rem;line-height:1.6;color:var(--ink2);max-width:64ch}
.sg-stats{margin-top:.9rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.6rem}
.sg-stat{border:1px solid var(--line);border-radius:8px;padding:.5rem .65rem;background:#fff}
.sg-stat b{display:block;font-family:var(--mono);font-size:1.25rem;color:var(--accent);letter-spacing:-.01em}
.sg-stat span{font-size:.62rem;letter-spacing:.03em;color:var(--ink3)}
/* growth panel (hoje): totais + curva commits/PRs/parceiros ao longo do tempo */
.sg-growthbox{margin-top:.9rem}
.sg-gtot{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.sg-stat.hover-list{position:relative;cursor:default}
.sg-stat.hover-list b{cursor:help}
.sg-names{display:none;position:absolute;left:0;bottom:calc(100% + 6px);z-index:6;width:max-content;max-width:240px;
  font-family:var(--mono);font-size:.64rem;font-style:normal;line-height:1.5;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:7px;padding:.45rem .6rem;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.sg-stat.hover-list:hover .sg-names{display:block}
.sg-names a{color:var(--accent);text-decoration:none}
.sg-names a:hover{text-decoration:underline}
.sg-growth{display:block;width:100%;height:90px;margin-top:.8rem;border:1px solid var(--line);border-radius:8px;background:#fff;padding:2px}
.sg-glabels{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.58rem;color:var(--ink3);margin-top:.2rem}
.sg-gaxis{position:relative;height:.95rem;margin-top:.15rem}
.sg-gaxis span{position:absolute;transform:translateX(-50%);font-family:var(--mono);font-size:.55rem;color:var(--ink3);white-space:nowrap}
.sg-growth .sg-gmark{stroke:#c25a48;stroke-dasharray:2 3;opacity:.55}
.sg-glegend .sg-proj{color:var(--ink3);font-style:italic}
.sg-glegend i.sg-iproj{background:repeating-linear-gradient(90deg,#b7b1a9 0,#b7b1a9 4px,transparent 4px,transparent 7px);border-radius:0}
.sg-glegend{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-family:var(--mono);font-size:.62rem;color:var(--ink2);align-items:center}
.sg-glegend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:.25rem;vertical-align:middle}
/* mini bar chart de crescimento (commits · PRs · parceiros) */
.sg-chart{margin-top:.9rem;display:flex;flex-direction:column;gap:.5rem}
.sg-bar{display:grid;grid-template-columns:5.2rem 1fr auto;align-items:center;gap:.6rem}
.sg-bar .sg-bl{font-family:var(--mono);font-size:.66rem;color:var(--ink3);text-align:right}
.sg-bar .sg-btr{height:.7rem;background:#efe9e2;border-radius:999px;overflow:hidden}
.sg-bar .sg-bf{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#c25a48);border-radius:999px;animation:sgGrow .7s ease both}
@keyframes sgGrow{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1)}}
.sg-bar .sg-bv{font-family:var(--mono);font-size:.78rem;font-weight:700;color:var(--accent)}
.sg-ctrl{margin-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.sg-prev,.sg-next{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;padding:.42rem .9rem;
  border:1px solid var(--ink);border-radius:999px;background:var(--bg2);color:var(--ink);cursor:pointer}
.sg-prev:hover,.sg-next:hover{background:var(--ink);color:#fff}
.sg-prev:disabled,.sg-next:disabled{opacity:.3;cursor:default;background:var(--bg2);color:var(--ink)}
.sg-counter{font-family:var(--mono);font-size:.66rem;color:var(--ink3)}
@media (max-width:560px){.sg-canvas-wrap{height:340px}.sg-ptitle{font-size:1.1rem}}
.sg-legend{position:absolute;left:.7rem;top:.7rem;display:flex;flex-direction:column;gap:.28rem;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.02em;color:var(--ink2);
  background:rgba(255,253,250,.82);border:1px solid var(--line);border-radius:7px;padding:.45rem .6rem;backdrop-filter:blur(2px)}
.sg-legend span{display:flex;align-items:center;gap:.4rem;white-space:nowrap}
.sg-legend i{display:inline-block;flex:none}
/* swatches = a mesma linguagem dos nós: preenchimento · borda (5 categorias) */
.sg-legend i.d{width:13px;height:13px;border-radius:50%}
.sg-legend i.d.origin{background:var(--ink);border:1px solid #000}
.sg-legend i.d.system{background:#fffdfa;border:2px solid var(--ink)}
.sg-legend i.d.organizacao{background:#fffdfa;border:2px dashed var(--ink3)}
.sg-legend i.d.lead{background:#fffdfa;border:2px dotted #4f9e6f}
.sg-legend i.d.work{width:9px;height:9px;background:#9a948d;border:1px solid var(--ink2)}  /* ponto */
.sg-hint{position:absolute;right:.7rem;bottom:.55rem;font-family:var(--mono);font-size:.58rem;
  letter-spacing:.02em;color:var(--ink3);background:rgba(255,253,250,.7);border-radius:6px;padding:.2rem .45rem;pointer-events:none}
.sg-tip{position:absolute;max-width:248px;z-index:3;font-size:.78rem;line-height:1.45;
  background:var(--ink);color:#fff;border-radius:9px;padding:.6rem .7rem;box-shadow:0 8px 26px rgba(0,0,0,.22)}
.sg-tip .sg-th{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}
.sg-tip b{font-family:var(--mono);font-size:.82rem}
.sg-tip a{color:#ffd9d0;text-decoration:none;font-family:var(--mono);font-size:.64rem;white-space:nowrap}
.sg-tip a:hover{text-decoration:underline}
.sg-tip .sg-role{display:inline-block;margin-top:.3rem;font-family:var(--mono);font-style:normal;
  font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:#161413;background:#cdbfb7;border-radius:4px;padding:.08rem .35rem}
.sg-tip .sg-role-hub,.sg-tip .sg-role-universe{background:#e8a99b;color:#3a120c}
.sg-tip .sg-role-root{background:#000;color:#fff}
.sg-tip .sg-role-infra{background:#3a6ea5;color:#fff}
.sg-tip span{display:block;margin-top:.4rem;color:#ece6df;font-size:.76rem}
.sg-tip .sg-fig{display:block;margin-top:.5rem;width:100%;max-width:180px;height:auto;border-radius:6px;background:#fff;border:1px solid rgba(255,255,255,.14)}
.sg-tip .sg-stack{margin-top:.4rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.02em;color:#b7d6c4}
.sg-tip.pin{outline:2px solid var(--accent)}
.sg-tip .sg-prev-card{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;padding:.3rem .45rem;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:7px;
  text-decoration:none;font-family:var(--mono);font-size:.62rem;white-space:nowrap}
.sg-tip .sg-prev-card:hover{background:rgba(255,255,255,.16);text-decoration:none}
.sg-tip .sg-prev-card img{flex:0 0 auto;border-radius:3px;background:#fff}
.sg-tip .sg-prev-host{display:inline;margin:0;color:#ffd9d0;overflow:hidden;text-overflow:ellipsis}
.sg-tip .sg-repo{display:inline-flex;align-items:center;margin-top:.4rem;padding:.3rem .45rem;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:7px;
  text-decoration:none;font-family:var(--mono);font-size:.62rem;white-space:nowrap;color:#ffd9d0}
.sg-tip .sg-repo:hover{background:rgba(255,255,255,.16);text-decoration:none}
@media (max-width:560px){.sysgraph{height:440px}.sg-legend{font-size:.54rem}}

/* poema (AL-61) — preserva quebras e estrofes */
.entry.poem h1.title{margin-bottom:.4rem}
.poembody .stanza{margin:1.1rem 0;font-size:1.08rem;line-height:1.7;max-width:54ch}

/* chat widget (yuri/chat.js) — gated off até co ter provider acessível */
.chat-fab{position:fixed;right:18px;bottom:18px;width:46px;height:46px;border-radius:50%;border:none;
  background:var(--accent);color:#fff;font:700 1.2rem/1 var(--mono);cursor:pointer;z-index:50;
  box-shadow:0 4px 14px rgba(0,0,0,.18)}
.chat-fab.on{background:var(--ink)}
.chat-panel{position:fixed;right:18px;bottom:74px;width:min(360px,calc(100vw - 36px));height:min(460px,70vh);
  background:var(--bg2);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;
  overflow:hidden;z-index:50;box-shadow:0 8px 30px rgba(0,0,0,.16)}
.chat-head{display:flex;align-items:center;justify-content:space-between;padding:.6rem .8rem;border-bottom:1px solid var(--line)}
.chat-title{font:700 .72rem/1 var(--mono);letter-spacing:.04em;color:var(--ink2);text-transform:uppercase}
.chat-x{border:none;background:none;font-size:1.2rem;line-height:1;color:var(--ink2);cursor:pointer}
.chat-log{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.55rem}
.chat-msg{max-width:85%;padding:.5rem .7rem;border-radius:10px;font-size:.86rem;white-space:pre-wrap;word-wrap:break-word}
.chat-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:3px}
.chat-assistant{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:3px}
.chat-form{display:flex;gap:.4rem;padding:.6rem;border-top:1px solid var(--line)}
.chat-input{flex:1;border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;font-size:.86rem;font-family:inherit}
.chat-input:focus{outline:2px solid var(--accent);outline-offset:-1px}
.chat-send{border:none;background:var(--accent);color:#fff;border-radius:8px;padding:0 .8rem;font-size:1rem;cursor:pointer}

/* rodapé do índice — link de serviços (substitui a antiga tira de identidade) */
.index-foot{margin:2rem 0 .5rem;padding-top:1rem;border-top:1px solid var(--line);text-align:center}
.index-foot a{font-family:var(--mono);font-size:.8rem;color:var(--ink2);text-decoration:none}
.index-foot a:hover{color:var(--ink)}
