:root {
  color-scheme: dark;
  --color-bg: #090b0e;
  --color-surface: #11151a;
  --color-surface-raised: #171c22;
  --color-border: #2b323b;
  --color-text: #f4f6f8;
  --color-muted: #929ca8;
  --color-accent: #ff5a1f;
  --color-accent-strong: #ff3d00;
  --color-accent-soft: rgba(255, 90, 31, 0.14);
  --color-success: #70df9b;
  --color-danger: #ff7043;
  --color-warning: #ff8a52;
  --color-gold: #f6c448;
  --color-cream: #fff8e8;
  --color-jelly-pink: #ff6f91;
  --color-jelly-yellow: #ffd35c;
  --panel-highlight: rgba(255, 255, 255, 0.055);
  --glow-orange: 0 0 28px rgba(255, 90, 31, 0.2);
  --radius-card: 20px;
  --radius-control: 12px;
  --radius-pill: 999px;
  --shadow-card: 0 24px 70px rgba(0, 0, 0, 0.36);
  --space-1: 6px;
  --space-2: 10px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --page-pad: clamp(16px, 5vw, 24px);
  --font-system: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

*, *::before, *::after { box-sizing: border-box; }

html,
body {
  width: 100%;
  margin: 0;
  overflow-x: hidden;
  background: var(--color-bg);
}

body {
  min-height: 100vh;
  min-height: 100dvh;
  color: var(--color-text);
  font-family: var(--font-system);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

button, input, select, textarea { font: inherit; }
button { touch-action: manipulation; }
img { display: block; max-width: 100%; height: auto; }

.app-shell {
  position: relative;
  display: grid;
  min-height: 100vh;
  min-height: 100dvh;
  padding: max(var(--page-pad), env(safe-area-inset-top)) max(var(--page-pad), env(safe-area-inset-right)) max(var(--page-pad), env(safe-area-inset-bottom)) max(var(--page-pad), env(safe-area-inset-left));
  overflow-x: hidden;
  isolation: isolate;
}

.app-shell::before {
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 80% 12%, rgba(255, 90, 31, 0.13), transparent 28%),
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: auto, 24px 24px, 24px 24px;
  content: "";
}

.screen {
  display: flex;
  width: min(100%, 480px);
  margin: auto;
  flex-direction: column;
  justify-content: center;
  animation: screen-in 320ms ease both;
}

.intro-screen { justify-content: flex-start; padding: clamp(12px, 5vh, 44px) 0 28px; }

.system-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.eyebrow {
  margin: 0;
  color: var(--color-accent);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  overflow-wrap: anywhere;
}

.online-indicator { display: inline-flex; align-items: center; gap: 6px; color: var(--color-muted); font-size: 0.62rem; font-weight: 800; }
.status-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--color-success); box-shadow: 0 0 10px rgba(112, 223, 155, 0.65); animation: status-pulse 1.8s ease-in-out infinite; }

.card {
  min-width: 0;
  padding: clamp(20px, 6.5vw, 30px);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: linear-gradient(145deg, rgba(23, 28, 34, 0.97), rgba(14, 17, 21, 0.99));
  box-shadow: var(--shadow-card);
}

.intro-card { position: relative; overflow: hidden; }
.scan-line { position: absolute; top: 0; left: 0; width: 100%; height: 1px; opacity: 0.45; background: linear-gradient(90deg, transparent, var(--color-accent), transparent); animation: scan-line 4s linear infinite; pointer-events: none; }
.brand-mark { width: 44px; height: 5px; margin-bottom: 22px; border-radius: 99px; background: var(--color-accent); box-shadow: 0 0 24px rgba(255, 90, 31, 0.55); }

