/* ============================================================
   LusoCryptoLabs — shared brand stylesheet
   Plain letters · three-dot device · Ink / Paper / Vermelho
   ============================================================ */
/* ---------- self-hosted fonts (Archivo + Space Mono) ---------- */
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/i7dPIFZifjKcF5UAWdDRYE58RWq7.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/i7dPIFZifjKcF5UAWdDRYE98RWq7.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/i7dMIFZifjKcF5UAWdDRaPpZUFqaHjyV.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/i7dMIFZifjKcF5UAWdDRaPpZUFuaHjyV.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --ink:#121212;
  --ink-2:#1b1b1b;
  --ink-3:#262626;
  --paper:#F4F1EB;
  --paper-2:#EAE5DC;
  --vermelho:#E10600;
  --grafite:#8A857B;
  --grafite-d:#5C5A54;
  --line:#2b2b2b;
  --line-light:#D8D2C7;
  --maxw:1280px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--ink); color:var(--paper);
  font-family:'Archivo',sans-serif; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none;}
.mono{font-family:'Space Mono',monospace;}

/* ---------- accessibility ---------- */
:focus-visible{outline:2px solid var(--vermelho); outline-offset:3px; border-radius:2px;}
.skip-link{position:absolute; left:8px; top:-64px; z-index:100; background:var(--vermelho); color:#fff;
  font-family:'Space Mono',monospace; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  padding:12px 18px; border-radius:4px; transition:top .2s var(--ease);}
.skip-link:focus{top:8px;}
main{display:block;}

/* ---------- three-dot device ---------- */
.dots{display:inline-flex; align-items:center; gap:.62em; color:currentColor; line-height:0; vertical-align:middle;}
.dots i{width:1em; height:1em; border-radius:50%; background:currentColor; display:block; flex:none;}
.dots i.s{background:var(--vermelho);}

/* red full-stop device for headlines */
.stop{color:var(--vermelho);}

/* ---------- wordmark ---------- */
.wmi{font-weight:900; letter-spacing:-.03em; text-transform:uppercase; display:inline-flex; align-items:center; gap:.5em; line-height:1;}
.wmi .dots{font-size:.2em; gap:.7em;}

/* ============ HEADER ============ */
.site-head{
  position:sticky; top:0; z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 40px; background:rgba(18,18,18,.78); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.site-head .wmi{font-size:19px;}
.nav{display:flex; align-items:center; gap:34px; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.16em; text-transform:uppercase;}
.nav a{color:var(--grafite); transition:color .25s var(--ease); position:relative; padding:4px 0;}
.nav a:hover{color:var(--paper);}
.nav a[aria-current="page"]:not(.cta)::after{content:""; position:absolute; left:0; bottom:-2px; width:6px; height:6px; border-radius:50%; background:var(--vermelho);}
.nav a[aria-current="page"]:not(.cta){color:var(--paper);}
.nav .cta{color:var(--ink); background:var(--paper); padding:9px 16px; border-radius:999px; letter-spacing:.12em;}
.nav .cta:hover{background:var(--vermelho); color:#fff;}
.nav-toggle{display:none; background:none; border:0; color:var(--paper); cursor:pointer; font-size:22px; line-height:1;}
@media(max-width:860px){
  .nav{position:fixed; inset:64px 0 auto 0; flex-direction:column; gap:8px; align-items:stretch;
    background:var(--ink-2); border-bottom:1px solid var(--line); padding:18px 40px 28px;
    transform:translateY(-130%); transition:transform .4s var(--ease);}
  .nav.open{transform:translateY(0);}
  .nav a{padding:12px 0; font-size:14px; border-bottom:1px solid var(--line);}
  .nav .cta{text-align:center; border-bottom:0; margin-top:8px;}
  .nav-toggle{display:block;}
}

/* ============ LAYOUT PRIMITIVES ============ */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px;}
section{position:relative;}
.pad{padding:120px 0;}
.pad-sm{padding:80px 0;}
@media(max-width:860px){ .pad{padding:80px 0;} .wrap{padding:0 24px;} .site-head{padding:16px 24px;} }

.eyebrow{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--vermelho); margin:0 0 24px; display:flex; align-items:center; gap:12px;}
.eyebrow::before{content:""; width:28px; height:1px; background:var(--vermelho);}

