:root {
  --bg: #080b1d;
  --panel: rgba(18, 24, 58, .9);
  --ink: #f7f8ff;
  --muted: #a8afd2;
  --cyan: #29e6ff;
  --purple: #8b5cff;
  --pink: #ff4eb8;
  --lime: #78f78d;
  --danger: #ff516b;
  --yellow: #ffd84a;
  font-family: Inter, ui-rounded, "Hiragino Sans", "Yu Gothic UI", Meiryo, system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { width: 100%; min-width: 280px; height: 100%; margin: 0; overflow: hidden; }
body { overscroll-behavior: none; user-select: none; -webkit-user-select: none; touch-action: manipulation; }
button { color: inherit; font: inherit; -webkit-tap-highlight-color: transparent; }
button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

#app {
  position: relative; width: 100%; height: 100%; min-height: 100dvh; overflow: hidden;
  background:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    radial-gradient(circle at 50% 30%, #18235b 0, #0b102c 36%, #070918 75%);
  background-size: 42px 42px, 42px 42px, auto;
}
#app::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow: inset 0 0 110px rgba(0,0,0,.65); }
.ambient { position:absolute; width:40vmax; height:40vmax; border-radius:50%; filter:blur(80px); opacity:.16; pointer-events:none; animation: drift 10s ease-in-out infinite alternate; }
.ambient-a { left:-20vmax; top:-20vmax; background:var(--purple); }
.ambient-b { right:-22vmax; bottom:-25vmax; background:var(--cyan); animation-delay:-5s; }
.particles { position:absolute; inset:0; z-index:20; pointer-events:none; overflow:hidden; }
.particle { position:absolute; width:8px; height:8px; border-radius:2px; background:var(--particle, #fff); animation: burst .75s cubic-bezier(.1,.7,.2,1) forwards; }

.brand-bar { position:absolute; z-index:30; top:0; left:0; right:0; height:56px; display:flex; align-items:center; justify-content:space-between; padding: max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left)); pointer-events:none; }
.mini-logo { font-weight:1000; font-size:14px; letter-spacing:1px; opacity:.9; }
.logo-bolt { display:inline-grid; place-items:center; width:23px; height:23px; border-radius:7px; margin-right:5px; color:#091029; background:linear-gradient(135deg,var(--cyan),#fff); transform:skew(-7deg); }
.icon-button { pointer-events:auto; width:38px; height:38px; border:1px solid rgba(255,255,255,.15); border-radius:12px; background:rgba(10,13,35,.55); cursor:pointer; box-shadow:0 8px 25px #0004; }
.icon-button.muted { opacity:.55; filter:grayscale(1); }

main { position:relative; z-index:2; width:100%; height:100%; }
.screen { display:none; width:100%; height:100%; padding:64px 18px max(16px, env(safe-area-inset-bottom)); overflow:hidden; }
.screen.active { display:flex; animation: screenIn .45s ease-out both; }

.boot-screen { flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; }
.boot-screen b { font-size:18px; letter-spacing:.08em; }
.boot-screen small { color:var(--cyan); font-size:9px; font-weight:900; letter-spacing:.22em; }
.boot-mark { display:grid; place-items:center; width:84px; height:84px; margin-bottom:5px; border:1px solid #29e6ff66; border-radius:26px; background:linear-gradient(145deg,#24dfff,#99ffd9); box-shadow:0 0 45px #29e6ff55; animation:pulse 1.2s ease-in-out infinite; transform:skew(-7deg); }
.boot-mark span { color:#091029; font-size:45px; font-weight:1000; }

.start-screen { flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; }
.hero-kicker { font-size:11px; font-weight:900; letter-spacing:2px; color:var(--cyan); }
.live-dot { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:var(--lime); box-shadow:0 0 12px var(--lime); animation:pulse 1.2s infinite; }
h1 { margin:0; line-height:.8; transform:skew(-4deg); text-shadow:0 8px 35px #0009; }
h1 span, h1 strong { display:block; font-style:italic; font-weight:1000; letter-spacing:-4px; }
h1 span { font-size:clamp(47px, 10vw, 82px); }
h1 strong { font-size:clamp(55px, 12vw, 98px); color:transparent; background:linear-gradient(105deg,var(--cyan),#6cffca 48%,var(--yellow)); -webkit-background-clip:text; background-clip:text; filter:drop-shadow(0 0 17px #29e6ff55); }
.hero-copy { margin:2px 0 4px; color:var(--muted); font-size:clamp(12px,2.4vw,15px); line-height:1.55; }
.hero-copy b { color:#fff; }
.how-card { width:min(570px,96vw); border:1px solid #788cff3b; border-radius:18px; padding:12px 15px; text-align:left; background:linear-gradient(145deg,rgba(24,30,70,.85),rgba(12,16,43,.8)); box-shadow:0 18px 60px #0007, inset 0 1px #ffffff18; }
.how-title { display:flex; justify-content:space-between; color:var(--cyan); font-size:10px; font-weight:950; letter-spacing:1.7px; border-bottom:1px solid #ffffff13; padding-bottom:8px; }
.how-title b { color:var(--yellow); }
.how-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:10px; }
.how-steps>div { display:flex; align-items:center; gap:8px; min-width:0; }
.how-steps i { flex:none; display:grid; place-items:center; width:27px; height:27px; border-radius:8px; font-style:normal; font-size:11px; font-weight:900; color:#0b112d; background:linear-gradient(135deg,var(--cyan),#fff); box-shadow:0 0 14px #29e6ff33; }
.how-steps p { margin:0; min-width:0; }
.how-steps p b,.how-steps p small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.how-steps p b { font-size:11px; }
.how-steps p small { color:var(--muted); font-size:8px; margin-top:2px; }
.primary-button { position:relative; width:min(370px,90vw); min-height:62px; border:0; border-radius:17px; padding:10px 20px; overflow:hidden; cursor:pointer; color:#071024; background:linear-gradient(105deg,#2ce3ff,#71f4c6 55%,#d6ff74); box-shadow:0 13px 34px #25e9df35, inset 0 2px #fff9; transition:transform .12s,filter .12s; }
.primary-button::before { content:""; position:absolute; inset:-50%; background:linear-gradient(110deg,transparent 35%,#fff8 48%,transparent 60%); transform:translateX(-60%); animation:shine 2.4s infinite; }
.primary-button:hover { transform:translateY(-2px) scale(1.01); filter:brightness(1.08); }
.primary-button:active { transform:scale(.97); }
.primary-button span,.primary-button b { position:relative; display:block; }
.primary-button span { font-size:17px; font-weight:1000; }
.primary-button b { font-size:9px; letter-spacing:2px; opacity:.65; margin-top:2px; }
.control-hint { margin:0; color:#747caa; font-size:9px; letter-spacing:.5px; }

.game-screen { flex-direction:column; padding:54px max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); }
.hud { width:min(100%,1040px); margin:0 auto; min-height:58px; display:grid; grid-template-columns:1fr 1fr 1.3fr 70px; gap:8px; align-items:stretch; }
.hud-item { padding:7px 11px; border:1px solid #7586d72b; border-radius:13px; background:#111635cc; box-shadow:inset 0 1px #fff1; }
.hud-item>span { display:block; color:#8992be; font-size:8px; font-weight:900; letter-spacing:1.2px; }
.hud-item>b { display:block; margin-top:2px; font-size:clamp(15px,2.8vw,22px); white-space:nowrap; }
.score-box b { color:var(--cyan); }.money-box b { color:var(--lime); }
.trust-line { display:flex; align-items:center; gap:7px; margin-top:5px; }
.trust-line b { width:27px; font-size:15px; }
.trust-meter { flex:1; height:7px; border-radius:9px; background:#272d51; overflow:hidden; }
.trust-meter i { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--pink),var(--lime)); border-radius:inherit; transition:width .25s; }
.clock { display:flex; align-items:center; justify-content:center; flex-direction:column; border:1px solid #ffdc6273; border-radius:15px; background:radial-gradient(circle,#4b3d1e,#191a35); box-shadow:0 0 23px #ffd84a1d; }
.clock span { font-size:28px; line-height:.85; font-weight:1000; color:var(--yellow); font-variant-numeric:tabular-nums; }
.clock small { margin-top:4px; font-size:7px; letter-spacing:1.5px; color:#d6bd66; }
.clock.danger { animation:clockDanger .5s infinite alternate; }

.game-stage { position:relative; flex:1; width:min(100%,1040px); min-height:0; margin:9px auto 0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.task-card { position:relative; z-index:2; width:min(500px,96%); min-height:245px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:18px 26px 15px; border:1px solid #7185f252; border-radius:24px; text-align:center; background:linear-gradient(150deg,rgba(30,38,87,.96),rgba(13,17,46,.97)); box-shadow:0 24px 70px #0009, inset 0 1px #fff2, 0 0 35px #465cff17; overflow:hidden; transform-origin:50% 80%; }
.task-card::before { content:""; position:absolute; inset:0; opacity:.13; background:linear-gradient(115deg,transparent 20%,#fff 48%,transparent 55%); transform:translateX(-100%); animation:cardScan 2.5s infinite; }
.task-card.danger-card { border-color:#ff526d8f; box-shadow:0 24px 70px #0009, inset 0 1px #fff2,0 0 32px #ff4f6e33; }
.task-card.enter { animation:cardEnter .25s cubic-bezier(.2,1.5,.4,1) both; }
.task-card.exit-good { animation:exitGood .3s ease-in both; }
.task-card.exit-bad { animation:exitBad .35s ease-in both; }
.card-topline { position:absolute; top:13px; left:17px; right:17px; display:flex; justify-content:space-between; font-size:8px; font-weight:900; letter-spacing:1.4px; color:#7681ae; }
.urgency { color:var(--cyan); }
.task-icon { font-size:39px; filter:drop-shadow(0 8px 10px #0007); }
.task-category { color:var(--cyan); font-size:9px; font-weight:950; letter-spacing:1.7px; margin-top:2px; }
.task-card h2 { margin:7px 0 5px; max-width:100%; font-size:clamp(18px,3.6vw,25px); line-height:1.2; }
.task-card p { margin:0 0 14px; min-height:2.6em; color:#bac1df; font-size:clamp(11px,2.3vw,13px); line-height:1.45; }
.deadline-label { width:100%; display:flex; justify-content:space-between; color:#7780aa; font-size:8px; font-weight:900; letter-spacing:1px; }
.deadline-label b { color:var(--yellow); font-variant-numeric:tabular-nums; }
.deadline-track { width:100%; height:7px; margin-top:5px; overflow:hidden; border-radius:9px; background:#2a2f50; }
.deadline-track i { display:block; width:100%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--danger),var(--yellow),var(--lime)); transform-origin:left; transition:background .15s; }
.route-prompt { width:min(720px,96%); display:flex; align-items:center; gap:10px; margin:7px 0; color:#9ba4ce; font-size:9px; font-weight:900; letter-spacing:1.3px; }
.route-prompt span { flex:1; height:1px; background:linear-gradient(90deg,transparent,#526099); }.route-prompt span:last-child { transform:scaleX(-1); }
.agent-grid { z-index:3; width:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.agent { position:relative; min-width:0; min-height:120px; padding:11px 8px 9px; border:1px solid var(--agent-color); border-radius:17px; cursor:pointer; background:linear-gradient(145deg,color-mix(in srgb,var(--agent-color) 15%,#111634),#0d112a 65%); box-shadow:inset 0 1px #fff2; transition:transform .12s,box-shadow .12s,filter .12s; overflow:hidden; }
.agent::after { content:""; position:absolute; left:15%; right:15%; bottom:-18px; height:30px; background:var(--agent-color); filter:blur(22px); opacity:.18; }
.agent:hover,.agent.selected { transform:translateY(-4px); box-shadow:0 9px 24px color-mix(in srgb,var(--agent-color) 23%,transparent),inset 0 1px #fff3; filter:brightness(1.12); }
.agent:active { transform:scale(.95); }
.agent.hit { animation:agentHit .35s ease; }.agent.miss { animation:agentMiss .35s ease; }
.agent-dev { --agent-color:#28dcff; }.agent-research { --agent-color:#a873ff; }.agent-content { --agent-color:#ff62bd; }.agent-guard { --agent-color:#ffd44e; }
.agent kbd { position:absolute; left:8px; top:8px; display:grid; place-items:center; width:20px; height:20px; border:1px solid #fff4; border-radius:6px; font:800 9px inherit; color:#c6cbee; background:#05081b99; }
.agent-emoji { display:block; font-size:31px; line-height:1.15; filter:drop-shadow(0 7px 7px #0007); }
.status-dot { position:absolute; right:10px; top:10px; width:7px; height:7px; border-radius:50%; background:var(--lime); box-shadow:0 0 9px var(--lime); }
.agent b,.agent small,.agent em { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agent b { color:var(--agent-color); font-size:13px; letter-spacing:.6px; }.agent small { margin-top:1px; font-size:9px; font-weight:800; }.agent em { margin-top:5px; color:#6f779f; font-style:normal; font-size:7px; letter-spacing:.8px; }
.combo-badge { position:absolute; z-index:5; top:2%; right:2%; width:74px; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid #ffd75d55; border-radius:50%; opacity:.4; transform:rotate(5deg) scale(.75); background:radial-gradient(circle,#473713,#11152e 70%); box-shadow:0 0 24px #ffd84a33; transition:.2s; }
.combo-badge.hot { opacity:1; transform:rotate(5deg) scale(1); animation:comboPop .28s ease; }
.combo-badge span { font-size:7px; letter-spacing:1px; color:#e5ca72; }.combo-badge b { font-size:25px; line-height:1; color:var(--yellow); }.combo-badge i { font-style:normal; color:#fff; font-size:8px; }
.feedback { position:absolute; z-index:10; top:34%; left:50%; pointer-events:none; white-space:nowrap; font-size:clamp(22px,5vw,42px); font-weight:1000; font-style:italic; text-shadow:0 5px 14px #000,0 0 22px currentColor; opacity:0; transform:translate(-50%,-50%) scale(.4) rotate(-5deg); }
.feedback.show { animation:feedback .65s ease-out forwards; }
.feedback.good { color:var(--lime); }.feedback.bad { color:var(--danger); }

.result-screen { flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:6px; }
.rank-icon { display:grid; place-items:center; width:82px; height:82px; border:1px solid #ffe37070; border-radius:50%; font-size:43px; background:radial-gradient(circle,#5d481b,#171933 70%); box-shadow:0 0 40px #ffd84a35; animation:rankFloat 2s ease-in-out infinite; }
.result-kicker { margin:3px 0 0; color:var(--cyan); font-size:9px; font-weight:900; letter-spacing:2px; }.result-screen h2 { margin:0; color:#abb2d3; font-size:12px; font-weight:700; }
.rank-text { color:transparent; font-size:clamp(43px,10vw,70px); line-height:1; font-weight:1000; letter-spacing:-2px; background:linear-gradient(100deg,var(--yellow),#fff3a1,var(--cyan)); -webkit-background-clip:text; background-clip:text; filter:drop-shadow(0 7px 14px #000); }
.rank-message { margin:0 0 4px; color:#b9c0de; font-size:11px; }
.final-score { position:relative; width:min(470px,90vw); padding:12px; border:1px solid #6e7cd948; border-radius:16px; background:#121736d9; }
.final-score span { display:block; color:#858daf; font-size:8px; font-weight:900; letter-spacing:1.7px; }.final-score b { display:block; color:var(--cyan); font-size:clamp(27px,6vw,42px); line-height:1.1; }.final-score i { position:absolute; top:-8px; right:8px; padding:4px 8px; border-radius:8px; color:#1a1600; background:var(--yellow); font-size:8px; font-weight:1000; transform:rotate(5deg); }
.result-stats { width:min(470px,90vw); display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.result-stats div { padding:9px 4px; border:1px solid #ffffff12; border-radius:12px; background:#10142dba; }.result-stats span,.result-stats b { display:block; }.result-stats span { color:#8189ae; font-size:8px; }.result-stats b { margin-top:3px; font-size:12px; white-space:nowrap; }
.replay { min-height:55px; margin-top:5px; }.text-button { border:0; padding:6px 16px; cursor:pointer; color:#8f97bd; background:transparent; font-size:10px; text-decoration:underline; }
.pause-overlay { position:absolute; z-index:100; inset:0; display:grid; place-items:center; background:#060917d9; backdrop-filter:blur(9px); }.pause-overlay[hidden] { display:none; }.pause-overlay div { text-align:center; }.pause-overlay span,.pause-overlay b,.pause-overlay small { display:block; }.pause-overlay span { font-size:40px; }.pause-overlay b { margin-top:8px; color:var(--cyan); font-size:26px; letter-spacing:4px; }.pause-overlay small { color:#949cbf; }

@media (orientation: landscape) and (max-height: 650px) {
  .game-screen { padding-top:48px; }
  .hud { position:absolute; z-index:8; top:48px; left:12px; width:calc(100% - 24px); grid-template-columns:1fr 1fr 1.25fr 64px; }
  .game-stage { padding-top:52px; display:grid; grid-template-columns:minmax(210px, .9fr) minmax(280px,1.45fr); grid-template-rows:1fr auto; column-gap:16px; }
  .task-card { grid-column:1; grid-row:1 / span 2; width:100%; min-height:210px; align-self:center; }
  .route-prompt { grid-column:2; grid-row:1; width:100%; align-self:end; margin-bottom:8px; }
  .agent-grid { grid-column:2; grid-row:2; align-self:start; grid-template-columns:repeat(2,1fr); }
  .agent { min-height:88px; padding:8px; }.agent-emoji { font-size:24px; }.agent em { display:none; }
  .combo-badge { top:62px; right:calc(57% - 55px); }
  .feedback { top:48%; left:24%; }
  .start-screen { padding-top:48px; display:none; display:none; }
  .start-screen.active { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto auto auto; column-gap:34px; align-content:center; text-align:left; padding-inline:7vw; }
  .start-screen .hero-kicker,.start-screen h1,.start-screen .hero-copy { grid-column:1; }.how-card { grid-column:2; grid-row:1 / span 3; width:100%; }.how-steps { grid-template-columns:1fr; }.primary-button,.control-hint { grid-column:1; text-align:center; }.primary-button { width:100%; }
  .result-screen { padding-top:48px; display:none; }.result-screen.active { display:grid; grid-template-columns:.7fr 1.3fr; grid-template-rows:repeat(6,auto); column-gap:30px; align-content:center; padding-inline:12vw; }.rank-icon { grid-column:1; grid-row:1/span 6; justify-self:center; width:110px; height:110px; }.result-screen>*:not(.rank-icon) { grid-column:2; width:100%; }.result-stats { width:100%; }
}

@media (orientation: portrait), (max-width: 600px) {
  .screen { padding-top:56px; }
  .start-screen { gap:8px; }
  .how-steps { grid-template-columns:1fr; gap:6px; }.how-steps p b,.how-steps p small { white-space:normal; }.how-steps p small { display:none; }.how-card { padding:10px 13px; }
  .game-screen { padding-top:52px; }
  .hud { min-height:51px; grid-template-columns:1fr 1fr 1.15fr 58px; gap:5px; }.hud-item { padding:6px 7px; }.hud-item>span { font-size:7px; }.hud-item>b { font-size:14px; }.clock span { font-size:23px; }
  .game-stage { margin-top:5px; justify-content:space-between; }
  .task-card { width:100%; min-height:0; flex:1; max-height:280px; padding:28px 18px 12px; border-radius:20px; }.task-icon { font-size:32px; }.task-card h2 { margin:3px 0; font-size:18px; }.task-card p { margin-bottom:8px; font-size:10px; min-height:2.4em; }
  .route-prompt { margin:4px 0; }
  .agent-grid { grid-template-columns:repeat(2,1fr); gap:6px; }.agent { min-height:83px; padding:7px 5px 5px; border-radius:13px; }.agent-emoji { font-size:24px; }.agent b { font-size:11px; }.agent small { font-size:8px; }.agent em { display:none; }.agent kbd { width:17px; height:17px; left:6px; top:6px; }.status-dot { right:7px; top:7px; }
  .combo-badge { top:3px; right:4px; width:59px; }.combo-badge b { font-size:20px; }
  .feedback { top:32%; }
}
@media (max-height: 620px) and (orientation:portrait) {
  .brand-bar { height:45px; }.game-screen { padding-top:44px; }.hud { min-height:45px; }.task-card { max-height:218px; }.task-icon { font-size:26px; }.task-category { font-size:7px; }.task-card h2 { font-size:15px; }.task-card p { margin-bottom:5px; }.agent { min-height:68px; }.agent-emoji { font-size:19px; }.agent small { display:none; }
  .start-screen h1 span { font-size:40px; }.start-screen h1 strong { font-size:48px; }.hero-copy { font-size:10px; }.primary-button { min-height:49px; }.control-hint { display:none; }
  .rank-icon { width:58px;height:58px;font-size:29px;}.rank-text{font-size:37px}.result-stats div{padding:6px 3px}.result-screen{gap:3px}.final-score{padding:8px}.replay{min-height:46px}
}

@media (max-height: 360px) and (orientation:landscape) {
  .brand-bar { height:40px; padding-top:4px; }
  .start-screen.active { padding-top:36px; padding-bottom:7px; row-gap:5px; }
  .start-screen h1 span { font-size:36px; }
  .start-screen h1 strong { font-size:44px; }
  .start-screen .hero-copy { display:none; }
  .start-screen .how-card { padding:8px 11px; }
  .start-screen .how-steps { gap:4px; padding-top:6px; }
  .start-screen .primary-button { min-height:48px; }
  .start-screen .control-hint { display:none; }
  .result-screen.active { padding-top:38px; padding-bottom:8px; gap:2px; }
  .result-screen .rank-icon { width:78px; height:78px; font-size:36px; }
  .result-screen .rank-text { font-size:38px; }
  .result-screen .rank-message { display:none; }
  .result-screen .final-score { padding:7px; }
  .result-screen .result-stats div { padding:5px 3px; }
  .result-screen .replay { min-height:43px; }
}

.shake { animation:shake .35s ease; }
@keyframes drift { to { transform:translate(12vw,8vh) scale(1.15); } }
@keyframes pulse { 50% { opacity:.4; transform:scale(.7); } }
@keyframes screenIn { from { opacity:0; transform:scale(.97); } }
@keyframes shine { 65%,100% { transform:translateX(65%); } }
@keyframes cardScan { 55%,100% { transform:translateX(100%); } }
@keyframes cardEnter { from { opacity:0; transform:translateY(-35px) rotate(-3deg) scale(.9); } }
@keyframes exitGood { to { opacity:0; transform:translateY(-35px) scale(.7) rotate(7deg); filter:brightness(2); } }
@keyframes exitBad { 25% { transform:translateX(-12px) rotate(-2deg); } 60% { transform:translateX(13px) rotate(2deg); } to { opacity:0; transform:translateY(30px) scale(.82); } }
@keyframes agentHit { 45% { transform:scale(1.1); filter:brightness(1.8); } }
@keyframes agentMiss { 35%,70% { transform:translateX(-7px); } 55%,85% { transform:translateX(7px); } }
@keyframes comboPop { 50% { transform:rotate(-5deg) scale(1.25); } }
@keyframes feedback { 20% { opacity:1; transform:translate(-50%,-50%) scale(1.1) rotate(-4deg); } 70% { opacity:1; } to { opacity:0; transform:translate(-50%,-90%) scale(1) rotate(2deg); } }
@keyframes burst { to { opacity:0; transform:translate(var(--tx),var(--ty)) rotate(300deg) scale(.2); } }
@keyframes rankFloat { 50% { transform:translateY(-7px) rotate(3deg); } }
@keyframes clockDanger { to { transform:scale(1.05); box-shadow:0 0 30px #ff516b77; border-color:var(--danger); } }
@keyframes shake { 20%,60% { transform:translateX(-7px); } 40%,80% { transform:translateX(7px); } }

@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; } }
