/* elementos.css — as famílias de elementos. Porte fiel de
   design-system/elementos.css; a prosa completa mora em guia/ do repositório
   de origem. Depende de tokens/ e sistema.css. */

/* superfície — o que pousa na mesa. Sem contorno: o que a separa da mesa é
   ser outra claridade. position:relative é o que faz a camada de sombra
   achar a caixa. */
.superficie{position:relative;background-color:var(--superficie);padding:24px;border-radius:var(--raio)}
.superficie--alta{background-color:var(--superficie-alta)}
.poco{background-color:var(--poco);border-radius:var(--raio)}

/* vidro — a superfície misturada sobre a cena, SEM fosco: backdrop-filter é
   emissão, e blur de fundo não existe num render com canal alpha. */
.vidro{background-color:color-mix(in srgb,var(--superficie) 95%,transparent);border-radius:var(--raio);padding:24px}

/* sombra — CAMADA, não propriedade: ela tem entrada própria e chega por
   último. Sem fundo, atrás de tudo. */
.sombra{position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:var(--raio);box-shadow:var(--sombra)}

/* janela de sistema — escura sempre, nos dois modos */
.janela{position:relative;background-color:var(--janela-campo);border-radius:var(--raio)}
.janela__cromo{border-radius:var(--raio) var(--raio) 0 0;background-color:var(--janela-cromo);height:56px;padding:0 24px;display:flex;align-items:center;gap:16px}
/* o sinal do cromo carrega uma logo: a do assunto quando a janela tem um, a marca
   VK quando não. O VK é MASK na tinta secundária porque o vk.svg é geometria sem
   cor — monocromático é propriedade DA MARCA, não regra do cromo. Já a logo do
   assunto entra por background-image e guarda as cores do arquivo: logo colorida
   sai colorida. O modificador tem de desligar mask e background-color no mesmo
   gesto — a tinta sólida cobriria a imagem, e o mask recortaria o que já tem cor —
   e ganha do `.ligado` por composição, para que acender continue só acendendo.
   Nos dois caminhos `contain` resolve pelo viewBox, então SVG sem width/height,
   que em <img> renderiza como fragmento de 2px, aqui sai inteiro.

   O DESENHO DO VK VAI EMBUTIDO, e isso não é otimização: é a única forma de ele
   aparecer em todo contexto de servir. `url('assets/marca/vk.svg')` é caminho
   relativo, e quem resolve o caminho é o servidor, não o CSS. O dev server do
   Remotion Studio reescrevia para /design-system/assets/marca/vk.svg, rota que
   ele não serve, e devolvia a página HTML do Studio com status 200 — o mask
   recebia <!DOCTYPE html>, não resolvia, e o sinal ocupava 24x24 sem desenhar
   nada. O render passava porque o bundle do renderStill emite o asset, então o
   defeito só existia no Studio, onde o dono trabalha. Data URI não tem caminho
   para resolver: vale no Studio, no bundle de produção e no card aberto de
   file://. O `fill` é #000 explícito e não `currentColor`: num mask só o alfa
   conta, mas currentColor sem pai pintaria preto se alguém reusar isto como
   background. O traçado é o mesmo de assets/marca/vk.svg, que continua sendo a
   fonte (thumbnail.html e guidelines/ ainda o carregam como arquivo), com as
   coordenadas arredondadas ao inteiro do viewBox de 1332: 0,018px de erro no
   sinal de 24px, 16856 B viram 6573 B, declarados uma vez
   em --janela-sinal-vk para que o par -webkit-mask/mask não os cobre em dobro. */
