* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: #000;
  color: #e0e0e0;
  font-family: "Courier New", Courier, monospace;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

/* Tweaks R2 item 10: the stage sizes itself to the (now much larger) canvas
   so the absolutely-positioned overlays and minimap track it. The canvas fills
   ~92–96% of the viewport while keeping the 8:5 (320×200) ratio; the internal
   render resolution is unchanged (320×200, pixelated upscale). */
#stage {
  position: relative;
  display: inline-block;
  line-height: 0;
}

#game {
  display: block;
  width: min(96vw, calc(92vh * 1.6));
  height: auto;
  aspect-ratio: 8 / 5;
  background: #000;
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
}

.screen {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: rgba(0, 0, 0, 0.85);
  gap: 1em;
  /* Tweaks R4: #stage sets line-height:0 to kill the inline-block canvas gap
     (Tweaks R2 item 10). That zero line-height was inheriting into every DOM
     overlay under #stage. Restoring a normal line box here, once, fixes it
     for every .screen descendant (name-entry box, hiscores table rows,
     curatorial text) instead of patching each leaf element. .screen's own
     siblings under #stage (#hud, #prompt, #flash, #sound-toast,
     #version-tag, #contemplate-overlay, #secret-overlay, #room-header,
     #room-complete) are NOT .screen descendants, so each carries its own
     line-height reset alongside this one (Task 17 review fix: #hud,
     #prompt, #flash, #sound-toast and #version-tag were missing theirs). */
  line-height: 1.4;
}

.screen h1 {
  font-size: 2em;
  letter-spacing: 0.1em;
  margin: 0;
}

.screen p {
  margin: 0;
}

.screen .hint {
  opacity: 0.7;
  animation: blink 1.2s steps(2, start) infinite;
}

.screen .hint-small {
  opacity: 0.6;
  font-size: 0.8em;
  letter-spacing: 0.03em;
}

.screen .subtitle {
  opacity: 0.8;
  letter-spacing: 0.03em;
}

/* Intro curatorial text: narrower column + smaller/looser type so the
   vernissage paragraph reads comfortably inside the 960×600 stage. */
.screen .curatorial-text {
  max-width: 620px;
  font-size: 0.82em;
  line-height: 1.55;
  padding: 0 1em;
  opacity: 0.92;
}

.screen .controls-legend {
  font-size: 0.78em;
  letter-spacing: 0.03em;
  opacity: 0.75;
}

/* Rules screen (Tweaks R7): titled list card, reached from intro via E.
   Same narrow-column/monospace language as .curatorial-text, with generous
   per-item spacing (Tweaks R4 line-height lesson: #stage's line-height:0
   only resets to 1.4 at .screen level, so a tight list here would still
   read as cramped without its own per-li margin). */
.screen .rules-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 640px;
  max-height: 60vh;
  overflow-y: auto;
  text-align: left;
  font-size: 0.82em;
  line-height: 1.55;
  opacity: 0.92;
}

.screen .rules-list li {
  margin-bottom: 0.9em;
}

.screen .rules-list li:last-child {
  margin-bottom: 0;
}

.screen .rules-term {
  display: inline-block;
  color: #e6b422;
  font-weight: bold;
  letter-spacing: 0.03em;
  margin-right: 0.35em;
}

/* Pre-game countdown (Tweaks R6 item 1): premise card, then a big 3-2-1.
   Reuses .screen's dim background over the live (frozen) world rendered
   behind it in main.js's countdown-phase render path. */
#screen-countdown #countdown-premise {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6em;
}
#countdown-number {
  font-size: 7em;
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #e6b422;
  text-shadow: 0 0 24px rgba(230, 180, 34, 0.7), 0 2px 8px #000;
  animation: countdown-pop 0.8s ease-out;
}
@keyframes countdown-pop {
  0% { transform: scale(1.6); opacity: 0; }
  25% { transform: scale(1); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

/* Tweaks R6 item 3: name-entry rank flattery — distinct gold note above the
   input, filled in asynchronously (never blocks name entry). */
#name-entry-flattery {
  max-width: 480px;
  color: #e6b422;
  font-weight: bold;
  letter-spacing: 0.02em;
  text-shadow: 0 0 8px rgba(230, 180, 34, 0.45);
}
#name-entry-flattery.flattery-record {
  color: #ffd451;
  text-shadow: 0 0 14px rgba(255, 200, 60, 0.85);
}

