/* ==========================================================================
   Coisas de Redes — identidade visual
   tokens.css — fonts, design tokens, base, text links, buttons,
   header, footer, custom scrollbar
   ========================================================================== */

/* ---- Fonts (Geist + Geist Mono, SIL OFL, self-hosted) ---- */
@font-face{font-display:swap;font-family:Geist;font-style:normal;font-weight:400;src:url(../fonts/geist-400.woff2) format("woff2")}
@font-face{font-display:swap;font-family:Geist;font-style:normal;font-weight:500;src:url(../fonts/geist-500.woff2) format("woff2")}
@font-face{font-display:swap;font-family:Geist;font-style:normal;font-weight:600;src:url(../fonts/geist-600.woff2) format("woff2")}
@font-face{font-display:swap;font-family:Geist;font-style:normal;font-weight:700;src:url(../fonts/geist-700.woff2) format("woff2")}
@font-face{font-display:swap;font-family:Geist Mono;font-style:normal;font-weight:400;src:url(../fonts/geist-mono-400.woff2) format("woff2")}
@font-face{font-display:swap;font-family:Geist Mono;font-style:normal;font-weight:500;src:url(../fonts/geist-mono-500.woff2) format("woff2")}

/* ---- Design tokens (extracted from the original site) ---- */
:root{
  --color-background:#f2f1eb;
  --color-foreground:#121210;
  --color-foreground-rgb:18,18,16;
  --color-body:#3a3a36;
  --color-muted:#706e63;
  --color-faint:#b6b5ab;
  --color-soft:rgba(var(--color-foreground-rgb),.64);
  --color-hairline:rgba(var(--color-foreground-rgb),.12);
  --color-accent:#1f8a5b;
  --color-accent-rgb:31,138,91;
  --color-accent-foreground:#f6f6f4;
  --color-accent-foreground-rgb:246,246,244;
  --color-accent-muted:rgba(var(--color-accent-rgb),.85);
  --color-accent-line:rgba(var(--color-accent-rgb),.4);
  --color-accent-active-line:rgba(var(--color-accent-rgb),.5);
  --color-error:#ffd0c2;
  --color-inverted-foreground:var(--color-accent-foreground);
  --color-inverted-body:rgba(var(--color-accent-foreground-rgb),.9);
  --color-inverted-muted:rgba(var(--color-accent-foreground-rgb),.825);
  --color-inverted-soft:rgba(var(--color-accent-foreground-rgb),.75);
  --color-inverted-faint:rgba(var(--color-accent-foreground-rgb),.6);
  --color-inverted-active-line:var(--color-inverted-soft);
  --color-inverted-line:rgba(var(--color-accent-foreground-rgb),.3);
  --color-inverted-hairline:rgba(var(--color-accent-foreground-rgb),.15);
  --font-sans:"Geist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"SFMono-Regular","SF Mono",Consolas,"Liberation Mono",Menlo,monospace;
  --transition-duration:.35s;
  --ease-out:cubic-bezier(.2,.7,.2,1);
  --layer-base:1;
  --layer-reveal:2;
  --layer-scrollbar:12;
  --layer-overlay:20;

  --site-gutter:clamp(1.5rem,calc(.607rem + 3.214vw),3.5rem);
  --site-container-max:200rem;
  --site-container-half-max:100rem;
  --site-container-offset:max(0rem,calc(50vw - var(--site-container-half-max)));
  --section-padding-block:clamp(2.75rem,7dvh,3.5rem);

  --site-header-padding-block:clamp(.875rem,min(2.4dvh,4vw),1.25rem);
  --site-header-wordmark-height:1.625rem;
  --site-header-height:calc(var(--site-header-padding-block)*2 + var(--site-header-wordmark-height) + 1px);
}
@media(min-width:48rem) and (min-height:42rem),(min-width:48rem) and (hover:hover) and (pointer:fine){
  :root{--section-padding-block:clamp(2.25rem,5dvh,2.75rem)}
}
@media(min-width:75rem) and (min-height:42rem),(min-width:75rem) and (hover:hover) and (pointer:fine){
  :root{--section-padding-block:clamp(2.5rem,5.3dvh,3.25rem)}
}
@media(min-width:48rem) and (min-height:52.5rem){
  :root{--site-header-padding-block:clamp(1.25rem,2.8dvh,1.75rem)}
}

