File size: 2,976 Bytes
4255d2e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06bd355
4255d2e
 
06bd355
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4255d2e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/* Base — reset mínimo y tipografía. Sin decisiones de diseño propias:
   todo valor sale de tokens.css. */

*,
*::before,
*::after { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  font-family: var(--f-familia);
  font-weight: var(--f-peso-normal);
  color: var(--texto-noche);
  background: var(--c-noche-900);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

button { font: inherit; color: inherit; cursor: pointer; }
textarea { font: inherit; }
img { max-width: 100%; display: block; }

.visor {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  margin: 0;
  padding: var(--e-7);
  border: 0;
  background: var(--velo-visor);
  color: var(--texto-herramientas);
}
.visor::backdrop { background: var(--velo-visor); }
.visor__cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--e-5);
  font-size: var(--f-sm);
}
.visor__imagen {
  width: 100%;
  height: calc(var(--m-visor-maximo) - var(--e-11));
  object-fit: contain;
}

.modal-intencion {
  width: min(var(--m-modal-intencion), calc(100% - var(--e-10)));
  margin: auto;
  padding: var(--e-8);
  border: 0;
  border-radius: var(--r-xl);
  background: var(--superficie-carta);
  color: var(--texto-principal);
  box-shadow: var(--sombra-carta);
}
.modal-intencion::backdrop { background: var(--velo-modal); }
.modal-intencion__cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--e-6);
}
.modal-intencion__sobrelinea { color: var(--texto-tenue); font-size: var(--f-s); }
.modal-intencion h2 { margin: var(--e-2) 0 0; font-size: var(--f-l); font-weight: var(--f-peso-normal); }
.modal-intencion__apunte { margin: var(--e-6) 0; color: var(--texto-secundario); font-size: var(--f-sm); }
.modal-intencion__acciones { display: flex; gap: var(--e-3); margin-top: var(--e-7); }
.modal-intencion__acciones .accion { width: auto; flex: 1; }

/* Accesible pero invisible: para etiquetas que solo lee un lector de pantalla */
.solo-lectores {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}

[hidden] { display: none !important; }

/* Entradas escalonadas */
.entra   { animation: entra var(--t-entrada) var(--curva-suave) both; }
.entra-2 { animation: entra var(--t-entrada) var(--curva-suave) var(--t-retardo-2) both; }
.entra-3 { animation: entra var(--t-entrada) var(--curva-suave) var(--t-retardo-3) both; }

@keyframes entra {
  from { opacity: 0; transform: translateY(var(--e-4)); }
  to   { opacity: 1; transform: none; }
}

/* token-libre: anular animaciones no es una decisión de diseño */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;   /* token-libre */
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;  /* token-libre */
  }
}