/* Arcade name-entry input. Vertical centering comes from symmetric top/bottom
   padding over a normal (non-zero) line-height — see .screen's line-height
   comment; #stage's line-height:0 was the actual cause of the box's text
   sitting high, not a padding/box-model problem (Tweaks R4 item 1). */
.name-input {
  font-size: 1.8em;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 4px;
  padding: 0.25em 0.6em;
  min-width: 6em;
  min-height: 1.2em;
}

/* letter-spacing inserts space AFTER every character, including the last —
   that trailing sliver is part of the inline run's measured width, so
   centering the run (text-align:center, inherited from .screen) leaves the
   ink itself sitting left of true center. The matching negative margin on
   this wrapping span shrinks the run's measured width by exactly that
   trailing sliver, so the ink lands dead-center (same em unit, holds at any
   font-size). NOTE: this technique depends on plain inline centering — do
   NOT put this element in a flex/justify-content:center container, which
   would center the (now asymmetric) margin box instead and reintroduce a
   rightward bias. */
.name-input .name-input-text {
  letter-spacing: 0.25em;
  margin-right: -0.25em;
}

.name-input .cursor {
  animation: blink 1s steps(2, start) infinite;
}

/* Catálogo screen (Tweaks R8): two salas, 6 thumbnails each, ✓/○ marks. */
#screen-catalogo {
  justify-content: flex-start;
  padding: 2.2em 1.2em 1.2em;
  gap: 0.9em;
  overflow-y: auto;
}
.catalogo-salas {
  display: flex;
  flex-direction: column;
  gap: 1.3em;
  width: 100%;
  max-width: 920px;
}
.cat-sala-title {
  font-size: 1em;
  font-weight: bold;
  letter-spacing: 0.12em;
  color: #e6b422;
  margin: 0 0 0.5em;
  padding-bottom: 0.3em;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.cat-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.7em;
}
.cat-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35em;
  cursor: pointer;
  /* Task 21: a plain highlight ring around the thumb, not the whole flex
     column (title text staying unboxed reads calmer at this tile size). */
  border-radius: 2px;
}

/* Task 21: keyboard-driven grid selection highlight (arrow keys move it;
   click selects+opens directly, so this ring is what a keyboard-only player
   uses to know which tile E/ENTER will open). Ring lives on .cat-thumb, not
   .cat-tile, so it hugs the image and doesn't shift the title's baseline. */
.cat-tile-selected .cat-thumb {
  outline: 2px solid #e6b422;
  outline-offset: 2px;
  box-shadow: 0 0 10px rgba(230, 180, 34, 0.6);
}
.cat-thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  background: #161616;
  border: 1px solid rgba(255, 255, 255, 0.15);
  overflow: hidden;
}
.cat-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cat-mark {
  position: absolute;
  top: 2px;
  right: 4px;
  font-size: 0.95em;
  font-weight: bold;
  color: #7cfc00;
  text-shadow: 0 0 4px #000, 0 1px 2px #000;
}
.cat-titulo {
  font-size: 0.62em;
  line-height: 1.2;
  text-align: center;
  opacity: 0.85;
}
/* Undiscovered works: dimmed thumbnail + neutral ○ mark + faded title. */
.cat-undiscovered .cat-thumb img {
  filter: grayscale(1) brightness(0.32);
}
.cat-undiscovered .cat-mark {
  color: #6a6a6a;
  text-shadow: 0 1px 2px #000;
}
.cat-undiscovered .cat-titulo {
  opacity: 0.45;
}

/* Task 21 (owner feedback: "I can't actually inspect the work") — full-size
   viewer inside the catálogo, shown in place of the grid (#cat-grid-view
   toggles .hidden the other way). Same visual language as
   #contemplate-overlay's mat/caption/bar, since this is the same job: the
   full-res preloaded image at legible size, smoothing on (image-rendering:
   auto, not the canvas's pixelated), object-fit contain. */