.janela__sinal{--janela-sinal-vk:url(data:image/svg+xml,<svg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%201332%201297%22><path%20fill=%22%23000%22%20fill-rule=%22evenodd%22%20d=%22M338,1296C339,1288,340,1283,342,1280C344,1277,347,1269,350,1264C353,1258,360,1245,365,1236C370,1226,375,1216,376,1215C377,1213,379,1210,380,1207C381,1204,383,1200,385,1198C386,1195,391,1186,395,1178C399,1169,407,1154,412,1144C417,1134,426,1118,431,1107C436,1097,446,1079,452,1067C458,1055,467,1037,472,1028C477,1018,485,1003,489,994C494,985,502,969,507,960C512,950,519,936,523,930C526,923,531,914,533,910C535,905,538,900,539,898C540,896,542,892,543,890C545,887,548,880,551,875C554,870,560,857,565,847C570,837,576,827,577,824C578,822,580,818,581,815C582,813,587,803,592,794C597,784,605,768,611,758C616,748,624,732,629,722C634,713,642,698,647,689C651,679,659,664,664,655C669,646,675,634,677,630C680,625,684,616,687,611C689,606,692,600,694,597C695,595,697,591,698,589C699,587,702,582,704,577C707,572,715,556,722,541C730,526,741,506,746,495C751,485,760,468,766,457C771,446,780,429,785,420C790,410,797,396,801,388C806,380,813,366,817,358C821,349,828,336,832,329C835,322,842,310,846,303C850,295,857,281,861,272C866,262,875,246,880,236C885,225,894,208,899,199C904,189,913,172,918,161C924,150,933,132,938,122C944,111,952,96,956,87C961,78,968,63,973,55C978,46,984,33,988,26C991,18,996,11,997,9C999,7,1000,5,1000,3C1000,0,1000,0,1162,0C1323,0,1323,0,1323,3C1323,4,1324,6,1324,7C1325,9,1326,10,1326,10C1327,11,1329,11,1330,11C1331,11,1332,12,1332,13C1332,14,1332,15,1331,15C1331,14,1329,14,1328,15C1326,16,1325,17,1324,20C1323,23,1321,28,1319,31C1317,35,1312,44,1308,52C1304,59,1297,72,1293,80C1289,88,1282,101,1277,110C1273,120,1265,135,1260,144C1255,154,1247,169,1243,179C1238,188,1230,203,1225,212C1221,221,1213,235,1209,244C1204,253,1197,267,1192,276C1188,285,1180,299,1176,308C1171,317,1164,332,1159,341C1154,349,1147,364,1142,373C1138,382,1130,397,1125,407C1120,416,1112,432,1107,441C1102,451,1093,468,1087,480C1082,491,1072,509,1067,519C1062,529,1054,544,1050,553C1046,561,1037,578,1030,591C1023,604,1014,621,1010,630C1002,643,1002,645,1002,650C1002,654,1002,656,1005,661C1006,663,1016,680,1025,699C1034,717,1047,742,1053,754C1059,766,1068,784,1074,794C1079,803,1086,818,1090,826C1095,834,1101,848,1106,856C1110,864,1117,877,1121,886C1125,894,1133,908,1137,917C1142,926,1150,941,1154,951C1159,960,1167,975,1172,985C1177,994,1185,1009,1189,1018C1193,1026,1200,1040,1205,1048C1209,1056,1218,1073,1224,1086C1230,1098,1239,1114,1242,1122C1246,1129,1253,1142,1258,1151C1262,1160,1270,1174,1274,1183C1279,1191,1286,1205,1290,1214C1294,1222,1301,1235,1305,1244C1310,1252,1316,1264,1319,1270C1323,1277,1326,1283,1326,1285C1326,1286,1326,1289,1326,1291C1325,1296,1325,1296,1161,1296C997,1296,997,1296,997,1292C996,1291,995,1287,993,1284C991,1282,986,1272,982,1263C977,1254,969,1239,965,1231C961,1222,953,1208,948,1198C943,1188,935,1172,930,1162C925,1153,917,1137,912,1127C907,1118,898,1101,893,1090C887,1079,878,1062,873,1051C867,1040,858,1023,853,1012C848,1001,842,991,841,989C839,986,838,986,834,986C829,986,828,986,826,990C824,992,815,1008,806,1027C797,1045,784,1071,777,1084C770,1096,760,1116,755,1128C749,1139,740,1156,735,1167C729,1177,721,1192,717,1202C712,1211,705,1225,700,1233C696,1242,689,1254,686,1262C682,1269,677,1278,675,1282C673,1286,670,1291,670,1293C669,1296,669,1296,504,1296L338,1296ZM291,1288C289,1288,286,1287,285,1287C284,1286,282,1284,281,1281C279,1279,273,1267,267,1254C261,1242,251,1223,246,1212C240,1201,232,1185,227,1175C222,1166,214,1151,210,1142C205,1134,198,1120,194,1111C189,1102,183,1090,180,1084C177,1078,171,1066,166,1058C162,1049,157,1040,155,1036C153,1032,151,1028,150,1027C150,1026,145,1017,141,1008C136,999,129,984,124,976C120,967,112,953,107,944C103,934,95,919,90,910C86,901,78,886,73,877C69,868,61,853,56,844C52,835,44,821,40,812C35,803,30,793,28,790C26,786,23,780,22,778C20,775,18,771,17,769C17,767,15,763,13,760C11,757,9,753,8,752C8,751,7,749,7,748C6,748,4,747,3,747C0,747,0,747,0,741C0,735,0,735,3,735C6,735,6,734,13,721C17,713,24,699,29,691C33,682,41,668,45,659C50,651,56,637,60,630C64,623,70,611,73,605C76,599,83,586,88,577C93,567,101,551,106,541C111,531,120,515,125,504C130,494,140,475,147,462C154,449,160,435,161,432C163,427,164,426,166,425C167,425,170,425,173,426C178,427,178,427,180,434C181,437,185,446,189,453C192,459,198,471,202,479C207,487,214,502,220,512C225,523,234,540,240,551C245,563,256,583,262,596C269,609,276,624,278,629C280,633,283,638,284,639C285,640,288,641,290,641C292,641,295,640,295,640C296,639,297,637,298,635C298,633,300,629,302,626C304,623,306,619,307,616C308,614,310,610,312,606C314,602,317,596,319,593C321,589,324,584,325,581C326,579,328,575,329,573C330,570,334,564,337,559C339,553,343,547,344,544C345,542,347,538,348,536C349,533,354,524,358,516C362,508,370,494,375,484C380,474,388,458,393,448C398,438,405,425,408,419C411,413,416,404,419,398C422,393,426,386,427,383C429,379,431,375,432,373C433,371,435,366,438,362C440,359,442,355,442,354C442,353,443,351,445,348C446,346,452,335,457,325C462,315,468,303,471,298C473,293,476,287,478,285C479,282,481,278,482,276C483,273,489,263,494,253C499,243,504,233,505,231C506,229,508,225,510,222C511,219,514,213,517,208C519,204,525,192,531,182C536,171,544,155,549,146C554,136,561,121,566,113C570,104,577,91,581,83C585,76,591,64,594,58C598,52,602,44,603,41C605,37,607,33,608,31C609,29,612,24,614,20C616,16,618,12,619,11C620,9,621,7,622,4C623,0,623,0,787,0C951,0,951,0,951,4C952,6,952,9,952,11C952,13,951,16,948,20C947,23,942,31,938,39C935,46,928,58,924,66C920,74,914,86,910,93C906,101,899,115,894,125C889,135,880,151,876,160C871,169,864,182,861,189C857,196,850,209,846,218C841,227,833,243,828,252C824,261,815,277,810,287C805,297,796,314,791,325C785,336,778,349,775,355C773,360,769,367,768,370C766,373,764,377,763,378C763,379,760,385,757,390C755,394,752,401,750,404C748,407,746,412,745,415C743,417,740,424,737,430C734,436,727,448,722,458C717,468,710,482,706,489C702,497,695,510,691,518C687,527,679,541,675,550C670,558,662,574,657,584C652,594,643,611,638,622C632,633,624,649,619,659C614,669,607,681,605,687C602,692,598,699,596,703C594,707,592,711,591,713C590,715,587,721,584,727C581,733,574,745,569,755C564,765,557,779,553,787C549,794,542,807,538,816C534,824,526,838,522,847C517,855,509,871,504,881C499,891,490,908,485,919C479,930,472,944,468,952C464,959,458,972,453,981C448,989,441,1003,437,1012C432,1021,425,1034,421,1043C417,1051,409,1065,405,1073C401,1082,394,1096,389,1104C385,1113,377,1128,372,1137C367,1147,358,1165,351,1178C345,1190,334,1212,327,1225C320,1238,310,1258,305,1269C295,1288,295,1288,291,1288Z%22/></svg>);width:24px;height:24px;flex:none;background-color:var(--janela-tinta-secundaria);-webkit-mask:var(--janela-sinal-vk) center / contain no-repeat;mask:var(--janela-sinal-vk) center / contain no-repeat}
.janela__sinal.janela__sinal--icone{background:var(--janela-sinal-icone) center / contain no-repeat;-webkit-mask:none;mask:none}
.janela__titulo{margin-left:16px;font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--janela-tinta-secundaria)}
.janela__campo{padding:32px;font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--janela-tinta-cheia)}
.janela__eco{color:var(--janela-tinta-secundaria)}
.janela__cursor{display:inline-block;width:16px;height:32px;background-color:var(--janela-tinta-cheia);vertical-align:text-bottom}
.janela--peca .janela__cromo{height:var(--janela-peca-cromo-altura);padding:0 var(--janela-peca-cromo-margem);gap:var(--janela-peca-cromo-vao)}
.janela--peca .janela__sinal{width:var(--janela-peca-sinal);height:var(--janela-peca-sinal)}
.janela--peca .janela__titulo{margin-left:var(--janela-peca-cromo-vao);font-size:var(--terminal-eco-corpo);line-height:var(--terminal-eco-entrelinha)}
.janela--peca .janela__campo{padding:var(--janela-peca-campo-margem)}