/* ---- Base ---- */
*{box-sizing:border-box;letter-spacing:0}
html{min-width:320px;min-height:100%;background:var(--color-background);color:var(--color-foreground);color-scheme:light;font-size:100%}
@media(hover:hover) and (pointer:fine){
  html[data-js=true][data-site-scrollbar-page=true]{scrollbar-width:none}
  html[data-js=true][data-site-scrollbar-page=true]::-webkit-scrollbar,
  html[data-js=true][data-site-scrollbar-page=true] body::-webkit-scrollbar{width:0;height:0}
}
body{min-height:100%;margin:0;overflow-x:clip;background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);font-size:1rem;line-height:1.56;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}

/* Lenis smooth-scroll base */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}

a{color:inherit;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:.25em}
a:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
button{font:inherit;color:inherit}
:focus-visible{outline-color:var(--color-accent)}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;border:0!important;clip-path:inset(50%)!important;white-space:nowrap!important}

.site-skip-link{position:fixed;top:var(--site-header-padding-block);left:50%;z-index:calc(var(--layer-overlay) + 1);padding:.625rem .75rem;background:var(--color-accent);color:var(--color-inverted-foreground);font-family:var(--font-mono);font-size:.8125rem;line-height:1;text-decoration:none;transform:translate(-50%,calc(-100% - var(--site-header-padding-block) - .25rem));transition:transform .18s var(--ease-out)}
.site-skip-link:focus-visible{color:var(--color-inverted-foreground);outline:2px solid var(--color-inverted-foreground);outline-offset:.1875rem;transform:translate(-50%)}

.site-container{width:min(100%,var(--site-container-max));margin-inline:auto;padding-inline:var(--site-gutter)}
.site-main{display:block;min-width:0}
.site-system-layer{display:contents}
.section-spacing{padding-block:var(--section-padding-block)}

/* ---- Text links (animated underline) ---- */
.site-text-link{--site-text-link-color:inherit;--site-text-link-hover-color:var(--color-accent);--site-text-link-underline-offset:-.18em;--site-text-link-underline-duration:.26s;--site-text-link-resting-line-opacity:.6;position:relative;display:inline-block;width:max-content;max-width:100%;color:var(--site-text-link-color);overflow-wrap:anywhere;text-decoration:none;transition:color .22s var(--ease-out)}
.site-text-link:after{position:absolute;right:0;bottom:var(--site-text-link-underline-offset);left:0;height:0;border-top:1px solid currentColor;content:"";transform:scaleX(0);transform-origin:right center;transition:transform var(--site-text-link-underline-duration) cubic-bezier(.16,1,.3,1)}
.site-text-link--resting-line:before{position:absolute;right:0;bottom:var(--site-text-link-underline-offset);left:0;height:0;border-top:1px solid currentColor;content:"";opacity:var(--site-text-link-resting-line-opacity)}
.site-text-link:hover,.site-text-link:focus-visible{color:var(--site-text-link-hover-color)}
.site-text-link:hover:after,.site-text-link:focus-visible:after{transform:scaleX(1);transform-origin:left center}
.site-text-link--inverted{--site-text-link-color:var(--color-inverted-soft);--site-text-link-hover-color:var(--color-inverted-foreground)}
.site-text-link--inverted-strong{--site-text-link-color:var(--color-inverted-foreground);--site-text-link-hover-color:var(--color-inverted-foreground);--site-text-link-underline-offset:-.12em}
.site-text-link--foreground-hover{--site-text-link-hover-color:var(--color-foreground)}