#cat-viewer-view {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7em;
  width: 100%;
}
.cat-viewer-sala {
  font-size: 0.85em;
  font-weight: bold;
  letter-spacing: 0.15em;
  color: #e6b422;
  opacity: 0.85;
}
.cat-viewer-img {
  max-width: 88%;
  max-height: 58vh;
  object-fit: contain;
  image-rendering: auto;
  box-shadow: 0 0 0 8px #f0ece2, 0 10px 40px rgba(0, 0, 0, 0.8);
}
.cat-viewer-label {
  font-size: 1.05em;
  letter-spacing: 0.03em;
  text-align: center;
  color: #f0ece2;
  max-width: 80%;
}
.cat-viewer-mark {
  font-size: 0.85em;
  letter-spacing: 0.03em;
  color: #7cfc00;
}
.cat-viewer-mark.cat-viewer-mark-undiscovered {
  color: #a0a0a0;
}

/* Hiscores table */
.hiscores-table {
  border-collapse: collapse;
  min-width: 420px;
  font-size: 1.05em;
}

.hiscores-table th,
.hiscores-table td {
  padding: 0.35em 0.9em;
  text-align: left;
}

.hiscores-table th {
  opacity: 0.65;
  font-weight: normal;
  letter-spacing: 0.05em;
  padding-bottom: 0.6em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

/* Breathing room between the header rule and the first data row — without
   this the row 1 baseline sits almost on top of the underline. */
.hiscores-table tbody tr:first-child td {
  padding-top: 0.6em;
}

.hiscores-table th:first-child,
.hiscores-table td.hs-pos {
  text-align: right;
  width: 2em;
}

.hiscores-table tr.hiscore-mine td {
  color: #e6b422;
  font-weight: bold;
}

#hud {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  /* Right padding reserves the top-right corner for the minimap so the OBRAS
     counter never hides behind it. Percentage-based so it tracks the minimap's
     (now viewport-relative) width on the enlarged canvas. */
  padding: 0.5em 24% 0.5em 1em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
  z-index: 20;
  text-shadow: 0 1px 3px #000;
  font-size: 1.1em;
  /* #stage sets line-height:0 (see .screen's comment above); #hud is a direct
     #stage child, not a .screen descendant, so it needs its own reset too
     (Task 17 review fix) — without it the score/mult/drinks text's line box
     collapses toward zero height. */
  line-height: 1.4;
}

.hud-item {
  white-space: nowrap;
}

/* PUNTOS and ×MULT are the numbers a player tracks moment to moment —
   made visually dominant per Tweaks R1 playtest feedback. */
.hud-score {
  font-size: 1.5em;
  font-weight: bold;
}

.hud-mult-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.hud-mult {
  display: inline-block;
  font-size: 1.9em;
  font-weight: bold;
  color: #e6b422;
  transform: scale(1);
}

/* Multiplier pop: scale + color flash, ~300ms, retriggered on every
   effective-mult change (drink, bonus expiry, contemplation reward/abort). */
.hud-mult.mult-pulse-pos {
  animation: mult-pulse-pos 0.3s ease-out;
}
.hud-mult.mult-pulse-neg {
  animation: mult-pulse-neg 0.3s ease-out;
}

