:root {
  --fire: #ff3b1f;
  --ember: #ff8a00;
  --glow: #ffd27a;
  --hivis: #e8ff3a;
  --bg: #0b0b0f;
  --ink: #f5f1ea;
  --ink-2: rgba(245, 241, 234, 0.68);
  --line: rgba(255, 255, 255, 0.12);
  --panel: rgba(12, 10, 12, 0.42);
  --display: 'Black Han Sans', 'Noto Sans KR', sans-serif;
  --latin: 'Bebas Neue', 'Black Han Sans', sans-serif;
  --body: 'Noto Sans KR', system-ui, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scrollbar-width: none; }
html::-webkit-scrollbar { display: none; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--body);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.has-cursor, body.has-cursor * { cursor: none; }
body.has-cursor input { cursor: text; }

/* ---------- 고정 레이어 ---------- */
#gl, #fallback, #flash, #siren, #vignette {
  position: fixed; inset: 0; width: 100%; height: 100%;
}
#gl { z-index: 0; display: block; }
#fallback {
  z-index: 0; display: none;
  background:
    radial-gradient(60% 50% at 50% 80%, rgba(255, 90, 20, 0.55), transparent 70%),
    radial-gradient(40% 30% at 30% 90%, rgba(255, 40, 10, 0.4), transparent 70%),
    linear-gradient(#050508, #150806 70%, #2a0d05);
}
body.no-webgl #gl { display: none; }
body.no-webgl #fallback { display: block; }
#vignette {
  z-index: 1; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 50%, transparent 55%, rgba(0, 0, 0, 0.65));
}
#flash {
  z-index: 3; pointer-events: none; opacity: 0;
  background: radial-gradient(circle at 50% 50%, #fff6e0, #ffb060 40%, #ff4a10 80%);
  mix-blend-mode: screen;
}
#siren {
  z-index: 2; pointer-events: none; opacity: 0;
  transition: opacity 0.12s linear;
  background: linear-gradient(90deg, rgba(255, 20, 20, 0.6), transparent 45%);
}
#siren.blue { background: linear-gradient(270deg, rgba(30, 90, 255, 0.6), transparent 45%); }

/* ---------- 로딩 ---------- */
#loader {
  position: fixed; inset: 0; z-index: 50;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
  background: #060507;
  transition: opacity 0.9s ease, visibility 0.9s;
}
body.loaded #loader { opacity: 0; visibility: hidden; }
.loader-flame {
  width: 64px; height: 92px; position: relative; overflow: hidden;
  border-radius: 50% 50% 46% 46% / 62% 62% 38% 38%;
  border: 1.5px solid rgba(255, 140, 40, 0.5);
  box-shadow: 0 0 40px rgba(255, 90, 20, 0.35);
}
.loader-fill {
  position: absolute; left: 0; right: 0; bottom: 0; height: 0%;
  background: linear-gradient(0deg, var(--fire), var(--ember) 60%, var(--glow));
  transition: height 0.3s ease;
  filter: blur(0.5px);
}
.loader-fill::after {
  content: ''; position: absolute; left: -20%; right: -20%; top: -10px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, var(--glow), transparent 70%);
  animation: lick 0.6s ease-in-out infinite alternate;
}
@keyframes lick { to { transform: translateX(8px) scaleY(1.4); } }
.loader-text { font-family: var(--latin); font-size: 44px; letter-spacing: 0.04em; }
.loader-sub { font-size: 13px; letter-spacing: 0.3em; color: var(--ink-2); }