/* ---- Buttons with accent brackets ---- */
.site-button{--site-button-color:inherit;--site-button-accent-color:var(--color-accent);--site-button-font-size:clamp(1.375rem,calc(1.25rem + .35vw),1.5rem);--site-button-font-weight:600;--site-button-line-height:1;--site-button-letter-spacing:-.02em;--site-button-bracket-open-x:-.07em;--site-button-bracket-close-x:.07em;--site-button-bracket-scale:1.07;appearance:none;display:inline-flex;align-items:center;padding:0;border:0;margin:0;background:transparent;color:var(--site-button-color);font-family:var(--font-sans);font-size:var(--site-button-font-size);font-weight:var(--site-button-font-weight);letter-spacing:var(--site-button-letter-spacing);line-height:var(--site-button-line-height);text-decoration:none;cursor:pointer}
.site-button:hover{color:var(--site-button-color)}
.site-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:.25rem}
.site-button:before,.site-button:after{display:inline-block;color:var(--site-button-accent-color)}
.site-button:before{order:0;content:"[";margin-right:.25em}
.site-button:after{order:2;content:"]";margin-left:.25em}
.site-button__label{order:1;display:inline-block}
.site-button__loader{order:3;display:none;align-items:center;gap:.3125rem;margin-left:.75rem}
.site-button__loader span{display:block;width:.4375rem;height:.4375rem;background:var(--site-button-loader-color,currentColor);animation:site-button-loader-pulse 1.05s ease-in-out infinite}
.site-button__loader span:nth-child(2){animation-delay:.18s}
.site-button__loader span:nth-child(3){animation-delay:.36s}
@keyframes site-button-loader-pulse{0%,to{opacity:.5;transform:scale(.72)}45%{opacity:1;transform:scale(1)}}
.site-button--stacked{flex-direction:column;align-items:flex-start}
.site-button--stacked:before,.site-button--stacked:after{content:none}
.site-button__line{display:inline-flex;align-items:center}
.site-button__accent{display:inline-block;color:var(--site-button-accent-color)}
.site-button__line>.site-button__accent:first-child{margin-right:.25em}
.site-button__line>.site-button__accent:last-child{margin-left:.18em}
.site-button__accent--ghost{visibility:hidden}
.site-button--lg{--site-button-font-size:clamp(1.5rem,calc(1.1rem + 1vw),2rem);--site-button-font-weight:700;--site-button-line-height:1.05;--site-button-letter-spacing:-.03em;--site-button-bracket-open-x:-.08em;--site-button-bracket-close-x:.08em;--site-button-bracket-scale:1.08}
.site-button--sm{--site-button-font-size:1.125rem;--site-button-font-weight:500;--site-button-letter-spacing:-.015em;--site-button-bracket-open-x:-.05em;--site-button-bracket-close-x:.05em;--site-button-bracket-scale:1.05}
.site-button--on-accent{--site-button-color:var(--color-inverted-foreground);--site-button-accent-color:var(--color-inverted-faint)}
.site-button--on-accent:focus-visible{outline-color:var(--color-inverted-foreground)}
.site-button[data-button-state=loading]{--site-button-accent-color:rgba(var(--color-foreground-rgb),.45);--site-button-loader-color:var(--color-accent);color:rgba(var(--color-foreground-rgb),.6);cursor:wait}
.site-button--on-accent[data-button-state=loading]{--site-button-accent-color:rgba(var(--color-accent-foreground-rgb),.55);--site-button-loader-color:var(--color-inverted-foreground);color:var(--color-inverted-soft)}
.site-button[data-button-state=loading] .site-button__loader{display:inline-flex}
@media(hover:hover) and (pointer:fine){
  .site-button:before,.site-button:after,.site-button__accent{transition:transform .18s var(--ease-out);transform-origin:center}
  .site-button:hover:before,.site-button:focus-visible:before{transform:translate(calc(var(--site-button-bracket-open-x) + var(--site-button-bracket-x,0px)),var(--site-button-bracket-y,0px)) scale(var(--site-button-bracket-scale))}
  .site-button:hover:after,.site-button:focus-visible:after{transform:translate(calc(var(--site-button-bracket-close-x) + var(--site-button-bracket-x,0px)),var(--site-button-bracket-y,0px)) scale(var(--site-button-bracket-scale))}
  .site-button--stacked:hover .site-button__line:first-child>.site-button__accent,
  .site-button--stacked:focus-visible .site-button__line:first-child>.site-button__accent{transform:translate(calc(var(--site-button-bracket-open-x) + var(--site-button-bracket-x,0px)),var(--site-button-bracket-y,0px)) scale(var(--site-button-bracket-scale))}
  .site-button--stacked:hover .site-button__line:last-child>.site-button__accent:last-child,
  .site-button--stacked:focus-visible .site-button__line:last-child>.site-button__accent:last-child{transform:translate(calc(var(--site-button-bracket-close-x) + var(--site-button-bracket-x,0px)),var(--site-button-bracket-y,0px)) scale(var(--site-button-bracket-scale))}
}