/* medida — nome escrito, barra de matéria no berço de rebaixo, valor */
.medida{display:grid;grid-template-columns:1fr 3fr auto;gap:16px;align-items:center}
.medida__nome{font-family:var(--voz-funcional);font-size:var(--corpo-corpo);line-height:var(--corpo-entrelinha);color:var(--anel-texto)}
.medida__trilho{background-color:var(--rebaixo);height:16px}
.medida__barra{background-color:var(--materia);height:16px;display:flex;align-items:center;justify-content:flex-end}
.medida__valor{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);text-align:right}
/* tolerância — a barra de erro mora DENTRO da barra, encostada na ponta */
.medida__desvio{display:flex;align-items:center}
.medida__desvio__marca{width:1px;height:16px;background-color:var(--sobre-materia)}
.medida__desvio__fio{flex:1;height:1px;background-color:var(--sobre-materia)}
.medida__rodadas{font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--tinta-secundaria)}

/* cota — o instrumento de planta baixa: duas marcas, um fio, e o que se mede */
.cota{display:flex;align-items:center;gap:8px}
.cota__marca{width:1px;height:8px;background-color:var(--tinta-traco)}
.cota__fio{flex:1;height:1px;background-color:var(--tinta-traco)}
.cota__rotulo{font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--tinta-secundaria)}