/* ---------- 상단 바 ---------- */
.topbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 20;
  display: flex; justify-content: space-between; align-items: center;
  padding: 22px 32px;
  pointer-events: none;
}
.topbar > * { pointer-events: auto; }
.brand {
  font-family: var(--latin); font-size: 26px; letter-spacing: 0.08em;
  color: var(--ink); text-decoration: none;
  display: flex; align-items: center; gap: 10px;
}
.brand-mark {
  background: var(--fire); color: #fff; padding: 2px 8px 0; border-radius: 4px;
  box-shadow: 0 0 24px rgba(255, 59, 31, 0.6);
}
.pill {
  font-family: var(--body); font-size: 13px; color: var(--ink);
  background: rgba(255, 255, 255, 0.06); border: 1px solid var(--line);
  padding: 9px 16px; border-radius: 999px; backdrop-filter: blur(8px);
  transition: background 0.2s, border-color 0.2s;
}
.pill:hover { background: rgba(255, 255, 255, 0.12); }
.pill[aria-pressed="true"] { border-color: var(--ember); box-shadow: 0 0 18px rgba(255, 138, 0, 0.35); }
.pill b { color: var(--ember); margin-left: 4px; }

/* ---------- 진행도 ---------- */
.progress {
  position: fixed; right: 28px; top: 50%; transform: translateY(-50%); z-index: 20;
  height: 300px; display: flex; align-items: stretch;
}
.progress-track {
  position: absolute; right: 5px; top: 0; bottom: 0; width: 1px; background: var(--line);
}
.progress-fill {
  position: absolute; top: 0; left: -1px; width: 3px; height: 0%;
  background: linear-gradient(var(--glow), var(--fire));
  box-shadow: 0 0 12px var(--fire); border-radius: 2px;
}
#dots {
  list-style: none; position: relative;
  display: flex; flex-direction: column; justify-content: space-between;
}
#dots li { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
#dots button {
  display: flex; align-items: center; gap: 12px; background: none; border: 0;
  color: var(--ink-2); font-family: var(--body); font-size: 12px;
}
#dots button span { opacity: 0; transform: translateX(6px); transition: 0.3s; white-space: nowrap; }
#dots button:hover span, #dots li.on span { opacity: 1; transform: none; }
#dots button i {
  width: 11px; height: 11px; border-radius: 50%; border: 1.5px solid var(--ink-2);
  background: var(--bg); transition: 0.3s;
}
#dots li.on button { color: var(--ink); }
#dots li.on i { background: var(--fire); border-color: var(--glow); box-shadow: 0 0 14px var(--fire); transform: scale(1.25); }

/* ---------- 키 안내 ---------- */
.keys {
  position: fixed; left: 32px; bottom: 24px; z-index: 20;
  display: flex; flex-wrap: wrap; gap: 8px 18px; max-width: calc(100% - 64px);
  font-size: 12px; color: var(--ink-2);
  transition: opacity 0.6s;
}
.keys kbd {
  font-family: var(--body); font-size: 11px; color: var(--ink);
  display: inline-block; min-width: 22px; padding: 2px 6px; margin-right: 3px; text-align: center;
  border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px;
  background: rgba(255, 255, 255, 0.05);
}
.k-touch { display: none; }
body.touch .k-desk { display: none; }
body.touch .k-touch { display: inline; }

/* ---------- 커서 ---------- */
#cursor, #cursorDot { position: fixed; top: 0; left: 0; z-index: 60; pointer-events: none; display: none; }
body.has-cursor #cursor, body.has-cursor #cursorDot { display: block; }
#cursor {
  width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 50%;
  border: 1.5px solid rgba(255, 210, 122, 0.8);
  box-shadow: 0 0 22px rgba(255, 120, 30, 0.45), inset 0 0 12px rgba(255, 120, 30, 0.3);
  transition: width 0.25s, height 0.25s, margin 0.25s, border-color 0.25s, background 0.25s;
}
#cursor::before, #cursor::after {
  content: ''; position: absolute; left: 50%; top: 50%; background: rgba(255, 210, 122, 0.8);
}
#cursor::before { width: 1px; height: 8px; margin: -26px 0 0 0; }
#cursor::after { width: 8px; height: 1px; margin: 0 0 0 18px; }
#cursor.spray {
  width: 26px; height: 26px; margin: -13px 0 0 -13px;
  border-color: #8fd8ff; background: rgba(120, 200, 255, 0.15);
  box-shadow: 0 0 26px rgba(120, 200, 255, 0.6);
}
#cursor.hover { width: 64px; height: 64px; margin: -32px 0 0 -32px; border-color: var(--hivis); }
#cursorDot {
  width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%;
  background: var(--glow); box-shadow: 0 0 10px var(--ember);
}