/* ---- Header ---- */
.site-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding-block:var(--site-header-padding-block)}
.site-header:after{position:absolute;right:var(--site-gutter);bottom:0;left:var(--site-gutter);height:0;border-top:1px solid var(--color-hairline);content:""}
.site-header__brand{display:inline-flex;align-items:center;line-height:1;color:inherit;text-decoration:none;font-weight:700;font-size:var(--site-header-wordmark-height);letter-spacing:-.03em}
.site-header__nav{display:flex;align-items:center}
button.site-header__menu{min-height:2.75rem;padding:.75rem;border:0;margin:-.75rem;appearance:none;background:transparent;cursor:pointer;font-family:inherit;font-weight:inherit}
button.site-header__menu:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
.site-header__menu{--menu-marker-ease:cubic-bezier(.16,1,.3,1);--menu-word-duration:.46s;--menu-word-delay:.14s;display:inline-flex;gap:.5rem;align-items:center;font-size:1rem;letter-spacing:-.01em;line-height:1.2;color:inherit;text-decoration:none}
.site-header__menu-label{position:relative;display:inline-block;width:2.75em;height:1.2em;overflow:hidden;vertical-align:top}
.site-header__menu-word{position:absolute;top:0;left:0;display:block;transition:opacity var(--menu-word-duration) cubic-bezier(.16,1,.3,1),transform var(--menu-word-duration) cubic-bezier(.16,1,.3,1)}
.site-header__menu-word--menu{opacity:1;transform:translateY(0);transition-delay:var(--menu-word-delay)}
.site-header__menu-word--close{opacity:0;transform:translate3d(0,.22em,0);transition-delay:0ms}
.site-header__menu[data-menu-state=open] .site-header__menu-word--menu{opacity:0;transform:translate3d(0,-.22em,0);transition-delay:0ms}
.site-header__menu[data-menu-state=open] .site-header__menu-word--close{opacity:1;transform:translateZ(0);transition-delay:var(--menu-word-delay)}
.site-header__menu-marker{position:relative;display:block;width:1rem;height:1rem;color:var(--color-accent)}
.site-header__menu[data-menu-state=open]{color:var(--color-inverted-foreground)}
.site-header__menu[data-menu-state=open] .site-header__menu-marker{color:currentColor}
.site-header__menu-marker span{--menu-marker-grid-top:.1875rem;--menu-marker-grid-left:.1875rem;--menu-marker-cross-top:26.5625%;--menu-marker-cross-left:26.5625%;--menu-marker-cross-rotation:45deg;position:absolute;display:block;width:.375rem;height:.375rem;background:currentColor;transform:translate(-50%,-50%) rotate(0);transform-origin:center;transition:top .28s var(--ease-out),left .28s var(--ease-out),width .28s var(--ease-out),height .28s var(--ease-out),opacity .22s var(--ease-out),transform .3s var(--ease-out)}
.site-header__menu-marker span:nth-child(1){top:.1875rem;left:.1875rem}
.site-header__menu-marker span:nth-child(2){top:.1875rem;left:.8125rem;--menu-marker-cross-rotation:-45deg}
.site-header__menu-marker span:nth-child(3){top:.8125rem;left:.1875rem;--menu-marker-cross-rotation:-45deg}
.site-header__menu-marker span:nth-child(4){top:.8125rem;left:.8125rem}
.site-header__menu[data-menu-state=open] .site-header__menu-marker span{top:var(--menu-marker-cross-top);left:var(--menu-marker-cross-left);width:.5rem;height:1.7px;opacity:1;transform:translate(-50%,-50%) rotate(var(--menu-marker-cross-rotation))}
@media(hover:hover) and (pointer:fine){
  .site-header .site-header__menu:not([data-menu-state=open]):is(:hover,:focus-visible) .site-header__menu-marker span,
  .site-attached-header .site-header__menu:not([data-menu-state=open]):is(:hover,:focus-visible) .site-header__menu-marker span{top:.5rem;left:.5rem;width:.375rem;height:.375rem;transform:translate(-50%,-50%) rotate(0)}
}
.site-header__sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;border:0;clip-path:inset(50%);white-space:nowrap}
.site-header-spacer{min-height:var(--site-header-height)}

