/* Trap arena: cool metal, red hazards, a distinct gold jump control. */
body[data-mini=trap] { --accent: #67f1dc; --surface: #102d3a; background: #07121d; }
body[data-mini=trap] .mini-stage { border-color: #45827e; border-radius: 10px 10px 0 0; box-shadow: 0 0 0 1px #0008, inset 0 0 0 2px #b2f7df0b; }
body[data-mini=trap] .mini-hud { background: linear-gradient(#071b28f5, #071b28df 65%, #071b2800); }
body[data-mini=trap] .mini-hud > span:first-child { border-color: #67f1dc40; border-radius: 6px; background: #0e2b36; }
body[data-mini=trap] .mini-hud .score-symbol { color: #67f1dc; }
body[data-mini=trap] .mini-buddy { gap: 4px; padding: 0 6px; border-color: #45827e; border-radius: 0 0 10px 10px; background: linear-gradient(110deg,#153c46,#0a1b2a); }
body[data-mini=trap] .buddy-portrait { width: 57px; height: 63px; }
body[data-mini=trap] .buddy-talk { font-size: 10px; padding: 0 3px; }
body[data-mini=trap] .mini-controls { gap: 8px; }
body[data-mini=trap] .mini-controls button { width: 53px; height: 48px; border-radius: 9px; border-color: #89d7d4; color: #d6fff5; background: linear-gradient(#2d5d67,#15333f); box-shadow: inset 0 1px #dcfff64d, 0 3px #040c15; font-size: 23px; }
body[data-mini=trap] .mini-controls button:last-child { margin-left: 5px; width: 60px; color: #242b28; border-color: #ffefc4; background: linear-gradient(#ffe7a2,#d4a758); box-shadow: inset 0 1px #fff9, 0 3px #57401c; }
body[data-mini=trap] .mini-controls button:active { background: #3d7a83; box-shadow: inset 0 1px #dcfff64d, 0 1px #040c15; }
body[data-mini=trap] .mini-controls button:last-child:active { background: #f0ca7d; }
body[data-mini=trap] .mini-panel { border-radius: 14px; border-color: #84dbc7; background: radial-gradient(ellipse at 50% 0,#204d56,#0b1928 80%); }
body[data-mini=trap] .mini-hero::before { border-color: #72e8cc80; box-shadow: 0 0 0 8px #67f1dc08, 0 0 0 9px #67f1dc26; }
body[data-mini=trap] .cast-choice { border-radius: 9px; }
body[data-mini=trap] .cast-choice[aria-pressed=true] { border-color: #8af4d9; background: #245451; box-shadow: 0 0 0 2px #67f1dc22; }
body[data-mini=trap] .cast-choice[aria-pressed=true]::after { background: #8af4d9; }
@media(max-width:360px) {
    body[data-mini=trap] .mini-controls { gap: 10px; }
}
@media(max-height:650px) {
    body[data-mini=trap] .buddy-portrait { width: 47px; height: 51px; }
    body[data-mini=trap] .mini-controls button { height: 43px; }
}

/* Reserve 44px thumb targets and keep the companion in a compact, separate row. */
body[data-mini=trap] .mini-shell { padding: 0 2px max(2px, env(safe-area-inset-bottom)); }
body[data-mini=trap] .mini-buddy { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 4px; height: 52px; padding: 0 4px; }
body[data-mini=trap] .buddy-portrait { width: 44px; height: 50px; margin-top: 0; }
body[data-mini=trap] .buddy-talk { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 0; padding: 0; white-space: normal; overflow-wrap: anywhere; font-size: 11px; line-height: 1.3; max-height: 2.6em; }
body[data-mini=trap] .mini-controls { grid-column: 3; gap: 7px; }
body[data-mini=trap] .mini-controls button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; width: clamp(46px, 14vw, 56px); height: 44px; padding: 0; line-height: 1; }
body[data-mini=trap] .mini-controls button small { font-size: 9px; font-weight: 750; line-height: 1.2; }
body[data-mini=trap] .mini-controls button:last-child { width: clamp(62px, 18vw, 70px); margin-left: 5px; }
@media(max-width:360px) { body[data-mini=trap] .mini-controls { gap: 7px; } }
@media(max-height:650px) {
    body[data-mini=trap] .mini-controls button { height: 44px; }
}

/* Pass 4: a compact result card gives the score a clear outcome. */
body[data-mini=trap] .mini-panel { gap: 10px; }
body[data-mini=trap] .trap-panel-status { margin: 0; color: #b2eee0; font-size: 12px; font-weight: 750; letter-spacing: .08em; }
body[data-mini=trap] .trap-result-detail { margin: -3px 0 0; color: #dae8eb; font-size: 12px; font-variant-numeric: tabular-nums; }
body[data-mini=trap] .mini-play { display: flex; align-items: center; justify-content: center; gap: 9px; width: 168px; min-height: 50px; border-radius: 10px; font-size: 14px; font-weight: 800; }
body[data-mini=trap] .mini-play svg { width: 18px; height: 18px; }
body[data-mini=trap] .mini-best[data-record=true] { color: #ffe1a0; border: 1px solid #eac77d66; background: #eac77d12; padding: 5px 10px; border-radius: 5px; }
body[data-mini=trap] .mini-overlay[data-mode=result] .mini-hero { height: 110px; }
body[data-mini=trap] .mini-overlay[data-mode=result] .panel-portrait { width: 112px; height: 112px; }
body[data-mini=trap] .mini-overlay[data-mode=result] .mini-hero::before { width: 90px; height: 90px; }
body[data-mini=trap] .mini-overlay[data-mode=result] .mini-panel { border-color: #eac77d; }
@media(max-height:650px) {
    body[data-mini=trap] .mini-panel { gap: 7px; padding: 11px; }
    body[data-mini=trap] .mini-overlay[data-mode=result] .mini-hero { height: 74px; }
    body[data-mini=trap] .mini-overlay[data-mode=result] .panel-portrait { width: 78px; height: 78px; }
    body[data-mini=trap] .mini-overlay[data-mode=result] .mini-hero::before { width: 65px; height: 65px; }
}

/* Pass 5: visible held states follow pointer capture, including multi-touch. */
body[data-mini=trap] .mini-controls button[data-held=true] { background: #3d7a83; box-shadow: inset 0 0 0 2px #caffed66, 0 1px #040c15; transform: translateY(2px); }
body[data-mini=trap] .mini-controls button:last-child[data-held=true] { background: #f0ca7d; box-shadow: inset 0 0 0 2px #fff4d980, 0 1px #57401c; }
body[data-mini=trap] .mini-controls button:disabled { opacity: .45; }
body[data-mini=trap] .mini-controls { user-select: none; -webkit-user-select: none; }
@media(prefers-reduced-motion:reduce) {
    body[data-mini=trap] .mini-controls button[data-held=true] { transform: none; }
}

/* Victory stays inside the result portrait area and never occupies route space. */
body[data-mini=trap] .trap-victory { display: none; }
body[data-mini=trap] .mini-overlay[data-won=true] .trap-victory { display: block; position: absolute; inset: 0; z-index: 2; pointer-events: none; }
body[data-mini=trap] .trap-victory b { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); font-size: 27px; white-space: nowrap; }
body[data-mini=trap] .trap-victory i { position: absolute; top: 0; left: 8%; font-style: normal; font-size: 17px; opacity: 0; animation: trap-celebrate 1.1s ease-out both; }
body[data-mini=trap] .trap-victory i:nth-of-type(2) { left: 24%; animation-delay: .12s; }
body[data-mini=trap] .trap-victory i:nth-of-type(3) { left: 40%; animation-delay: .24s; }
body[data-mini=trap] .trap-victory i:nth-of-type(4) { left: 60%; animation-delay: .08s; }
body[data-mini=trap] .trap-victory i:nth-of-type(5) { left: 76%; animation-delay: .2s; }
body[data-mini=trap] .trap-victory i:nth-of-type(6) { left: 92%; animation-delay: .3s; }
body[data-mini=trap] .mini-overlay[data-won=true] .mini-panel { border-color: #ffe1a0; box-shadow: 0 0 22px #ffd36b33, inset 0 1px #fff1bf55; }
@keyframes trap-celebrate { 0% { opacity: 0; transform: translateY(-12px) scale(.7); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(70px) scale(1); } }

@media(prefers-reduced-motion:reduce) {
    body[data-mini=trap] .trap-victory i { display: none; animation: none; }
    body[data-mini=trap] .mini-overlay[data-won=true] .mini-hero::before,
    body[data-mini=trap] .mini-overlay[data-won=true] .panel-portrait { animation: none; }
}

/* Split thumb controls without adding height or covering the route. */
body[data-mini=trap] .mini-buddy { grid-template-columns: auto auto 44px minmax(0, 1fr) auto; gap: 4px; }
body[data-mini=trap] .mini-controls { display: contents; }
body[data-mini=trap] .mini-controls button { grid-row: 1; }
body[data-mini=trap] .mini-controls button:nth-child(1) { grid-column: 1; }
body[data-mini=trap] .mini-controls button:nth-child(2) { grid-column: 2; }
body[data-mini=trap] .mini-controls button:last-child { grid-column: 5; margin-left: 0; }
body[data-mini=trap] .buddy-portrait { grid-row: 1; grid-column: 3; }
body[data-mini=trap] .buddy-talk { grid-row: 1; grid-column: 4; }

/* Keep score, sector, lives and pause together in the existing 43px HUD. */
body[data-mini=trap] .mini-hud { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 38px; gap: 8px; }
body[data-mini=trap] .mini-hud > span:first-child { min-width: 0; padding: 4px 6px; }
body[data-mini=trap] .mini-hud .trap-hud-sector { font-size: 13px; color: #e6fff8; }
body[data-mini=trap] .mini-hud .trap-hud-lives { font-size: 18px; letter-spacing: 1px; color: #ff9da8; }