@keyframes mult-pulse-pos {
  0% { transform: scale(1); color: #e6b422; }
  35% { transform: scale(1.35); color: #7cfc00; }
  100% { transform: scale(1); color: #e6b422; }
}

@keyframes mult-pulse-neg {
  0% { transform: scale(1); color: #e6b422; }
  35% { transform: scale(1.35); color: #ff5a5a; }
  100% { transform: scale(1); color: #e6b422; }
}

/* Floating delta chip ("+0,50×" / "−0,25×"): anchored under the multiplier,
   drifts up and fades over ~1s (matches CHIP_LIFETIME_MS in hud.js). */
.hud-chips {
  position: absolute;
  left: 50%;
  top: 100%;
  width: 0;
  height: 0;
  pointer-events: none;
}

.hud-chip {
  position: absolute;
  left: 0;
  top: 0.2em;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 0.75em;
  font-weight: bold;
  animation: chip-drift 1s ease-out forwards;
}
.hud-chip-pos { color: #7cfc00; }
.hud-chip-neg { color: #ff5a5a; }
/* Secret-inspection reward chip: gold, to read as a special "found" bonus. */
.hud-chip-secret {
  color: #ffd451;
  text-shadow: 0 0 6px rgba(255, 200, 60, 0.7);
  letter-spacing: 0.04em;
}

@keyframes chip-drift {
  0% { opacity: 1; transform: translateX(-50%) translateY(0); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-1.4em); }
}

.hud-drinks {
  font-size: 1.2em;
  min-width: 2em;
  text-align: center;
}

/* Tweaks R8: secret paseo mode. The "PASEO" badge replaces the score/mult/drinks
   readouts (paseo is scoreless), toggled by #hud.paseo-mode set from hud.js. */
.hud-paseo {
  font-size: 1.4em;
  font-weight: bold;
  letter-spacing: 0.25em;
  color: #e6b422;
  text-shadow: 0 0 10px rgba(230, 180, 34, 0.5), 0 1px 3px #000;
}
#hud.paseo-mode .hud-score,
#hud.paseo-mode .hud-mult-wrap,
#hud.paseo-mode .hud-drinks {
  display: none;
}

.boot-error {
  color: #ff5a5a;
  font-weight: bold;
  max-width: 620px;
}

/* "E — contemplar" prompt: bottom-center */
#prompt {
  position: absolute;
  bottom: 3.5em;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.4em 1em;
  background: rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 4px;
  letter-spacing: 0.05em;
  z-index: 20;
  pointer-events: none;
  /* #stage line-height:0 reset (Task 17 review fix — see .screen's comment). */
  line-height: 1.4;
}

/* Gold champagne-bump flash */
#flash {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(255, 215, 120, 0.9), rgba(230, 180, 34, 0.4));
  opacity: 0;
  pointer-events: none;
  z-index: 25;
  /* #flash carries no text today, but it's a direct #stage child like every
     other overlay here — reset for consistency/future-proofing (Task 17
     review fix — see .screen's comment). */
  line-height: 1.4;
}

/* Full-res contemplation overlay */
#contemplate-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1em;
  padding: 1.5em;
  background: rgba(8, 8, 8, 0.94);
  z-index: 30;
  /* #stage sets line-height:0 (see .screen's comment above) — this overlay is
     a direct #stage child too, so it needs its own reset: without it the
     caption's line box collapses toward zero height and the glyphs paint up
     into the image above it (Tweaks R4 item 3). */
  line-height: 1.4;
}

#contemplate-overlay .co-img {
  max-width: 88%;
  /* Capped a little below the old 72% so the caption + bar always keep a
     guaranteed reserve of vertical room under the mat, in both portrait and
     landscape works. */
  max-height: 66%;
  object-fit: contain;
  image-rendering: auto;
  flex-shrink: 1;
  box-shadow: 0 0 0 8px #f0ece2, 0 10px 40px rgba(0, 0, 0, 0.8);
}

#contemplate-overlay .co-label {
  font-size: 1.1em;
  letter-spacing: 0.03em;
  text-align: center;
  color: #f0ece2;
  flex-shrink: 0;
  /* Clear margin below the image/mat on top of the flex gap — the caption
     must never sit against the mat's bottom edge. */
  margin-top: 0.3em;
}

#contemplate-overlay .co-bar {
  width: 60%;
  height: 6px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
  overflow: hidden;
}

#contemplate-overlay .co-bar-fill {
  height: 100%;
  width: 0%;
  background: #e6b422;
  transition: width 0.08s linear;
}

/* Secret curatorial-text overlay: same dark layer + countdown as contemplation,
   but the content is a crisp wall-label card so the FULL text reads clearly
   (Tweaks R3 item 2 — the wall texture is intentionally near-illegible). */
#secret-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1em;
  padding: 1.5em;
  background: rgba(8, 8, 8, 0.94);
  z-index: 30;
  /* Same #stage line-height:0 reset as #contemplate-overlay (Tweaks R4). */
  line-height: 1.4;
}

#secret-overlay .so-card {
  max-width: min(560px, 82%);
  background: #faf7ef;
  color: #241d13;
  padding: 1.6em 1.8em;
  border-radius: 3px;
  box-shadow: 0 0 0 6px #e9e2d2, 0 14px 46px rgba(0, 0, 0, 0.8);
  border: 1px solid #d8cfba;
}

#secret-overlay .so-heading {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 800;
  font-size: 1.5em;
  letter-spacing: 0.03em;
  color: #1c1710;
  padding-bottom: 0.45em;
  margin-bottom: 0.7em;
  border-bottom: 2px solid #b3a98a;
}

#secret-overlay .so-body {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.02em;
  line-height: 1.6;
  color: #33291c;
  text-align: left;
}

#secret-overlay .co-bar {
  width: 60%;
  height: 6px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
  overflow: hidden;
}