/* escala — a régua declarada como elemento, não como frase */
.escala{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.escala__regua{height:1px;background-color:var(--tinta-traco)}
.escala__valor{font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--tinta-secundaria)}

/* marca — ponto colorido mais nome escrito: a cor nunca fala sozinha */
.marca{display:inline-flex;align-items:center;gap:8px}
.marca__ponto{width:8px;height:8px;background-color:var(--materia)}
.marca__nome{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--anel-texto)}

/* campo — rótulo genérico em cima, dado embaixo */
.campo{display:grid;gap:4px}
.campo__valor{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha)}

/* revisão — o bloco de revisão da prancha; metadado, nunca conteúdo */
.revisao{display:flex;flex-wrap:wrap;gap:16px;font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--tinta-secundaria)}
.revisao__campo{display:flex;gap:8px}

/* diff — o leito é matéria, o sinal vai escrito */
.diff{display:grid}
.diff__linha{display:grid;grid-template-columns:auto 1fr auto;gap:8px;font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--janela-tinta-cheia)}
.diff__sinal{color:var(--tinta-secundaria)}
.diff__texto{color:var(--tinta-cheia)}
.diff__linha--entrou{background-color:var(--estado-materia-passou)}
.diff__linha--saiu{background-color:var(--estado-materia-falhou)}
.diff__sinal--materia{color:var(--sobre-materia)}
.diff__texto--materia{color:var(--sobre-materia)}
.diff__trecho{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--tinta-traco);padding-top:8px}
.diff__nota{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--tinta-secundaria);white-space:nowrap;text-align:right}
.diff__linha--entrou .diff__nota,.diff__linha--saiu .diff__nota{color:var(--sobre-materia);opacity:.72}

/* pipe — a saída de um vira a entrada do outro; o glifo do Unix nomeia */
.pipe{display:grid;grid-template-columns:auto auto auto;gap:8px;align-items:center}
.pipe__glifo{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--tinta-secundaria)}