h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 4px; font-size: clamp(2rem, 11vw, 3.15rem); line-height: 1.05; letter-spacing: -0.05em; }
.subtitle { margin-bottom: 2px; color: var(--color-muted); font-size: clamp(0.98rem, 5vw, 1.16rem); font-weight: 650; }
.subtitle-en { margin-bottom: 24px; color: #66717d; font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.08em; }

.terminal {
  min-height: 148px;
  padding: 14px;
  border: 1px solid #252c34;
  border-radius: var(--radius-control);
  background: rgba(3, 5, 7, 0.52);
  font-family: var(--font-mono);
  font-size: clamp(0.7rem, 3.4vw, 0.78rem);
}

.log-line { display: flex; gap: 8px; margin: 0 0 7px; color: #c8ced5; overflow-wrap: anywhere; }
.log-line:last-child { margin-bottom: 0; }
.log-symbol { flex: 0 0 auto; color: var(--color-accent); font-weight: 800; }
.log-line.is-complete .log-symbol { color: var(--color-success); }

.reveal { opacity: 0; transform: translateY(8px); pointer-events: none; }
.reveal.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; transition: opacity 280ms ease, transform 280ms ease; }

.scan-panel { margin-top: 18px; }
.section-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; color: var(--color-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; }
.scan-percent { color: var(--color-text); font-family: var(--font-mono); }
.progress { width: 100%; height: 7px; overflow: hidden; border-radius: 99px; background: #252b32; }
.progress-bar { width: var(--progress, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--color-accent-strong), #ff8b45); box-shadow: 0 0 14px rgba(255, 90, 31, 0.4); transition: width 340ms ease; }
.scan-message { min-height: 34px; margin: 9px 0 0; color: var(--color-muted); font-size: 0.72rem; }
.scan-complete { color: var(--color-success); font-family: var(--font-mono); font-weight: 800; letter-spacing: 0.08em; }

.profile-card { margin-top: 18px; padding: 18px; border: 1px solid rgba(255, 90, 31, 0.22); border-radius: 16px; background: linear-gradient(135deg, rgba(255, 90, 31, 0.08), rgba(0, 0, 0, 0.12)); }
.profile-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.profile-heading h2 { margin: 0; font-size: 1rem; }
.file-code { color: var(--color-muted); font-family: var(--font-mono); font-size: 0.58rem; }
.profile-grid { display: grid; grid-template-columns: minmax(92px, 0.8fr) minmax(0, 1.4fr); gap: 9px 12px; margin: 0; font-size: 0.76rem; }
.profile-grid dt { color: var(--color-muted); }
.profile-grid dd { min-width: 0; margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.metric { color: var(--color-accent); font-family: var(--font-mono); font-size: 0.96rem; font-weight: 900; }
.danger-tag { display: inline-flex; min-height: 26px; align-items: center; padding: 3px 9px; border: 1px solid rgba(255, 112, 67, 0.38); border-radius: 99px; color: #ff9a78; background: rgba(255, 90, 31, 0.13); font-size: 0.7rem; font-weight: 900; letter-spacing: 0.08em; }

.verdicts { margin-top: 18px; padding: 0; list-style: none; }
.verdict { display: flex; gap: 8px; margin: 0 0 8px; color: var(--color-muted); font-size: 0.75rem; }
.verdict::before { color: var(--color-accent); content: ">"; font-family: var(--font-mono); font-weight: 900; }
.verdict-final { margin-top: 14px; color: var(--color-text); font-weight: 800; }

.button { display: inline-flex; width: 100%; min-height: 50px; align-items: center; justify-content: center; padding: 12px 16px; border: 1px solid transparent; border-radius: var(--radius-control); cursor: pointer; font-weight: 800; text-align: center; touch-action: manipulation; }
.button:disabled { cursor: default; opacity: 0.65; }
.button:focus-visible { outline: 3px solid rgba(255, 90, 31, 0.35); outline-offset: 3px; }
.button-primary { margin-top: 18px; color: #fff; background: linear-gradient(135deg, var(--color-accent), var(--color-accent-strong)); box-shadow: 0 10px 24px rgba(255, 61, 0, 0.22); }
.button-primary:active { transform: translateY(1px); }
.button-secondary { color: var(--color-text); border-color: var(--color-border); background: var(--color-surface-raised); }

.status-tag { display: inline-flex; min-height: 26px; align-items: center; padding: 4px 9px; border: 1px solid rgba(112, 223, 155, 0.3); border-radius: 99px; color: var(--color-success); background: rgba(112, 223, 155, 0.08); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; }
.test-title { margin: 18px 0 10px; font-size: clamp(1.5rem, 8vw, 2.2rem); line-height: 1.2; }

.task-screen { justify-content: flex-start; padding: clamp(12px, 4vh, 36px) 0 28px; }
.quiz-card { position: relative; overflow: hidden; }
.quiz-title { margin: 18px 0 8px; font-size: clamp(1.75rem, 9vw, 2.55rem); }
.quiz-intro { margin-bottom: 24px; color: var(--color-muted); font-size: 0.84rem; }
.quiz-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 8px; color: var(--color-muted); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.05em; }
.quiz-progress-head strong { color: var(--color-text); font-family: var(--font-mono); }
.quiz-progress { margin-bottom: 20px; }
.question-panel { min-width: 0; animation: question-in 260ms ease both; }
.question-count { margin-bottom: 8px; color: var(--color-accent); font-family: var(--font-mono); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; }
.question-title { margin-bottom: 20px; font-size: clamp(1.22rem, 6.3vw, 1.65rem); line-height: 1.35; overflow-wrap: anywhere; }
.identity-statement { margin: -4px 0 20px; padding: 15px; border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); border-radius: 4px var(--radius-control) var(--radius-control) 4px; color: #d9dde2; background: rgba(0, 0, 0, 0.2); font-family: var(--font-mono); font-size: 0.78rem; }
.answer-list { display: grid; gap: 10px; }
.answer-button { display: grid; width: 100%; min-height: 52px; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px 13px; border: 1px solid var(--color-border); border-radius: var(--radius-control); color: var(--color-text); background: rgba(25, 30, 36, 0.92); cursor: pointer; text-align: left; touch-action: manipulation; transition: border-color 160ms ease, background-color 160ms ease, transform 120ms ease; }
.answer-button:active { transform: scale(0.99); border-color: rgba(255, 90, 31, 0.65); background: var(--color-accent-soft); }
.answer-button:focus-visible { outline: 3px solid rgba(255, 90, 31, 0.35); outline-offset: 2px; }
.answer-button:disabled { cursor: default; opacity: 0.62; }
.answer-button.is-correct { border-color: rgba(112, 223, 155, 0.7); background: rgba(112, 223, 155, 0.1); opacity: 1; }
.answer-button.is-error { border-color: rgba(255, 112, 67, 0.85); background: rgba(255, 90, 31, 0.11); opacity: 1; animation: answer-shake 260ms ease both; }
.answer-letter { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border: 1px solid #3b444f; border-radius: 8px; color: var(--color-accent); background: rgba(0, 0, 0, 0.22); font-family: var(--font-mono); font-size: 0.72rem; font-weight: 900; }
.answer-feedback { display: none; min-height: 54px; margin-top: 14px; padding: 12px 13px; border-radius: var(--radius-control); font-size: 0.78rem; }
.answer-feedback.is-visible { display: flex; flex-direction: column; justify-content: center; gap: 2px; animation: feedback-in 180ms ease both; }
.answer-feedback strong { font-size: 0.78rem; }
.answer-feedback .feedback-metric { margin-top: 4px; color: var(--color-muted); font-family: var(--font-mono); font-size: 0.58rem; overflow-wrap: anywhere; }
.answer-feedback .feedback-system-tag { align-self: flex-start; margin-top: 5px; padding: 3px 6px; border: 1px solid rgba(255,177,62,.34); border-radius: 5px; color: #ffc66d; font-family: var(--font-mono); font-size: 0.5rem; letter-spacing: 0.05em; }
.answer-feedback.feedback-angel { border-color: rgba(255,190,91,.42); background: linear-gradient(135deg,rgba(255,190,91,.12),rgba(112,223,155,.07)); box-shadow: 0 0 18px rgba(255,177,62,.1); }
.answer-feedback.feedback-angel strong { color: #ffd28b; font-size: clamp(.9rem,4vw,1.05rem); text-shadow: 0 0 10px rgba(255,190,91,.22); }
.answer-feedback.feedback-angel strong::after { margin-left: 5px; content: "✨"; font-size: .8em; }
.feedback-success { border: 1px solid rgba(112, 223, 155, 0.28); color: var(--color-success); background: rgba(112, 223, 155, 0.08); }
.feedback-error { border: 1px solid rgba(255, 112, 67, 0.32); color: #ff9a78; background: rgba(255, 90, 31, 0.09); }
.text-button { display: block; min-height: 44px; margin: 18px auto -8px; padding: 8px 10px; border: 0; color: var(--color-muted); background: transparent; cursor: pointer; font-size: 0.72rem; text-decoration: underline; text-underline-offset: 3px; touch-action: manipulation; }
.text-button:focus-visible { outline: 2px solid rgba(255, 90, 31, 0.35); outline-offset: 2px; }

.result-card { text-align: center; }
.result-title { margin: 20px 0 24px; font-size: clamp(1.65rem, 8.5vw, 2.45rem); }
.score-block { display: flex; flex-direction: column; align-items: center; margin: 0 auto 24px; padding: 22px 12px; border-block: 1px solid var(--color-border); }
.score-block strong { color: var(--color-accent); font-family: var(--font-mono); font-size: clamp(3.5rem, 20vw, 5.3rem); line-height: 1; letter-spacing: -0.08em; text-shadow: 0 0 28px rgba(255, 90, 31, 0.25); }
.score-block span { margin-top: 8px; color: var(--color-muted); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.12em; }
.result-verdict { margin-bottom: 18px; }
.result-verdict p { margin-bottom: 4px; font-weight: 750; }
.anomaly-count { margin-bottom: 24px; color: var(--color-muted); font-family: var(--font-mono); font-size: 0.7rem; }
.anomaly-count strong { color: var(--color-danger); }

.game-card { position: relative; overflow: hidden; }
.game-warning { margin: -12px 0 22px; color: #ff9a78; font-family: var(--font-mono); font-size: 0.68rem; }
.rules-panel { padding: 18px; border: 1px solid var(--color-border); border-radius: 16px; background: rgba(0, 0, 0, 0.18); }
.rules-panel h2 { margin-bottom: 12px; font-size: 1rem; }
.rules-panel p { margin-bottom: 7px; color: var(--color-muted); font-size: 0.82rem; }
.rules-panel strong { color: var(--color-text); }
.rules-panel small { display: block; color: var(--color-accent); font-size: 0.68rem; }
.game-session[hidden], .rules-panel[hidden] { display: none; }
.game-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.game-stats > div { display: flex; min-width: 0; flex-direction: column; padding: 10px 12px; border: 1px solid var(--color-border); border-radius: var(--radius-control); background: rgba(0, 0, 0, 0.2); }
.game-stats span { color: var(--color-muted); font-size: 0.64rem; }
.game-stats strong { color: var(--color-text); font-family: var(--font-mono); font-size: 1.05rem; }
.game-alert { min-height: 24px; margin-bottom: 8px; color: var(--color-muted); font-family: var(--font-mono); font-size: 0.67rem; text-align: center; }
.game-alert.is-urgent { color: #ff9a78; font-weight: 800; }
.capture-zone { position: relative; width: 100%; height: clamp(300px, 58vh, 390px); min-height: 300px; overflow: hidden; border: 1px solid #333c46; border-radius: 16px; background: linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px), radial-gradient(circle at 50% 50%, rgba(255,90,31,0.07), transparent 62%), #0a0d11; background-size: 24px 24px, 24px 24px, auto, auto; isolation: isolate; }
.capture-zone::before, .capture-zone::after { position: absolute; z-index: -1; width: 22px; height: 22px; border-color: rgba(255, 90, 31, 0.6); content: ""; }
.capture-zone::before { top: 8px; left: 8px; border-top: 2px solid; border-left: 2px solid; }
.capture-zone::after { right: 8px; bottom: 8px; border-right: 2px solid; border-bottom: 2px solid; }
.corner-code { position: absolute; right: 9px; top: 7px; color: rgba(146, 156, 168, 0.48); font-family: var(--font-mono); font-size: 0.52rem; pointer-events: none; }
.capture-target { position: absolute; display: flex; width: 56px; height: 56px; align-items: center; justify-content: center; flex-direction: column; padding: 0; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 15px; color: var(--color-text); background: rgba(22, 27, 33, 0.82); cursor: pointer; touch-action: manipulation; animation: target-in 140ms ease both; }
.capture-target:focus-visible { outline: 3px solid rgba(255, 90, 31, 0.4); outline-offset: 2px; }
.capture-target:active { transform: scale(0.94); }
.jelly-target { border-color: rgba(255, 90, 31, 0.42); box-shadow: 0 0 18px rgba(255, 90, 31, 0.13); }
.target-emoji { font-size: 1.75rem; line-height: 1; }
.capture-target small { margin-top: 2px; color: var(--color-accent); font-size: 0.48rem; font-weight: 800; }
.game-feedback { display: flex; min-height: 52px; flex-direction: column; justify-content: center; margin-top: 10px; padding: 9px 11px; border: 1px solid var(--color-border); border-radius: var(--radius-control); color: var(--color-muted); background: rgba(0, 0, 0, 0.17); font-size: 0.7rem; overflow-wrap: anywhere; }
.game-feedback strong { color: var(--color-text); }
.game-feedback span { color: var(--color-muted); font-size: 0.64rem; }

.escape-card { position: relative; overflow: hidden; }
.escape-session[hidden], .rules-panel[hidden] { display: none; }
.escape-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 9px; }
.escape-stats > div { display: flex; min-width: 0; flex-direction: column; padding: 9px 11px; border: 1px solid var(--color-border); border-radius: var(--radius-control); background: rgba(0,0,0,0.2); }
.escape-stats span { color: var(--color-muted); font-size: 0.61rem; }
.escape-stats strong { font-family: var(--font-mono); font-size: 0.92rem; }
.escape-progress { margin-bottom: 10px; }
.target-message { display: flex; min-height: 61px; flex-direction: column; justify-content: center; margin-bottom: 10px; padding: 9px 11px; border: 1px solid var(--color-border); border-radius: var(--radius-control); background: rgba(0,0,0,0.18); overflow-wrap: anywhere; }
.target-message > span { color: var(--color-accent); font-family: var(--font-mono); font-size: 0.55rem; letter-spacing: 0.08em; }
.target-message strong { font-size: 0.76rem; }
.target-message small { color: var(--color-muted); font-size: 0.62rem; }
.target-message .emotion-analysis { display: block; margin-top: 7px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,.07); color: #606b77; font-family: var(--font-mono); font-size: 0.48rem; letter-spacing: 0.08em; }
.target-message .emotion-analysis b { color: #ff9b72; font-weight: 900; }
.reaction-sticker { position: absolute; z-index: 5; display: flex; width: min(148px,calc(100% - 16px)); min-height: 56px; align-items: center; gap: 7px; padding: 7px 9px; border: 3px solid #fff; border-radius: 12px; color: #111; background: #fffdf8; box-shadow: 0 7px 17px rgba(0,0,0,.4),0 0 0 1px rgba(0,0,0,.22); transform: rotate(var(--sticker-rotate)); pointer-events: none; animation: reaction-sticker-pop 1.05s ease both; }
.reaction-sticker span { flex: 0 0 auto; font-size: 1.5rem; line-height: 1; }
.reaction-sticker strong { font-family: Arial,"Microsoft YaHei",sans-serif; font-size: .8rem; font-weight: 950; line-height: 1.05; overflow-wrap: anywhere; }
.reaction-sticker.is-large strong { font-size: .9rem; }
.escape-zone { position: relative; width: 100%; height: clamp(280px, 52vh, 360px); min-height: 280px; overflow: hidden; border: 1px solid #333c46; border-radius: 16px; background: linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,0.025) 1px,transparent 1px), radial-gradient(circle at 50% 50%,rgba(255,90,31,0.07),transparent 62%),#0a0d11; background-size: 24px 24px,24px 24px,auto,auto; }
.wild-jelly { position: absolute; display: flex; width: 80px; height: 80px; align-items: center; justify-content: center; padding: 0; border: 1px solid rgba(255,90,31,0.5); border-radius: 45% 45% 42% 42%; color: var(--color-text); background: radial-gradient(circle at 50% 35%,rgba(255,255,255,0.1),transparent 30%),rgba(255,90,31,0.1); box-shadow: 0 0 24px rgba(255,90,31,0.18); cursor: pointer; font-size: 2.6rem; touch-action: manipulation; animation: jelly-arrive 260ms ease both; }
.wild-jelly:focus-visible { outline: 3px solid rgba(255,90,31,0.42); outline-offset: 2px; }
.wild-jelly.is-moving { animation: jelly-escape 280ms ease both; pointer-events: none; }
.wild-jelly.is-captured { animation: jelly-captured 520ms ease both; pointer-events: none; }
.capture-success { position: absolute; inset: 50% auto auto 50%; z-index: 2; display: flex; width: min(86%,260px); flex-direction: column; padding: 16px; border: 1px solid rgba(112,223,155,0.4); border-radius: 14px; color: var(--color-muted); background: rgba(10,14,17,0.94); transform: translate(-50%,-50%); text-align: center; }
.capture-success strong { color: var(--color-success); font-size: 1.15rem; }
.capture-success span { font-size: 0.72rem; }
.capture-success small { margin-top: 4px; font-size: 0.62rem; }
.capture-summary { display: grid; gap: 8px; margin: 0 0 22px; }
.capture-summary > div { display: flex; align-items: center; justify-content: space-between; padding: 11px 13px; border: 1px solid var(--color-border); border-radius: var(--radius-control); background: rgba(0,0,0,0.17); }
.capture-summary dt { color: var(--color-muted); font-size: 0.72rem; }
.capture-summary dd { margin: 0; color: var(--color-accent); font-family: var(--font-mono); font-weight: 900; }

.fortune-card { position: relative; overflow: hidden; }
.fortune-items { display: grid; gap: 5px; margin: 0 0 12px; padding-left: 20px; color: var(--color-muted); font-size: 0.78rem; }
.fortune-session[hidden], #fortune-final[hidden] { display: none; }
.slot-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(7px,3vw,12px); margin: 6px 0 18px; }
.slot-cell { display: flex; min-width: 0; aspect-ratio: 1 / 1.08; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #3a434e; border-radius: 14px; background: linear-gradient(180deg,#1d232a,#0b0e12 48%,#171c22); box-shadow: inset 0 0 18px rgba(0,0,0,0.55); font-size: clamp(2rem,12vw,3.2rem); }
.slot-cell.is-winning { border-color: rgba(246,196,72,0.78); box-shadow: 0 0 22px rgba(246,196,72,0.25),inset 0 0 18px rgba(255,170,40,0.12); animation: slot-win 700ms ease-in-out 2; }
.fortune-output { min-height: 154px; padding: 15px; border: 1px solid var(--color-border); border-radius: 14px; background: rgba(0,0,0,0.18); text-align: center; }
.fortune-output h2 { margin-bottom: 7px; font-size: 1.25rem; }
.fortune-output p { margin-bottom: 5px; font-size: 0.78rem; }
.fortune-output small { display: block; color: var(--color-muted); font-size: 0.66rem; }
.slot-loading { color: var(--color-accent); font-family: var(--font-mono); font-size: 0.65rem !important; letter-spacing: 0.05em; }
.fortune-crown { margin-bottom: 3px; font-size: 2.1rem; filter: drop-shadow(0 0 9px rgba(246,196,72,0.38)); }
.ssr-title { margin: 0 !important; color: #f6c448; font-family: var(--font-mono); font-size: clamp(2.6rem,16vw,4.2rem) !important; line-height: 1; text-shadow: 0 0 24px rgba(246,196,72,0.3); }
.ssr-reveal > h3 { margin: 4px 0 14px; }
.ssr-metrics { display: grid; gap: 4px; margin: 13px 0; padding: 12px; border-block: 1px solid var(--color-border); text-align: left; }
.ssr-metrics p { display: flex; justify-content: space-between; gap: 10px; margin: 0; }
.ssr-metrics strong { color: #f6c448; overflow-wrap: anywhere; text-align: right; }
.calibration-log { margin: 12px 0; color: var(--color-muted); font-family: var(--font-mono); text-align: left; }
.calibration-log p { margin-bottom: 3px; font-size: 0.64rem; }
.final-fortune { margin-top: 12px !important; color: #f6c448; font-family: var(--font-mono); font-weight: 900; }
.ssr-card { border-color: rgba(246,196,72,0.32); }
.confetti-layer { position: fixed; inset: 0; z-index: 20; overflow: hidden; pointer-events: none; }
.confetti-piece { position: absolute; top: -14px; width: 7px; height: 12px; border-radius: 2px; background: #f6c448; animation: confetti-fall 2s var(--delay) ease-in forwards; }
.confetti-piece.tone-1 { background: var(--color-accent); }
.confetti-piece.tone-2 { background: #fff0a6; }

.final-report-card { position: relative; overflow: hidden; }
.final-summary { display: grid; gap: 7px; margin: 0 0 18px; }
.final-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; border: 1px solid var(--color-border); border-radius: 10px; background: rgba(0,0,0,0.16); }
.final-summary dt { color: var(--color-muted); font-size: 0.69rem; }
.final-summary dd { margin: 0; font-size: 0.76rem; font-weight: 850; text-align: right; }
.qualification { display: flex; flex-direction: column; gap: 5px; margin-bottom: 16px; padding: 15px; border: 1px solid rgba(255,90,31,0.3); border-radius: 14px; background: var(--color-accent-soft); }
.qualification strong { color: var(--color-text); font-size: 0.95rem; }
.qualification small { color: var(--color-muted); font-size: 0.64rem; }
.certified-stamp { display: flex; flex-direction: column; align-items: center; margin: 0 auto 20px; padding: 12px; border: 2px solid rgba(112,223,155,0.62); border-radius: 12px; color: var(--color-success); transform: rotate(-1.5deg); text-align: center; }
.certified-stamp span { font-family: var(--font-mono); font-size: 1.25rem; font-weight: 950; letter-spacing: 0.16em; }
.certified-stamp strong { font-size: 0.68rem; }
.final-generator { padding-top: 16px; border-top: 1px solid var(--color-border); }
.final-generator p { min-height: 34px; margin: 9px 0 0; color: var(--color-muted); font-family: var(--font-mono); font-size: 0.65rem; }

.birthday-screen { position: relative; display: grid; width: min(100%,560px); min-height: calc(100vh - (var(--page-pad) * 2)); min-height: calc(100dvh - (var(--page-pad) * 2)); margin: auto; padding: clamp(18px,5vh,42px) 0 30px; overflow: hidden; border-radius: 24px; background: radial-gradient(circle at 50% 22%,rgba(255,191,73,0.25),transparent 32%),radial-gradient(circle at 15% 58%,rgba(255,77,133,0.16),transparent 26%),radial-gradient(circle at 85% 65%,rgba(93,205,255,0.15),transparent 25%),linear-gradient(180deg,#19131a,#0d0d12 75%); animation: birthday-fade 500ms ease both; }
.birthday-content { position: relative; z-index: 2; width: min(100%,480px); margin: auto; padding: 0 clamp(14px,4vw,22px); text-align: center; }
.birthday-crown { margin-bottom: 7px; font-size: clamp(2.5rem,14vw,4.4rem); filter: drop-shadow(0 0 18px rgba(246,196,72,0.55)); animation: crown-drop 900ms 500ms cubic-bezier(.2,.8,.2,1.15) both; }
.cake-figure { margin: 0 0 18px; }
.cake-figure img { width: 100%; max-width: 100%; height: auto; border: 1px solid rgba(255,255,255,0.16); border-radius: 22px; box-shadow: 0 24px 65px rgba(0,0,0,0.48),0 0 35px rgba(255,117,55,0.18); animation: cake-in 800ms 700ms ease both; }
.cake-figure figcaption { min-height: 220px; padding: 80px 20px; border: 1px dashed rgba(246,196,72,0.45); border-radius: 22px; color: #fff0a6; background: rgba(255,90,31,0.08); font-weight: 900; }
.birthday-button { color: #201207; background: linear-gradient(135deg,#ffd45b,#ff8b3d); box-shadow: 0 12px 30px rgba(255,139,61,0.25); }
.birthday-footer { margin: 18px 0 0; color: rgba(255,255,255,0.38); font-family: var(--font-mono); font-size: 0.54rem; letter-spacing: 0.08em; }
.birthday-confetti { position: fixed; inset: 0; z-index: 30; overflow: hidden; pointer-events: none; }
.birthday-confetti-piece { position: absolute; top: -16px; width: 8px; height: 14px; border-radius: 2px; background: #ffd45b; animation: birthday-confetti-fall 3.1s var(--delay) ease-in forwards; }
.birthday-confetti-piece.shade-1 { background: #ff5a1f; }.birthday-confetti-piece.shade-2 { background: #ff4d85; }.birthday-confetti-piece.shade-3 { background: #5dcdff; }
.falling-jelly { position: fixed; top: -55px; z-index: 35; pointer-events: none; font-size: 2.25rem; filter: drop-shadow(0 5px 8px rgba(0,0,0,0.28)); animation: jelly-fall 2.2s ease-in forwards; }

noscript { display: block; padding: 16px; color: #fff; background: #9d2500; text-align: center; }

@keyframes screen-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes status-pulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
@keyframes scan-line { from { transform: translateY(0); } to { transform: translateY(760px); } }
@keyframes question-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes feedback-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes answer-shake { 0%, 100% { transform: translateX(0); } 30% { transform: translateX(-4px); } 65% { transform: translateX(4px); } }
@keyframes target-in { from { opacity: 0; transform: scale(0.82); } to { opacity: 1; transform: scale(1); } }
@keyframes jelly-arrive { from { opacity: 0; transform: scale(0.7) rotate(-5deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes jelly-escape { 0% { opacity: 1; transform: scale(1); } 55% { opacity: 0.35; transform: scale(0.72,0.55); } 100% { opacity: 0; transform: scale(0.55); } }
@keyframes jelly-captured { 0%,100% { transform: scale(1); } 35% { transform: scale(1.2,0.82); } 65% { transform: scale(0.9,1.16); } }
@keyframes reaction-sticker-pop { 0% { opacity: 0; transform: rotate(var(--sticker-rotate)) scale(.7); } 18%,72% { opacity: 1; transform: rotate(var(--sticker-rotate)) scale(1); } 100% { opacity: 0; transform: translateY(-8px) rotate(var(--sticker-rotate)); } }
@keyframes slot-win { 0%,100% { transform: scale(1); } 50% { transform: scale(1.055); } }
@keyframes confetti-fall { to { transform: translate3d(var(--drift),105vh,0) rotate(540deg); opacity: 0.3; } }
@keyframes birthday-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cake-in { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }
@keyframes crown-drop { from { opacity: 0; transform: translateY(-70px) rotate(-10deg); } to { opacity: 1; transform: none; } }
@keyframes birthday-confetti-fall { to { transform: translate3d(var(--drift),108vh,0) rotate(640deg); opacity: .25; } }
@keyframes jelly-fall { to { transform: translateY(112vh) rotate(var(--fall-rotate)); opacity: .4; } }

@media (max-width: 340px) {
  .card { padding: 18px 16px; }
  .profile-card { padding: 15px 13px; }
  .profile-grid { grid-template-columns: 86px minmax(0, 1fr); gap: 8px; font-size: 0.72rem; }
}

/* UI POLISH 1.0 — corporate system gradually corrupted by jelly */
.eyebrow,
.status-tag,
.online-indicator,
.track-title,
.question-count,
.section-label { font-family: var(--font-mono); }

.card {
  border-color: rgba(120, 133, 148, 0.26);
  background: linear-gradient(145deg, rgba(25, 30, 37, 0.985), rgba(12, 15, 19, 0.99));
  box-shadow: var(--shadow-card), inset 0 1px var(--panel-highlight);
}

.button { letter-spacing: 0.015em; transition: transform 150ms ease, border-color 180ms ease, filter 180ms ease; }
.button:active { transform: scale(0.985); filter: brightness(.94); }
.button-primary { background: var(--color-accent); box-shadow: 0 10px 25px rgba(255, 74, 20, 0.24), inset 0 1px rgba(255,255,255,.18); }
.button-secondary { background: #171c22; box-shadow: inset 0 1px var(--panel-highlight); }
.status-tag { border-radius: var(--radius-pill); }

.certification-track { margin: -2px 0 13px; padding: 9px 11px 8px; border: 1px solid rgba(120,133,148,.2); border-radius: 11px; background: rgba(7,9,12,.52); }
.track-title { display: block; margin-bottom: 7px; color: #697481; font-size: .51rem; letter-spacing: .11em; }
.certification-track ol { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0; padding: 0; list-style: none; }
.certification-track li { position: relative; display: flex; min-width: 0; justify-content: center; color: #59636e; font-family: var(--font-mono); font-size: .58rem; }
.certification-track li:not(:last-child)::after { position: absolute; top: 50%; left: calc(50% + 13px); width: calc(100% - 26px); height: 1px; background: #343c45; content: ""; }
.certification-track li span { position: relative; z-index: 1; display: grid; min-width: 25px; height: 22px; place-items: center; border: 1px solid #343c45; border-radius: 7px; background: #11151a; }
.certification-track li.is-complete { color: var(--color-success); }
.certification-track li.is-complete span { border-color: rgba(112,223,155,.38); background: rgba(112,223,155,.08); }
.certification-track li.is-complete:not(:last-child)::after { background: rgba(112,223,155,.38); }
.certification-track li.is-current { color: #fff; }
.certification-track li.is-current span { border-color: var(--color-accent); background: var(--color-accent); box-shadow: 0 0 13px rgba(255,90,31,.28); }

/* Intro: controlled and institutional */
.intro-card { border-top-color: rgba(255,90,31,.42); }
.intro-card::after { position: absolute; right: -48px; bottom: -58px; width: 130px; height: 130px; border: 1px solid rgba(255,90,31,.09); border-radius: 50%; content: ""; pointer-events: none; }
.terminal { border-color: rgba(103,117,131,.28); box-shadow: inset 0 0 22px rgba(0,0,0,.28); }
.profile-card { box-shadow: inset 0 1px rgba(255,255,255,.035); }
.profile-grid .metric { font-size: 1.08rem; text-shadow: 0 0 14px rgba(255,90,31,.24); }
.danger-tag { box-shadow: 0 0 12px rgba(255,90,31,.11); }

/* Task 01: still corporate, with the first trace of jelly */
.quiz-card::after { position: absolute; right: -54px; bottom: -62px; width: 145px; height: 145px; border-radius: 48% 52% 56% 44%; background: radial-gradient(circle at 35% 28%,rgba(255,255,255,.09),transparent 15%),rgba(255,90,31,.045); content: ""; pointer-events: none; }
.question-panel { position: relative; z-index: 1; padding: 17px; border: 1px solid rgba(120,133,148,.2); border-radius: 16px; background: rgba(4,6,8,.24); }
.answer-button { box-shadow: inset 0 1px rgba(255,255,255,.035); }
.answer-feedback::before { display: block; margin-bottom: 3px; font-family: var(--font-mono); font-size: .54rem; font-weight: 900; letter-spacing: .1em; }
.feedback-success::before { content: "SYSTEM RESPONSE · ACCEPTED"; }
.feedback-error::before { content: "SYSTEM RESPONSE · HIGH RISK"; }
.score-block strong { font-size: clamp(4.2rem,23vw,6rem); }

/* Task 02: the detection system is visibly contaminated */
.game-card { border-color: rgba(255,90,31,.3); box-shadow: var(--shadow-card), var(--glow-orange), inset 0 1px var(--panel-highlight); }
.game-card::before { position: absolute; right: -55px; top: 70px; width: 150px; height: 120px; border-radius: 55% 45% 52% 48%; background: rgba(255,111,145,.035); content: ""; pointer-events: none; }
.capture-zone { border-color: rgba(255,90,31,.38); box-shadow: inset 0 0 28px rgba(255,90,31,.04); }
.corner-code { color: rgba(255,139,82,.62); letter-spacing: .08em; }
.jelly-target { animation: target-in 140ms ease both, jelly-idle 1.7s 150ms ease-in-out infinite; }

/* Task 03: an absurdly serious target-tracking terminal */
.escape-card { border-color: rgba(255,90,31,.38); box-shadow: var(--shadow-card), 0 0 34px rgba(255,90,31,.14), inset 0 1px var(--panel-highlight); }
.target-identity { display: grid; grid-template-columns: .85fr 1.55fr .8fr; gap: 6px; margin-bottom: 9px; }
.target-identity span { display: flex; min-width: 0; flex-direction: column; padding: 8px; border: 1px solid rgba(255,90,31,.22); border-radius: 9px; background: rgba(255,90,31,.055); }
.target-identity small { color: var(--color-muted); font-family: var(--font-mono); font-size: .46rem; }
.target-identity strong { color: #ffb090; font-family: var(--font-mono); font-size: clamp(.5rem,2.5vw,.63rem); overflow-wrap: anywhere; }
.escape-zone { border-color: rgba(255,90,31,.46); box-shadow: inset 0 0 35px rgba(255,90,31,.055); }
.wild-jelly { border-radius: 47% 47% 44% 44%; box-shadow: 0 0 0 8px rgba(255,90,31,.045),0 0 0 16px rgba(255,90,31,.025),0 0 25px rgba(255,90,31,.22); }
.wild-jelly::before,.wild-jelly::after { position: absolute; inset: -13px; border: 1px solid rgba(255,90,31,.28); border-radius: 50%; content: ""; pointer-events: none; }
.wild-jelly::after { inset: -22px; border-style: dashed; opacity: .42; }
.target-message { border-left: 3px solid var(--color-accent); }

/* Task 04: metallic system shell, celebration leaks through on SSR */
.fortune-card { border-color: rgba(255,129,66,.36); box-shadow: var(--shadow-card),0 0 35px rgba(255,90,31,.12),inset 0 1px var(--panel-highlight); }
.slot-row { padding: 10px; border: 1px solid rgba(255,90,31,.25); border-radius: 17px; background: linear-gradient(180deg,#0b0d10,#1b2026); box-shadow: inset 0 0 25px rgba(0,0,0,.52); }
.slot-cell { position: relative; border-color: rgba(255,128,66,.38); }
.slot-cell::before,.slot-cell::after { position: absolute; left: 0; width: 100%; height: 1px; background: rgba(255,255,255,.07); content: ""; }
.slot-cell::before { top: 26%; }.slot-cell::after { bottom: 26%; }
.slot-cell.is-winning { background: radial-gradient(circle,#493614,#15110a 70%); }
.ssr-reveal { padding: 8px; border-radius: 16px; background: radial-gradient(circle at 50% 8%,rgba(246,196,72,.16),transparent 42%); }

/* Final report: deliberately formal again */
.final-report-card { border-color: rgba(112,223,155,.28); background: linear-gradient(145deg,rgba(24,29,35,.99),rgba(10,13,16,.995)); }
.final-summary > div { border-radius: 7px; }
.certified-stamp { width: 142px; height: 142px; justify-content: center; border-width: 3px; border-radius: 50%; box-shadow: inset 0 0 0 5px rgba(112,223,155,.06),0 0 22px rgba(112,223,155,.08); }
.final-generator { transition: filter 400ms ease; }

/* Birthday ending: the corporate system finally loses control */
.birthday-screen { width: min(100%,620px); border: 1px solid rgba(255,149,91,.22); background: radial-gradient(circle at 50% 5%,rgba(255,255,255,.95),transparent 28%),radial-gradient(circle at 12% 40%,rgba(255,105,145,.2),transparent 30%),radial-gradient(circle at 88% 58%,rgba(255,194,65,.25),transparent 28%),linear-gradient(180deg,#fff7e9 0%,#ffe2cf 48%,#ffc9c5 100%); box-shadow: 0 24px 70px rgba(49,20,8,.22); }
.cake-figure img { border: 4px solid rgba(255,255,255,.82); box-shadow: 0 26px 60px rgba(145,55,18,.25),0 0 40px rgba(255,147,73,.24); }
.birthday-button { border: 1px solid rgba(172,62,19,.16); color: #5c210d; background: linear-gradient(135deg,#ffd94f,#ff8a40); box-shadow: 0 13px 28px rgba(205,80,26,.24),inset 0 1px rgba(255,255,255,.6); }
.birthday-footer { color: rgba(107,48,30,.48); }
.cake-figure figcaption { color: #b92a22; border-color: rgba(201,45,38,.3); background: rgba(255,255,255,.4); }

@keyframes jelly-idle { 0%,100% { transform: scale(1); } 50% { transform: scale(1.04,.96); } }

/* UI 2.0 — tighter games, stronger SSR cadence, full birthday takeover */
.app-shell::after { position: fixed; inset: 0; z-index: 100; background: #050608; opacity: 0; content: ""; pointer-events: none; transition: opacity 180ms ease; }
.app-shell.is-blackout::after { opacity: 1; }

.capture-zone { height: clamp(220px,34vh,270px); min-height: 220px; }
.zone-scan-line { position: absolute; z-index: 0; top: -2px; left: 0; width: 100%; height: 1px; opacity: .26; background: linear-gradient(90deg,transparent,rgba(255,126,72,.8),transparent); box-shadow: 0 0 7px rgba(255,90,31,.22); animation: zone-scan 3.8s linear infinite; pointer-events: none; }
.capture-target { width: 54px; height: 54px; }
.jelly-target { width: 62px; height: 62px; border-color: rgba(255,105,43,.54); box-shadow: 0 0 20px rgba(255,90,31,.18); }
.jelly-target .target-emoji { font-size: 1.95rem; }
.tap-float-feedback { position: absolute; z-index: 7; min-width: 74px; padding: 4px 7px; border: 1px solid rgba(255,140,80,.5); border-radius: 7px; color: #ffd1b8; background: rgba(17,20,24,.94); box-shadow: 0 5px 14px rgba(0,0,0,.32); font-family: var(--font-mono); font-size: .55rem; font-weight: 900; pointer-events: none; animation: tap-feedback-up 520ms ease-out both; }

.escape-zone { height: clamp(200px,30vh,238px); min-height: 200px; }
.reaction-sticker { width: min(132px,calc(100% - 16px)); min-height: 54px; padding: 6px 8px; }
.reaction-sticker span { font-size: 1.35rem; }
.reaction-sticker strong { font-size: .75rem; }

.fortune-card { transition: background 300ms ease,box-shadow 300ms ease; }
.fortune-card.is-ssr-dim { background: linear-gradient(145deg,#111216,#090a0c); box-shadow: var(--shadow-card),0 0 42px rgba(246,196,72,.11); }
.slot-row { position: relative; transition: transform 240ms ease,border-color 280ms ease,box-shadow 320ms ease; }
.slot-row.is-jackpot-pulse { animation: jackpot-pulse 420ms ease both; }
.slot-row.is-gold-stage { border-color: rgba(246,196,72,.78); box-shadow: inset 0 0 25px rgba(0,0,0,.52),0 0 38px rgba(246,196,72,.25); }
.slot-row.is-gold-stage::after { position: absolute; inset: -38px -22px; z-index: -1; border-radius: 50%; background: radial-gradient(circle,rgba(246,196,72,.2),transparent 68%); content: ""; pointer-events: none; }
.fortune-output.is-ssr-stage { min-height: 72px; transition: min-height 300ms ease,border-color 300ms ease; }
.ssr-step { opacity: 0; transform: translateY(7px) scale(.96); }
.ssr-step.is-visible { animation: ssr-step-in 300ms cubic-bezier(.2,.8,.2,1.12) both; }
.ssr-king { margin: 4px 0 14px; }

.app-shell.birthday-mode { width: 100%; min-height: 100vh; min-height: 100dvh; padding: 0; color: #4c2418; background: radial-gradient(circle at 50% 2%,rgba(255,255,255,.95),transparent 28%),radial-gradient(circle at 85% 48%,rgba(255,181,84,.22),transparent 28%),linear-gradient(180deg,#fffaf0 0%,#ffe4cf 52%,#ffd0d1 100%); }
.app-shell.birthday-mode::before { display: none; }
.birthday-screen { width: 100%; max-width: none; min-height: 100vh; min-height: 100dvh; padding: max(12px,env(safe-area-inset-top)) 0 max(16px,env(safe-area-inset-bottom)); overflow: hidden; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.birthday-content { width: 96%; max-width: 580px; margin: 0 auto; padding: 0; }
.birthday-mode-label { margin: 0 0 2px; color: rgba(120,58,29,.58); font-family: var(--font-mono); font-size: clamp(.52rem,2.5vw,.65rem); font-weight: 900; letter-spacing: .12em; }
.birthday-crown { margin: 0 0 5px; font-size: clamp(2rem,10vw,3.2rem); }
.cake-figure { width: 100%; margin: 0 auto 14px; }
.cake-figure img { width: 100%; border: 2px solid rgba(255,255,255,.78); border-radius: 18px; box-shadow: 0 20px 48px rgba(145,55,18,.22),0 0 28px rgba(255,147,73,.18); animation-delay: 260ms; }
.birthday-button { width: min(94%,460px); min-height: 52px; border-radius: 999px; }
.birthday-footer { margin: 12px 0 0; color: rgba(107,48,30,.46); }
.birthday-confetti-piece { width: 7px; height: 11px; }
.falling-jelly { font-size: 1.85rem; }

@keyframes zone-scan { from { transform: translateY(0); } to { transform: translateY(272px); } }
@keyframes tap-feedback-up { 0% { opacity: 0; transform: translateY(4px) scale(.92); } 18%,65% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-12px); } }
@keyframes jackpot-pulse { 0%,100% { transform: scale(1); } 48% { transform: scale(1.025); } }
@keyframes ssr-step-in { from { opacity: 0; transform: translateY(7px) scale(.96); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .scan-line, .zone-scan-line { display: none; }
  .answer-button.is-error { animation: none; }
  .capture-target { animation: none; }
  .jelly-target { animation: none; }
  .wild-jelly, .wild-jelly.is-moving, .wild-jelly.is-captured { animation: none; }
  .reaction-sticker { transform: none; animation: feedback-in 700ms ease both; }
  .slot-cell.is-winning, .slot-row.is-jackpot-pulse, .ssr-step.is-visible { animation: none; opacity: 1; transform: none; }
  .confetti-layer { display: none; }
  .birthday-crown, .cake-figure img { animation: none; }
  .birthday-confetti, .falling-jelly { display: none; }
}