/* ---------- 장비 라벨 ---------- */
#gearLabel {
  position: fixed; left: 0; top: 0; z-index: 25; pointer-events: none;
  min-width: 200px; max-width: 260px; padding: 14px 16px;
  background: rgba(10, 9, 10, 0.72); border: 1px solid rgba(232, 255, 58, 0.5);
  border-radius: 10px; backdrop-filter: blur(10px);
  box-shadow: 0 0 30px rgba(232, 255, 58, 0.18);
  opacity: 0; transform: translateY(8px); transition: opacity 0.25s, transform 0.25s;
}
#gearLabel.on { opacity: 1; transform: none; }
#gearLabel b { display: block; font-size: 16px; color: var(--hivis); margin-bottom: 6px; }
#gearLabel span { font-size: 13px; line-height: 1.55; color: var(--ink-2); }

/* ---------- 섹션 ---------- */
main { position: relative; z-index: 5; }
.sec { position: relative; }
#hero { height: 220vh; }
#alarm { height: 330vh; }
#fire { height: 300vh; }
#gear { height: 300vh; }
#stats { height: 190vh; }
#safety { height: 260vh; }
#thanks { height: 180vh; }

.stage {
  position: sticky; top: 0; height: 100vh; width: 100%;
  display: flex; padding: 110px 120px 90px 64px;
  opacity: 0; visibility: hidden;
  transition: opacity 0.7s ease, visibility 0.7s;
  pointer-events: none;
}
.sec.active .stage { opacity: 1; visibility: visible; }
.stage .ui, .stage a, .stage button, .stage input, .card { pointer-events: auto; }