/* estado de saída — o 0 e o 1 do Unix; só existe DENTRO da janela */
.saida-codigo{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--janela-tinta-secundaria)}

/* fluxo — o tail: a última linha é a que está chegando */
.fluxo{display:grid;gap:0}
.fluxo__linha{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--janela-tinta-secundaria)}
.fluxo__linha--chegando{color:var(--janela-tinta-cheia)}

/* corte — mostrar o dentro de uma coisa: camadas de matéria empilhadas */
.corte{display:grid}
.corte__camada{background-color:var(--materia);display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:0 16px}
.corte__nome{font-family:var(--voz-sistema);font-size:var(--metadado-corpo);line-height:var(--metadado-entrelinha);color:var(--sobre-materia)}
.corte__medida{font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--sobre-materia)}
.corte__marca-de-corte{height:1px;background-color:var(--tinta-traco)}

/* múltiplos — a mesma figura repetida, ESCALA COMPARTILHADA declarada fora */
.multiplos{display:grid;gap:24px}
.multiplos__celula{display:grid;gap:8px}
.multiplos__nome{font-family:var(--voz-sistema);font-size:var(--rotulo-corpo);line-height:var(--rotulo-entrelinha);color:var(--tinta-secundaria)}
.multiplos__trilho{background-color:var(--rebaixo);height:8px}
.multiplos__barra{background-color:var(--materia);height:8px}