/* Attached (fixed) header that appears after the hero */
.site-attached-header{position:fixed;top:0;right:0;left:0;z-index:10;background:var(--color-background);color:var(--color-foreground);opacity:0;pointer-events:none;transition:opacity .52s var(--ease-out),transform .52s var(--ease-out);transform:translateY(-.625rem)}
.site-attached-header[data-site-header-attached=true]{opacity:1;transform:translateY(0)}
.site-attached-header[data-site-header-attached=true] .site-header__brand,
.site-attached-header[data-site-header-attached=true] .site-header__menu{pointer-events:auto}
@media(max-width:47.999rem),(pointer:coarse){
  .site-attached-header{opacity:1;transform:translateY(0)}
}

/* ---- Footer ---- */
.site-footer{position:relative;z-index:2;display:flex;gap:1.25rem;align-items:center;justify-content:space-between;padding-block:clamp(1.25rem,4dvh,1.75rem);background:var(--color-background);color:var(--color-muted);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}
.site-footer:before{position:absolute;top:0;right:var(--site-gutter);left:var(--site-gutter);height:0;border-top:1px solid var(--color-hairline);content:""}
.site-footer__legal,.site-footer__meta{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;margin:0}
.site-footer__legal>span:first-child{color:var(--color-foreground)}
.site-footer__location{display:inline-flex;gap:.75rem;align-items:center;color:var(--color-foreground)}
.site-footer__marker{display:block;width:.5625rem;height:.5625rem;background:var(--color-accent)}
@media(max-width:47.999rem){.site-footer{display:grid;justify-content:stretch}.site-footer__meta{justify-content:space-between}}

/* ---- Custom page scrollbar (right edge) ---- */
.site-scrollbar{--site-scrollbar-offset:.5rem;--site-scrollbar-hit-area:1rem;--site-scrollbar-thumb-width:.1875rem;--site-scrollbar-thumb-right:.25rem;--site-scrollbar-thumb-height:2rem;--site-scrollbar-thumb-y:0px;position:fixed;top:0;right:0;bottom:0;z-index:var(--layer-scrollbar);width:var(--site-scrollbar-hit-area);opacity:0;pointer-events:none;transform:translate(.125rem);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}
html[data-site-scrollbar-visible=true] .site-scrollbar{opacity:1;transform:translate(0)}
html[data-site-overlay-open] .site-scrollbar,html[data-site-overlay-mode] .site-scrollbar{opacity:0;pointer-events:none}
.site-scrollbar__track{position:absolute;top:var(--site-scrollbar-offset);right:0;bottom:var(--site-scrollbar-offset);width:var(--site-scrollbar-hit-area);cursor:pointer;pointer-events:auto}
.site-scrollbar__thumb{position:absolute;top:0;right:var(--site-scrollbar-thumb-right);width:var(--site-scrollbar-thumb-width);height:var(--site-scrollbar-thumb-height);background:rgba(var(--color-foreground-rgb),.3);cursor:grab;transform:translate3d(0,var(--site-scrollbar-thumb-y),0);transition:background .18s var(--ease-out),width .18s var(--ease-out),right .18s var(--ease-out)}
.site-scrollbar__track:hover .site-scrollbar__thumb,
.site-scrollbar__track:focus-visible .site-scrollbar__thumb,
html[data-site-scrollbar-dragging=true] .site-scrollbar__thumb{width:.3125rem;background:rgba(var(--color-foreground-rgb),.5)}
html[data-site-scrollbar-dragging=true]{cursor:grabbing;user-select:none}
@media(max-width:47.999rem),(pointer:coarse){.site-scrollbar{display:none}}
