/* /paradox/paradox-intro.css */
/* Based on your dom-intro HUD layout, but intended for dot-reveal canvas. */

:root{
  --bg:#05060a;
  --hud:rgba(255,255,255,.88);
  --hud2:rgba(255,255,255,.64);
  --line:rgba(255,255,255,.14);
}

html,body{height:100%;}
body.dom_intro_page{
  margin:0;
  background: var(--bg);
  color:#fff;
  font-family: "Inter", Arial, sans-serif;
  overflow:hidden;
}

.dom_intro_stage{
  position:relative;
  width:100%;
  height:100vh;
  min-height:560px;
}

.dom_bg_glow{
  position:absolute; inset:-30%;
  background:
    radial-gradient(circle at 25% 30%, rgba(120,160,255,.16), transparent 55%),
    radial-gradient(circle at 72% 58%, rgba(255,150,200,.10), transparent 56%),
    radial-gradient(circle at 52% 92%, rgba(120,255,210,.09), transparent 60%);
  filter: blur(18px);
  opacity:.9;
  pointer-events:none;
  z-index: 1;
}

.dom_canvas{
  position:absolute;
  inset:0;
  z-index: 10;
  width:100%;
  height:100%;
  display:block;
}

.dom_hud{
  position:absolute;
  top: clamp(18px, 4vh, 40px);
  left: clamp(18px, 4vw, 56px);
  right: clamp(18px, 4vw, 56px);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  z-index: 30;
  pointer-events:none;
}

.dom_title{pointer-events:none;}
.dom_title_big{
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size: clamp(18px, 2.6vw, 34px);
  opacity: var(--hud);
}
.dom_title_sub{
  margin-top: 6px;
  font-size: 13px;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: var(--hud2);
}

.dom_status{
  margin-top: 6px;
  text-align:center;
  flex:1;
  font-size: 14px;
  letter-spacing:.08em;
  opacity: var(--hud2);
  pointer-events:none;
}

.dom_controls{
  display:flex;
  gap:10px;
  pointer-events:auto;
}

.dom_btn{
  border:1px solid var(--line);
  background: rgba(255,255,255,.08);
  color:#fff;
  border-radius: 14px;
  padding: 10px 14px;
  font-size: 13px;
  letter-spacing:.08em;
  text-transform: uppercase;
  cursor:pointer;
  user-select:none;
  transition: transform .12s ease, background .18s ease, border-color .18s ease, opacity .18s ease;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.dom_btn:hover{ transform: translateY(-1px); background: rgba(255,255,255,.12); }
.dom_btn:disabled{ opacity:.35; cursor:not-allowed; transform:none; }
.dom_btn.ghost{ background: transparent; }

.dom_btn.is_disabled{
  opacity:.38;
  pointer-events:none;
  transform:none;
}

.dom_click_hint{
  position:absolute;
  bottom: clamp(18px, 4vh, 34px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 28;
  font-size: 12px;
  letter-spacing:.18em;
  text-transform: uppercase;
  opacity: .42;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.22);
  padding: 10px 14px;
  border-radius: 999px;
  backdrop-filter: blur(6px);
  pointer-events:none;
}

/* Blink */
.dom_blink{ animation: blink 1.1s steps(1,end) infinite; }
@keyframes blink{
  0%,49%{ opacity:1;}
  50%,100%{ opacity:.25;}
}

/* End panel */
.dom_end{
  position:absolute;
  inset:0;
  z-index: 40;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(0,0,0,.45);
  opacity:0;
  pointer-events:none;
  transition: opacity 550ms ease;
}
.dom_end.is_on{
  opacity:1;
  pointer-events:auto;
}
.dom_end_inner{
  border:1px solid var(--line);
  background: rgba(10,12,18,.72);
  border-radius: 22px;
  padding: 22px 22px;
  max-width: 520px;
  width: calc(100% - 36px);
  box-shadow: 0 16px 60px rgba(0,0,0,.55);
}
.dom_end_title{
  font-size: 14px;
  letter-spacing:.22em;
  text-transform: uppercase;
  opacity: var(--hud);
}
.dom_end_actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top: 14px;
}