/* cta — a marca colorida com o pictograma, o rótulo na superfície */
.cta{display:grid;gap:var(--cta-vao);justify-items:start}
.cta__barra{position:relative;display:flex;align-items:stretch;height:var(--cta-barra-altura)}
.cta__marca{width:var(--cta-marca);display:grid;place-items:center;border-radius:var(--raio) 0 0 var(--raio);background-color:var(--materia);color:var(--sobre-materia)}
.cta__marca svg{width:var(--cta-pictograma);height:var(--cta-pictograma);display:block}
.cta__marca--youtube{background-color:#ff0000;color:#ffffff}
.cta__rotulo{width:var(--cta-rotulo-largura);display:flex;align-items:center;padding:0 var(--cta-margem);border-radius:0 var(--raio) var(--raio) 0;background-color:var(--superficie);font-family:var(--voz-funcional);font-size:var(--acao-corpo);line-height:var(--acao-entrelinha);font-weight:var(--acao-peso);color:var(--tinta-cheia)}

/* lista — a lista falada: ícone sólido mais caixa de vidro, sobre a cena */
.lista{display:grid}
.lista--faixa{grid-auto-flow:column;gap:var(--lista-vao-faixa)}
.lista--pilha{gap:var(--lista-vao-pilha);justify-items:start}
.lista__item{position:relative;display:flex;align-items:stretch}
.lista--faixa .lista__item{height:var(--lista-altura-faixa)}
.lista__icone{position:relative;overflow:hidden;width:var(--lista-icone);flex:none;display:grid;place-items:center;border-radius:var(--raio) 0 0 var(--raio);background-color:var(--materia);color:var(--sobre-materia)}
.lista__icone svg{width:var(--lista-pictograma);height:var(--lista-pictograma);display:block}
.lista__icone--objeto{background-color:var(--rebaixo)}
.lista__icone--objeto .objeto{width:var(--lista-pictograma)}
.lista__icone--artefato{background-color:#f0eee6}
.lista__icone--artefato img{width:56px;height:56px;display:block}
.lista__rotulo{position:relative;overflow:hidden;width:var(--lista-rotulo-largura,max-content);display:flex;align-items:center;padding:0 var(--lista-margem);border-radius:0 var(--raio) var(--raio) 0;background-color:color-mix(in srgb,var(--superficie) 95%,transparent);font-family:var(--voz-funcional);font-size:var(--item-corpo);line-height:var(--item-entrelinha);font-weight:var(--item-peso);color:var(--tinta-cheia);white-space:nowrap}
.lista__miolo{position:relative;overflow:hidden;width:var(--lista-miolo-largura,max-content);display:grid;gap:4px;align-content:center;padding:20px var(--lista-margem);border-radius:0 var(--raio) var(--raio) 0;background-color:color-mix(in srgb,var(--superficie) 95%,transparent)}
.lista__contexto{font-family:var(--voz-funcional);font-size:var(--deck-peca-corpo);line-height:var(--deck-peca-entrelinha);font-weight:var(--deck-peca-peso);color:var(--tinta-secundaria);white-space:nowrap}
.lista__texto{font-family:var(--voz-funcional);font-size:var(--item-corpo);line-height:var(--item-entrelinha);font-weight:var(--item-peso);color:var(--tinta-cheia);white-space:nowrap}
.lista__destaque{color:var(--anel-texto)}
.lista__face{position:absolute;left:0;right:0;height:var(--lista-face);pointer-events:none}
.lista__face--luz{top:0}
.lista__face--sombra{bottom:0}
.lista__icone .lista__face--luz{background-color:var(--materia-luz)}
.lista__icone .lista__face--sombra{background-color:var(--materia-sombra)}
.lista__rotulo .lista__face--luz,.lista__miolo .lista__face--luz{background-color:var(--lista-face-luz)}
.lista__rotulo .lista__face--sombra,.lista__miolo .lista__face--sombra{background-color:var(--lista-face-sombra)}
.lista__icone--artefato .lista__face--luz{background-color:#fffffe}
.lista__icone--artefato .lista__face--sombra{background-color:#d3d1ca}

/* patrocínio — logo · benefício · QR, clara sempre. O módulo do QR é a unidade */
.patrocinio{display:flex;width:max-content;align-items:center;gap:80px}
.patrocinio__logo{align-self:stretch}
.patrocinio__texto{display:grid;text-align:center;white-space:nowrap}
.patrocinio__beneficio{font-family:var(--voz-funcional);font-size:var(--acao-corpo);line-height:var(--acao-entrelinha);font-weight:var(--acao-peso);color:var(--tinta-cheia)}
.patrocinio__rodape{font-family:var(--voz-funcional);font-size:var(--deck-peca-corpo);line-height:var(--deck-peca-entrelinha);font-weight:var(--deck-peca-peso);color:var(--tinta-secundaria)}
.patrocinio__fio{height:12px;display:grid;align-content:center}
.patrocinio__qr{padding:16px;border-radius:var(--raio);background-color:var(--superficie-alta)}
.patrocinio__codigo{display:block}

/* objeto — geometria sem tinta; a pintura chega pela classe do produto */
.objeto{display:block}
.objeto svg{display:block;width:100%;height:auto}
.objeto .topo{fill:var(--obj-topo)}
.objeto .frente{fill:var(--obj-frente)}
.objeto .base{fill:var(--obj-base)}
.objeto .reentrancia{fill:var(--obj-reentrancia)}
.objeto .vinco{fill:none;stroke:var(--obj-vinco);stroke-width:1;vector-effect:non-scaling-stroke}
.objeto .led{fill:var(--materia)}
.objeto .marca{fill:var(--obj-marca)}
.objeto .tela{fill:var(--janela-campo)}

/* realce de sintaxe — nomeado por PAPEL, nunca por cor */
.sintaxe-texto{color:var(--sintaxe-texto)}
.sintaxe-eco{color:var(--sintaxe-eco)}
.sintaxe-comentario{color:var(--sintaxe-comentario)}
.sintaxe-palavra-chave{color:var(--sintaxe-palavra-chave)}
.sintaxe-identificador{color:var(--sintaxe-identificador)}
.sintaxe-literal{color:var(--sintaxe-literal)}
.sintaxe-numero{color:var(--sintaxe-numero)}
.sintaxe-atencao{color:var(--sintaxe-atencao)}
.sintaxe-ok{color:var(--sintaxe-ok)}

/* ligado — núcleo + halo. Três inquilinos: o led, o cursor, o sinal VK.
   Um ligado por peça; o estado padrão de tudo é apagado. */
.ligado{background-color:var(--casa);box-shadow:var(--emissao-halo)}
.ligado--sinal{filter:var(--emissao-halo-svg)}
.ligado--led .led{fill:var(--casa);filter:var(--emissao-halo-svg)}
@keyframes pulso-do-ligado{0%,100%{opacity:1}50%{opacity:0.25}}
.ligado--pulsa{animation:pulso-do-ligado 1200ms ease-in-out infinite}
