/* Original rule feedback: separate from tactical answer reveals. */
.native-error-message{min-height:40px;display:flex;align-items:center;justify-content:center;text-align:center;padding:5px 12px;font-size:14px;line-height:1.5;color:var(--tango-error);overflow-anchor:none;opacity:0;transition:opacity var(--feedback-time,500ms)}
.native-error-message.is-visible{opacity:1}
.native-rule-error{position:absolute;inset:0;border-radius:inherit;background:var(--queens-error);pointer-events:none;z-index:0;opacity:0;transition:opacity .5s}
.queens .cell.error .native-rule-error{opacity:.8;transition-delay:0s}.queens .cell .native-board-symbol{z-index:2}
.tango .native-rule-error{background:var(--tango-error);scale:0;transition:scale .25s cubic-bezier(.6,-.28,.735,.045),opacity .25s}
.tango .cell.error .native-rule-error{scale:1;opacity:.8;transition-delay:0s;transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}
.native-game .board.queens .cell.error,.native-game .board.tango .cell.error,.native-game .board.pipes .cell.error,.native-game .board.lits .cell.error{box-shadow:none;outline:0}
.native-lits-error{position:absolute;inset:18%;background:var(--lits-error);mask:var(--ui-image) center/contain no-repeat;pointer-events:none;z-index:4}
.native-lits-error.square{inset:5%;border:2px solid var(--lits-error);background:none;mask:none;border-radius:3px}
.native-game .board.pipes .cell.error .native-pipe-stroke{background:var(--pipes-error)}
.native-game .board.pipes .cell.error .native-pipe-fill{background:color-mix(in srgb,var(--pipes-error) 30%,var(--pipe-fill))}
.native-pipe-stroke,.native-pipe-fill{transition:background-color .3s}
.native-rejected-area{position:absolute;pointer-events:none;border:2px solid var(--shikaku-error);border-radius:7px;background:var(--shikaku-error);z-index:8}
.native-mistake-flash{background:var(--tango-error)}
.native-game-clock:has(+.native-error-message.is-visible) .native-progress{color:var(--tango-error)}
.native-failure{padding:15px 0;text-align:center}.native-failure h2{font-size:22px}.native-failure p{font-size:14px;line-height:1.6;margin:12px 0}.native-failure button{padding:12px 24px}
.board-wrap{overflow-anchor:none}.board-overlay,.shikaku-area,.native-error-message{pointer-events:none}
.tutorial-panel>p,.settings-sheet,.rules-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media(prefers-reduced-motion:reduce){.native-rule-error,.native-pipe-stroke,.native-pipe-fill,.native-error-message{transition:none!important}}

/* Idle timing is controlled by input activity, not persistent CSS classes. */
.queens .cell:not(.error) .native-rule-error,.tango .cell:not(.error) .native-rule-error{transition:none}
.board.queens{touch-action:none;user-select:none;-webkit-user-select:none}
