/* Inside prompt/card polish
   Goal: one centered editorial system for notes, posters, downloads, and actions. */

/* Landing signal: atmospheric game/lore treatment without touching room logic. */
#intro {
  background:
    radial-gradient(circle at 50% 28%, rgba(229,74,69,.19), transparent 28%),
    linear-gradient(rgba(255,252,247,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,252,247,.018) 1px, transparent 1px),
    #05050c !important;
  background-size: auto, 28px 28px, 28px 28px, auto !important;
}

#intro::before {
  border-color: rgba(229,74,69,.38) !important;
  box-shadow:
    0 0 0 1px rgba(255,252,247,.025),
    0 0 0 12px rgba(5,5,12,.5),
    0 34px 130px rgba(0,0,0,.72),
    inset 0 0 90px rgba(229,74,69,.055) !important;
}

#intro::after {
  content: "ROOM 00 / ENTRY SIGNAL" !important;
  color: rgba(255,252,247,.48) !important;
  letter-spacing: .32em !important;
}

#intro h1::before {
  content: "MEMORY INDEX / OPEN";
  display: block;
  margin: 0 auto .72rem;
  color: #e54a45;
  font-family: monospace;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .28em;
  line-height: 1.4;
}

#intro .enter {
  position: relative !important;
  overflow: hidden !important;
  border-color: rgba(255,252,247,.72) !important;
  background: rgba(255,252,247,.025) !important;
  box-shadow:
    0 0 22px rgba(255,252,247,.12),
    inset 0 0 22px rgba(229,74,69,.07) !important;
}

#intro .enter::before {
  content: "STATUS / OPEN";
  position: absolute;
  left: 12px;
  top: 8px;
  color: rgba(255,252,247,.35);
  font-size: .42rem;
  letter-spacing: .18em;
}

#intro .enter::after {
  content: "→";
  margin-left: 1rem;
  color: #e54a45;
}

.overlay {
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(18px, 4vw, 48px) !important;
  background:
    radial-gradient(circle at 50% 48%, rgba(229,74,69,.16), transparent 34%),
    rgba(5,5,12,.82) !important;
  backdrop-filter: blur(3px) saturate(1.05) !important;
  -webkit-backdrop-filter: blur(3px) saturate(1.05) !important;
}

.card {
  width: min(92vw, 620px) !important;
  max-height: min(84svh, 760px) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  padding: clamp(1.55rem, 3.8vw, 2.45rem) clamp(1.25rem, 3.8vw, 2.25rem) clamp(1.25rem, 3vw, 1.75rem) !important;
  text-align: center !important;
  background:
    linear-gradient(180deg, rgba(255,252,247,1), rgba(246,240,224,1)) !important;
  color: #0a0a0a !important;
  border: 1px solid rgba(229,74,69,.62) !important;
  box-shadow:
    0 0 0 1px rgba(10,10,10,.18),
    0 28px 90px rgba(0,0,0,.78),
    0 0 56px rgba(229,74,69,.12) !important;
  transform: rotate(-.08deg) !important;
}

.card::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 5px !important;
  background: linear-gradient(90deg, rgba(229,74,69,.18), #e54a45, rgba(229,74,69,.18)) !important;
}

.card::after {
  content: "" !important;
  position: absolute !important;
  inset: 12px !important;
  border: 1px solid rgba(10,10,10,.055) !important;
  pointer-events: none !important;
}

.card .tag {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 auto .9rem !important;
  padding: .34rem .74rem !important;
  border: 1px solid rgba(229,74,69,.38) !important;
  background: rgba(229,74,69,.065) !important;
  color: #e54a45 !important;
  text-align: center !important;
  letter-spacing: .18em !important;
  font-size: .62rem !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
}

.card h2 {
  max-width: 22ch !important;
  margin: 0 auto 1.05rem !important;
  color: #0a0a0a !important;
  font-size: clamp(1.2rem, 3.4vw, 1.68rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.015em !important;
  text-align: center !important;
  text-wrap: balance !important;
  text-shadow: none !important;
}

.card h2::after {
  content: "" !important;
  display: block !important;
  width: 50px !important;
  height: 1px !important;
  margin: .82rem auto 0 !important;
  background: rgba(229,74,69,.72) !important;
}

.card #n-body {
  display: block !important;
  width: 100% !important;
  max-width: 48ch !important;
  margin: 0 auto !important;
}

.card p {
  max-width: 48ch !important;
  margin: 0 auto .95rem !important;
  color: rgba(10,10,10,.78) !important;
  font-size: clamp(.88rem, 1.7vw, .98rem) !important;
  line-height: 1.7 !important;
  text-align: center !important;
  text-wrap: pretty !important;
}