.stage-hero { flex-direction: column; justify-content: flex-end; align-items: center; text-align: center; padding-bottom: 120px; }
.stage-left { align-items: center; }
.stage-left.stage-top { align-items: flex-start; }
.stage-right { align-items: center; justify-content: flex-end; }
.stage-center { flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.stage-cards { flex-direction: column; justify-content: space-between; }

.panel {
  max-width: 440px; padding: 30px 32px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 18px;
  backdrop-filter: blur(14px) saturate(1.2);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.kicker, .num {
  font-family: var(--latin); letter-spacing: 0.32em; font-size: 15px; color: var(--ember);
  margin-bottom: 16px;
}
.display { font-family: var(--display); font-weight: 400; line-height: 1.08; letter-spacing: -0.01em; }
h2.display { font-size: clamp(36px, 4.6vw, 64px); margin-bottom: 20px; }
h2.display.big { font-size: clamp(44px, 7vw, 108px); }
.fire-text {
  background: linear-gradient(180deg, #fff3c4 0%, var(--ember) 45%, var(--fire) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 0 22px rgba(255, 80, 20, 0.45));
}
.dawn-text {
  background: linear-gradient(180deg, #fff 0%, #ffd2a0 50%, #ff8f6b 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 0 26px rgba(255, 170, 120, 0.5));
}
.desc { font-size: 15px; line-height: 1.75; color: var(--ink-2); }
.desc b { color: var(--ink); }
.desc.center { max-width: 520px; margin: 0 auto; }

/* 마스크 리빌 */
.reveal > span { display: block; overflow: hidden; }
.reveal > span { clip-path: inset(0 0 100% 0); transform: translateY(40%); transition: clip-path 1s cubic-bezier(.2, .8, .2, 1), transform 1s cubic-bezier(.2, .8, .2, 1); }
.reveal > span:nth-child(2) { transition-delay: 0.12s; }
.sec.active .reveal > span { clip-path: inset(-20% 0 -20% 0); transform: none; }

/* ---------- 히어로 ---------- */
.hero-title { font-size: clamp(34px, min(7.4vw, 11vh), 118px); text-shadow: 0 0 40px rgba(255, 80, 20, 0.35); }
.hero-title .ch {
  display: inline-block; opacity: 0; transform: translateY(30px) scale(0.9); filter: blur(8px);
  transition: opacity 0.6s, transform 0.6s cubic-bezier(.2, .8, .2, 1), filter 0.6s;
}
.hero-title .line2 .ch { color: transparent; background: linear-gradient(180deg, #fff3c4, var(--ember) 50%, var(--fire)); -webkit-background-clip: text; background-clip: text; }
body.loaded .hero-title .ch { opacity: 1; transform: none; filter: none; }
.hero-sub {
  margin-top: 20px; font-size: clamp(15px, 1.4vw, 19px); color: var(--ink-2); letter-spacing: 0.08em;
  opacity: 0; transition: opacity 1s 1.8s;
}
body.loaded .hero-sub { opacity: 1; }
.scroll-hint {
  margin-top: 46px; display: flex; flex-direction: column; align-items: center; gap: 10px;
  font-size: 12px; letter-spacing: 0.25em; color: var(--ink-2);
  opacity: 0; transition: opacity 1s 2.4s;
}
body.loaded .scroll-hint { opacity: 1; }
.mouse { width: 24px; height: 38px; border: 1.5px solid var(--ink-2); border-radius: 12px; position: relative; }
.mouse i { position: absolute; left: 50%; top: 7px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--ember); animation: wheel 1.6s infinite; }
@keyframes wheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(12px); } }

/* ---------- 출동 ---------- */
.steps { list-style: none; margin: 8px 0 22px; display: grid; gap: 12px; counter-reset: s; }
.steps li {
  position: relative; padding: 12px 14px 12px 52px; border-radius: 12px;
  font-size: 13.5px; line-height: 1.5; color: var(--ink-2);
  background: rgba(255, 255, 255, 0.03); border: 1px solid transparent;
  opacity: 0.22; transform: translateX(-12px);
  transition: opacity 0.5s, transform 0.5s, border-color 0.5s, background 0.5s;
}
.steps li b { display: block; color: var(--ink); font-size: 15px; margin-bottom: 2px; }
.steps li::before {
  counter-increment: s; content: counter(s, decimal-leading-zero);
  position: absolute; left: 14px; top: 13px; font-family: var(--latin); font-size: 22px; color: var(--ink-2);
}
.steps li.on { opacity: 1; transform: none; border-color: rgba(255, 138, 0, 0.35); background: rgba(255, 90, 20, 0.08); }
.steps li.on::before { color: var(--ember); text-shadow: 0 0 12px var(--fire); }
.meter { display: flex; align-items: baseline; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 16px; }
.meter span { font-size: 13px; color: var(--ink-2); letter-spacing: 0.1em; }
.meter strong { font-family: var(--latin); font-size: 46px; letter-spacing: 0.02em; color: var(--glow); text-shadow: 0 0 18px rgba(255, 138, 0, 0.6); }

/* ---------- 진압 ---------- */
.gauge { margin-top: 22px; }
.gauge-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; color: var(--ink-2); margin-bottom: 8px; }
.gauge-head strong { font-family: var(--latin); font-size: 30px; color: var(--ember); }
.gauge-bar { height: 8px; border-radius: 4px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.gauge-bar i {
  display: block; height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--glow), var(--ember), var(--fire));
  box-shadow: 0 0 14px var(--fire); transition: width 0.2s linear;
}
.badge {
  margin-top: 18px; display: inline-block; padding: 10px 18px; border-radius: 999px;
  font-weight: 900; font-size: 16px; letter-spacing: 0.05em; color: #04131c;
  background: linear-gradient(90deg, #8fe3ff, #d8f7ff);
  box-shadow: 0 0 30px rgba(140, 220, 255, 0.6);
  opacity: 0; transform: scale(0.6); transition: opacity 0.4s, transform 0.5s cubic-bezier(.3, 1.6, .5, 1);
}
.badge.on { opacity: 1; transform: none; }

/* ---------- 장비 ---------- */
.gear-count { margin: 18px 0 12px; font-size: 13px; color: var(--ink-2); display: flex; justify-content: space-between; align-items: baseline; }
.gear-count strong { font-family: var(--latin); font-size: 34px; color: var(--hivis); text-shadow: 0 0 16px rgba(232, 255, 58, 0.45); }
.gear-list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.gear-list li {
  font-size: 12.5px; padding: 6px 12px; border-radius: 999px;
  border: 1px solid var(--line); color: var(--ink-2); transition: 0.4s;
}
.gear-list li.on { border-color: rgba(232, 255, 58, 0.6); color: var(--ink); background: rgba(232, 255, 58, 0.08); }

/* ---------- 숫자 ---------- */
.stats {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px;
  width: min(1100px, 100%); margin-top: 18px;
}
.stat {
  padding: 26px 18px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line);
  backdrop-filter: blur(12px);
  opacity: 0; transform: translateY(30px); transition: opacity 0.8s, transform 0.8s cubic-bezier(.2, .8, .2, 1);
}
.sec.active .stat { opacity: 1; transform: none; }
.sec.active .stat:nth-child(2) { transition-delay: 0.1s; }
.sec.active .stat:nth-child(3) { transition-delay: 0.2s; }
.sec.active .stat:nth-child(4) { transition-delay: 0.3s; }
.stat strong {
  font-family: var(--latin); font-size: clamp(34px, 3.6vw, 54px); font-weight: 400; letter-spacing: 0.01em;
  color: var(--glow); text-shadow: 0 0 22px rgba(255, 110, 20, 0.55);
}
.stat em { font-style: normal; font-size: 15px; color: var(--ember); margin-left: 4px; }
.stat span { display: block; margin-top: 8px; font-size: 14px; color: var(--ink-2); }
.source { margin-top: 22px; font-size: 12px; color: var(--ink-2); }
.source a { color: var(--ember); }

/* ---------- 안전 카드 ---------- */
.cards-head { max-width: 600px; }
.cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; perspective: 1200px; }
.card { height: 230px; opacity: 0; transform: translateY(40px); transition: opacity 0.6s, transform 0.6s; }
.card.on { opacity: 1; transform: none; }
.card-in {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d; transition: transform 0.9s cubic-bezier(.3, 1.3, .5, 1);
}
.card.on .card-in { transform: rotateY(180deg); }
.card.on:hover .card-in { transform: rotateY(0deg); }
.face {
  position: absolute; inset: 0; border-radius: 16px; padding: 20px;
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
  display: flex; flex-direction: column; justify-content: space-between;
  border: 1px solid var(--line); backdrop-filter: blur(12px);
}
.front { background: linear-gradient(160deg, rgba(255, 59, 31, 0.85), rgba(120, 20, 8, 0.85)); }
.front i { font-style: normal; font-family: var(--latin); font-size: 54px; line-height: 1; color: rgba(255, 255, 255, 0.85); }
.front b { font-size: 18px; line-height: 1.35; }
.back {
  transform: rotateY(180deg); background: rgba(14, 12, 14, 0.78);
  border-color: rgba(255, 138, 0, 0.4);
  font-size: 15px; line-height: 1.65; color: var(--ink); justify-content: center;
}
.hint-small { font-size: 12px; color: var(--ink-2); text-align: right; }

