diff --git a/metar.html b/metar.html
index 7c1262c..f4dc2db 100644
--- a/metar.html
+++ b/metar.html
@@ -285,6 +285,22 @@
const direction = directions[parts[i+2]];
decoded.push(` - TCU DSNT ${parts[i+2]}: Towering cumulus distant ${direction.toLowerCase()}`);
i += 2; // Consume DSNT and direction
+ } else if (part === 'DENSITY' && i + 2 < parts.length && parts[i+1] === 'ALT' && parts[i+2].endsWith('FT')) {
+ const altFeet = parts[i+2];
+ const altitude = parseInt(altFeet.replace('FT', '')).toLocaleString();
+ decoded.push(` - DENSITY ALT ${altFeet}: Density altitude ${altitude} feet`);
+ i += 2; // consume ALT and altFeet
+ } else if (cloudTypes[part] && i + 1 < parts.length && parts[i+1] === 'LENT') {
+ const cloudName = cloudTypes[part];
+ let remark = ` - ${part} LENT: ${cloudName} lenticularis`;
+ let consumed = 1;
+ if (i + 2 < parts.length && directions[parts[i+2]]) {
+ const direction = directions[parts[i+2]];
+ remark = ` - ${part} LENT ${parts[i+2]}: ${cloudName} lenticularis to the ${direction.toLowerCase()}`;
+ consumed = 2;
+ }
+ decoded.push(remark);
+ i += consumed;
} else if (specialRemarks[part]) {
decoded.push(` - ${part}: ${specialRemarks[part]}`);
} else if (cloudTypes[part] && i + 1 < parts.length && parts[i + 1] === 'TR') {