.card p:last-child { margin-bottom: 0 !important; }
.card b,
.card strong { color: #0a0a0a !important; font-weight: 900 !important; }
.card a:not(.btn) { color: #d8453f !important; text-decoration-color: rgba(229,74,69,.44) !important; text-underline-offset: 3px !important; }

.card .media-wrap { display: flex !important; justify-content: center !important; margin: .3rem auto 1.15rem !important; }
.card .media-wrap img { display: block !important; max-width: 100% !important; margin: 0 auto !important; border: 1px solid rgba(229,74,69,.42) !important; box-shadow: 0 16px 40px rgba(0,0,0,.18) !important; }

.card p:has(.btn),
.card #n-body p:has(.btn) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .72rem !important;
  flex-wrap: wrap !important;
  max-width: none !important;
  margin: 1.12rem auto 0 !important;
  text-align: center !important;
}

.card .btn,
.card ul a,
.card button.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  min-width: 190px !important;
  padding: .68rem 1rem !important;
  border: 1.5px solid rgba(10,10,10,.9) !important;
  background: #fffcf7 !important;
  color: #0a0a0a !important;
  font-family: monospace !important;
  font-size: .76rem !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  line-height: 1.15 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.card .btn.glow,
.card ul a {
  border-color: #e54a45 !important;
  color: #e54a45 !important;
  background: rgba(229,74,69,.035) !important;
  box-shadow: 0 0 18px rgba(229,74,69,.14) !important;
}

.card .btn:hover,
.card ul a:hover,
.card button.btn:hover {
  background: #e54a45 !important;
  border-color: #e54a45 !important;
  color: #fffcf7 !important;
}

.card button.btn.icon,
.card .btn.icon { min-width: 52px !important; width: 52px !important; padding-inline: 0 !important; font-size: 1rem !important; }

.card ul,
.card .download-grid {
  list-style: none !important;
  width: min(100%, 480px) !important;
  max-width: 480px !important;
  margin: 1.05rem auto 1.15rem !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .64rem !important;
  align-items: stretch !important;
  justify-content: center !important;
}

.card ul li,
.card .download-grid li { margin: 0 !important; padding: 0 !important; display: flex !important; }
.card ul a,
.card .download-grid a { width: 100% !important; min-width: 0 !important; min-height: 44px !important; padding: .62rem .58rem !important; font-size: .64rem !important; letter-spacing: .045em !important; }

/* Free-art download grid: black buttons, red hover. The Nouns learn-more button remains red via .btn.glow. */
.card .download-grid a {
  background: #0a0a0a !important;
  border-color: #0a0a0a !important;
  color: #fffcf7 !important;
  box-shadow: none !important;
}
.card .download-grid a:hover {
  background: #e54a45 !important;
  border-color: #e54a45 !important;
  color: #fffcf7 !important;
}
.card p .btn.glow,
.card #n-body p .btn.glow {
  background: rgba(229,74,69,.035) !important;
  border-color: #e54a45 !important;
  color: #e54a45 !important;
  box-shadow: 0 0 18px rgba(229,74,69,.14) !important;
}
.card p .btn.glow:hover,
.card #n-body p .btn.glow:hover {
  background: #e54a45 !important;
  border-color: #e54a45 !important;
  color: #fffcf7 !important;
}

.card .fine { margin-top: .85rem !important; color: rgba(10,10,10,.45) !important; font-size: .68rem !important; line-height: 1.5 !important; letter-spacing: .02em !important; }

.card .close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 1.35rem auto 0 !important;
  min-width: 160px !important;
  min-height: 40px !important;
  border: 1px solid #0a0a0a !important;
  background: #0a0a0a !important;
  color: #fffcf7 !important;
  font-family: monospace !important;
  font-weight: 900 !important;
  font-size: .72rem !important;
  letter-spacing: .12em !important;
  text-align: center !important;
}
.card .close:hover { background: #e54a45 !important; border-color: #e54a45 !important; }

@media (max-width: 520px) {
  #intro h1::before { font-size: .5rem; letter-spacing: .2em; }
  .overlay { padding: 14px !important; }
  .card { width: min(94vw, 440px) !important; max-height: 86svh !important; padding: 1.55rem 1.08rem 1.18rem !important; }
  .card::after { inset: 8px !important; }
  .card .tag { font-size: .55rem !important; letter-spacing: .13em !important; margin-bottom: .76rem !important; }
  .card h2 { font-size: 1.16rem !important; margin-bottom: .82rem !important; }
  .card p { font-size: .84rem !important; line-height: 1.6 !important; margin-bottom: .78rem !important; }
  .card .btn,
  .card ul a,
  .card button.btn { min-height: 38px !important; min-width: 150px !important; font-size: .66rem !important; padding: .56rem .68rem !important; }
  .card ul,
  .card .download-grid { width: 100% !important; gap: .48rem !important; }
  .card ul a,
  .card .download-grid a { min-height: 40px !important; font-size: .56rem !important; letter-spacing: .025em !important; padding: .5rem .4rem !important; }
}