#secret-overlay .so-bar-fill {
  height: 100%;
  width: 0%;
  background: #e6b422;
  transition: width 0.08s linear;
}

/* Paseo mode: no countdown — the overlay stays open until the player closes
   it, so the countdown bar (there is nothing counting down) is hidden. Class
   toggled on both overlays by hud.js's setPaseo(), mirroring #hud.paseo-mode
   above. */
#contemplate-overlay.paseo-mode .co-bar,
#secret-overlay.paseo-mode .co-bar {
  display: none;
}

/* Minimap: top-right, above every overlay. On-screen size is viewport-relative
   (Tweaks R2 item 10 — slightly bigger, scaling with the enlarged canvas)
   while the internal pixel resolution comes from CONFIG.ui.minimapCell. */
#minimap {
  position: absolute;
  top: 8px;
  right: 8px;
  width: min(22%, 260px);
  height: auto;
  z-index: 40;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(0, 0, 0, 0.4);
  image-rendering: pixelated;
}

.screen {
  z-index: 50;
}

/* "SONIDO: ON/OFF" toast: top-left, above screens too (M works in any phase).
   Always in the DOM; visibility is opacity-only so no display toggling races
   with the fade timer in hud.js. */
#sound-toast {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 0.3em 0.7em;
  background: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 4px;
  font-size: 0.85em;
  letter-spacing: 0.05em;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 60;
  /* #stage line-height:0 reset (Task 17 review fix — see .screen's comment):
     without it the toast pill's line box collapses and the text overlaps
     #hud's score readout instead of sitting in its own line. */
  line-height: 1.4;
}
#sound-toast.visible {
  opacity: 1;
}

/* Transient room header (SALA I / SALA II) on room entry — top-center, fades
   in and out over ~2.6s (ROOM_HEADER_MS in hud.js). */
#room-header {
  position: absolute;
  top: 12%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  /* #stage sets line-height:0 (to kill the inline-block canvas gap); restore a
     normal line box here so the two stacked lines don't collapse onto each other. */
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  z-index: 22;
  text-shadow: 0 2px 8px #000;
}
#room-header.show {
  animation: room-header-in 2.6s ease-out forwards;
}
.rh-title {
  font-size: 2.2em;
  font-weight: bold;
  letter-spacing: 0.15em;
  color: #f0ece2;
}
.rh-sub {
  font-size: 1em;
  letter-spacing: 0.35em;
  color: #e6b422;
}

@keyframes room-header-in {
  0% { opacity: 0; transform: translateX(-50%) translateY(-0.5em); }
  15% { opacity: 1; transform: translateX(-50%) translateY(0); }
  75% { opacity: 1; transform: translateX(-50%) translateY(0); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-0.3em); }
}

/* Room-completion celebration pop — big centered gold/green burst, distinct
   from the multiplier chips. Lifetime ~2.2s (ROOM_COMPLETE_MS in hud.js). */
#room-complete {
  position: absolute;
  top: 42%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1.2; /* restore a normal line box (see #room-header note) */
  opacity: 0;
  pointer-events: none;
  z-index: 28;
}
#room-complete.show {
  animation: room-complete-pop 2.2s cubic-bezier(0.2, 1.3, 0.4, 1) forwards;
}
.rc-line1 {
  font-size: 2.6em;
  font-weight: bold;
  letter-spacing: 0.08em;
  color: #7cfc00;
  text-shadow: 0 0 12px rgba(124, 252, 0, 0.6), 0 2px 6px #000;
}
.rc-line2 {
  font-size: 1.8em;
  font-weight: bold;
  letter-spacing: 0.15em;
  color: #e6b422;
  text-shadow: 0 0 10px rgba(230, 180, 34, 0.6), 0 2px 6px #000;
}

@keyframes room-complete-pop {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.4); }
  15% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
  30% { transform: translate(-50%, -50%) scale(1); }
  80% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.05); }
}

/* Version badge (bottom-right corner), visible over the intro too. */
#version-tag {
  position: absolute;
  bottom: 6px;
  right: 8px;
  font-size: 0.7em;
  letter-spacing: 0.1em;
  color: rgba(224, 224, 224, 0.5);
  z-index: 55;
  pointer-events: none;
  /* #stage line-height:0 reset (Task 17 review fix — see .screen's comment). */
  line-height: 1.4;
}

.hidden {
  display: none !important;
}

@keyframes blink {
  to {
    opacity: 0;
  }
}