/* ---------- 감사 ---------- */
.stage-thanks { justify-content: center; }
.cheer {
  margin-top: 30px; display: flex; gap: 8px; width: min(460px, 100%);
  padding: 6px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); border: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.cheer input {
  flex: 1; min-width: 0; background: none; border: 0; outline: none; color: var(--ink);
  font-family: var(--body); font-size: 15px; padding: 0 16px;
}
.cheer input::placeholder { color: var(--ink-2); }
.cheer button {
  border: 0; border-radius: 999px; padding: 12px 20px; font-family: var(--body); font-weight: 700; font-size: 14px;
  color: #fff; background: linear-gradient(90deg, var(--fire), var(--ember));
  box-shadow: 0 0 20px rgba(255, 90, 20, 0.5);
}
#wall { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: -1; }
.chip {
  position: absolute; bottom: -40px; padding: 8px 14px; border-radius: 999px; white-space: nowrap;
  font-size: 13px; color: var(--ink); background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 210, 160, 0.35); backdrop-filter: blur(6px);
  animation: rise linear infinite;
}
@keyframes rise {
  0% { transform: translateY(0); opacity: 0; }
  10% { opacity: 1; }
  85% { opacity: 1; }
  100% { transform: translateY(-110vh); opacity: 0; }
}

/* ---------- 반응형 ---------- */
@media (max-width: 1100px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .card { height: 180px; }
}
@media (max-width: 768px) {
  .topbar { padding: 16px; }
  .brand { font-size: 22px; }
  .progress { right: 10px; height: 220px; }
  #dots button span { display: none; }
  .keys { left: 16px; bottom: 14px; max-width: calc(100% - 32px); }
  .stage { padding: 80px 34px 60px 16px; }
  .stage-left, .stage-right { align-items: flex-end; justify-content: flex-start; }
  .stage-left.stage-top { align-items: flex-start; }
  .panel { padding: 20px; max-width: 100%; }
  h2.display { font-size: 34px; }
  .steps li { padding: 8px 10px 8px 42px; font-size: 12.5px; }
  .steps li::before { font-size: 18px; left: 12px; top: 9px; }
  .meter strong { font-size: 34px; }
  .stats { gap: 10px; }
  .stat { padding: 16px 12px; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .card { height: 150px; }
  .card:nth-child(5) { grid-column: span 2; }
  .front i { font-size: 34px; }
  .front b { font-size: 15px; }
  .back { font-size: 13px; padding: 14px; }
  .face { padding: 14px; }
  .hint-small { display: none; }
}

/* 높이가 낮은 화면 (노트북 창 축소, 가로 모드 폰) */
@media (max-height: 640px) {
  .keys { display: none; }
  .stage { padding-top: 72px; padding-bottom: 24px; }
  h2.display { font-size: clamp(26px, 6vh, 40px); margin-bottom: 10px; }
  h2.display.big { font-size: clamp(32px, 9vh, 64px); }
  .panel { padding: 16px 20px; }
  .steps { gap: 6px; margin-bottom: 10px; }
  .steps li { padding: 6px 10px 6px 42px; }
  .steps li::before { font-size: 18px; top: 7px; }
  .meter strong { font-size: 30px; }
  .desc { font-size: 13px; line-height: 1.6; }
  .stats { gap: 10px; margin-top: 6px; }
  .stat { padding: 10px 12px; }
  .stat strong { font-size: 28px; }
  .stat span { margin-top: 2px; font-size: 12px; }
  .card { height: 120px; }
  .front i { font-size: 30px; }
  .front b { font-size: 14px; }
  .back { font-size: 12px; line-height: 1.5; }
  .face { padding: 12px; }
  .cheer { margin-top: 14px; }
  .gear-list { display: none; }
}

.stage-thanks .display, .stage-thanks .desc { filter: drop-shadow(0 2px 14px rgba(40, 10, 0, 0.55)); }
.stage-thanks .desc { color: rgba(255, 248, 240, 0.9); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  .chip { animation: none; display: none; }
}