h1,h2,h3{margin:0; font-weight:900; letter-spacing:-.03em; line-height:.94; text-transform:uppercase;}
.display{font-size:clamp(48px,9vw,148px);}
.h2{font-size:clamp(34px,5.5vw,76px);}
.h3{font-size:clamp(24px,3vw,40px); letter-spacing:-.02em;}
.lead{font-size:clamp(17px,1.5vw,21px); line-height:1.6; color:#C9C4BA; max-width:60ch; margin:0;}
.muted{color:var(--grafite);}
.mono-label{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--grafite);}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:12px; font-family:'Space Mono',monospace; font-size:13px; letter-spacing:.14em; text-transform:uppercase; padding:15px 26px; border-radius:999px; transition:all .28s var(--ease); cursor:pointer; border:1px solid transparent;}
.btn .arrow{transition:transform .28s var(--ease);}
.btn:hover .arrow{transform:translateX(5px);}
.btn-primary{background:var(--vermelho); color:#fff;}
.btn-primary:hover{background:#fff; color:var(--ink);}
.btn-ghost{border-color:var(--line); color:var(--paper);}
.btn-ghost:hover{border-color:var(--paper);}

/* ============ REVEAL ANIMATION ============
   Content is VISIBLE by default. The hidden start-state is only applied when
   JS is active (html.reveal-on) AND motion is allowed — so no-JS, print/PDF
   export and reduced-motion all show content instead of blank sections. */
.reveal{transition:opacity .8s var(--ease), transform .8s var(--ease);}
@media(prefers-reduced-motion:no-preference){
  html.reveal-on .reveal:not(.in){opacity:0; transform:translateY(28px);}
}
.reveal[data-d="1"]{transition-delay:.08s;}
.reveal[data-d="2"]{transition-delay:.16s;}
.reveal[data-d="3"]{transition-delay:.24s;}
.reveal[data-d="4"]{transition-delay:.32s;}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
/* Print / PDF: never export blank — force all reveals visible. */
@media print{ .reveal{opacity:1 !important; transform:none !important;} }

/* ============ FOOTER ============ */
.site-foot{border-top:1px solid var(--line); padding:90px 0 44px; background:var(--ink);}
.foot-top{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px;}
@media(max-width:1000px){ .foot-top{grid-template-columns:1fr 1fr;} }
.foot-cta .h2{margin-bottom:28px;}
.foot-col h4{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--grafite); margin:0 0 18px; font-weight:700;}
.foot-col a{display:block; padding:7px 0; color:#C9C4BA; font-size:15px; transition:color .2s;}
.foot-col a:hover{color:var(--vermelho);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; margin-top:80px; padding-top:28px; border-top:1px solid var(--line); font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); flex-wrap:wrap; gap:16px;}
@media(max-width:860px){ .foot-top{grid-template-columns:1fr; gap:40px;} }

/* ============ SHARED PARTS ============ */
.placeholder{background:repeating-linear-gradient(45deg,var(--ink-2),var(--ink-2) 12px,var(--ink-3) 12px,var(--ink-3) 24px); border:1px solid var(--line); display:grid; place-items:center; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.14em; color:var(--grafite); text-transform:uppercase; text-align:center; padding:20px;}

hr.rule{border:none; border-top:1px solid var(--line); margin:0;}

/* page intro band */
.page-hero{padding:140px 0 90px; border-bottom:1px solid var(--line);}
.page-hero .display{margin-top:18px;}

/* ============ CASE STUDY (shared by case*.html) ============ */
.cs-hero{padding:130px 0 0;}
.cs-hero .display{margin:18px 0 0;}
.cs-meta{display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin:60px 0 0; padding:34px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.cs-meta .k{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--grafite); margin-bottom:10px;}
.cs-meta .v{font-size:16px; font-weight:600;}
@media(max-width:760px){ .cs-meta{grid-template-columns:1fr 1fr; gap:24px;} }
.cs-cover{aspect-ratio:21/9; margin-top:0; position:relative; overflow:hidden; border:1px solid var(--line);}
.cs-cover img{width:100%; height:100%; object-fit:cover; object-position:top left; display:block;}
.cs-body{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.cs-body .big{font-size:clamp(24px,3vw,38px); font-weight:800; line-height:1.12; letter-spacing:-.02em; text-transform:none;}
.cs-body .big em{font-style:normal; color:var(--grafite);}
@media(max-width:860px){ .cs-body{grid-template-columns:1fr; gap:28px;} }
.quote{font-size:clamp(28px,4vw,52px); font-weight:800; line-height:1.08; letter-spacing:-.02em; max-width:22ch; text-transform:none;}
.quote-cite{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); margin-top:28px;}
.res{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.res .cell{background:var(--ink); padding:44px 32px;}
.res .n{font-size:clamp(40px,5vw,72px); font-weight:900; letter-spacing:-.03em; line-height:1;}
.res .l{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--grafite); margin-top:14px;}
@media(max-width:760px){ .res{grid-template-columns:1fr;} }
.gallery{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.gallery .placeholder{aspect-ratio:4/3;}
.gallery .wide{grid-column:1 / -1; aspect-ratio:21/9;}
@media(max-width:760px){ .gallery{grid-template-columns:1fr;} }
.nextlink{display:flex; justify-content:space-between; align-items:center; padding:60px 0; gap:24px; flex-wrap:wrap;}
.nextlink .t{font-size:clamp(30px,5vw,64px); font-weight:900; text-transform:uppercase; letter-spacing:-.02em; line-height:1;}
.nextlink a:hover .t{color:var(--vermelho);}

/* ---------- cursor follower (progressive enhancement) ---------- */
.cursor-dot{position:fixed; top:0; left:0; width:12px; height:12px; border-radius:50%; background:var(--vermelho); pointer-events:none; z-index:95; transform:translate(-50%,-50%); opacity:0; transition:width .22s var(--ease), height .22s var(--ease), background .22s var(--ease), opacity .3s var(--ease);}
.cursor-dot.on{opacity:1;}
.cursor-dot.lg{width:46px; height:46px; background:transparent; border:1.5px solid var(--vermelho);}
@media (hover:none),(pointer:coarse){ .cursor-dot{display:none !important;} }
@media (prefers-reduced-motion:reduce){ .cursor-dot{display:none !important;} }

/* ---------- language switcher ---------- */
.langsw{display:inline-flex; gap:12px; align-items:center; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase;}
.langsw a{color:var(--grafite); padding:4px 0;}
.langsw a:hover{color:var(--paper);}
.langsw a.on{color:var(--vermelho);}
@media(max-width:860px){ .nav .langsw{padding:14px 0; gap:18px;} .nav .langsw a{padding:0; border-bottom:0; width:auto; display:inline-block;} }
