/* One quiet feedback language; independent translate preserves deck/AI transforms. */
.plane-shell .plane-page :is(.card,.gr-curve-card,.gw-overall,.gw-next,.cs-surface-card,.cs-goal-card,.cs-phase-card,.cs-module-card,.dc-card,.scene-flow-origin,.scene-flow-question,.training-card,.cs-ai-card,.gi-result-card,.brand-kpi,.brand-panel,.op-card,.bo-answer-card,.bo-brand-tile,.ga-card,.media-card,.mn-brand-card,.mn-card,.p1-result-card,.pa-product-card,.px-rank-card,.px-sentiment-card,.task-card,.gw-month-tile){
 transition:translate 180ms cubic-bezier(.16,1,.3,1),box-shadow 180ms ease;
 --feedback-edge:var(--cs-edge,#c7d0d6);
}
.plane-shell .plane-page .gr-curve-card{--feedback-edge:var(--curve-end);translate:none!important;transition:box-shadow 140ms ease}
@media(hover:hover) and (pointer:fine){
 .plane-shell .plane-page :is(.card,.gr-curve-card,.gw-overall,.gw-next,.cs-surface-card,.cs-goal-card,.cs-phase-card,.cs-module-card,.dc-card,.scene-flow-origin,.scene-flow-question,.training-card,.cs-ai-card,.gi-result-card,.brand-kpi,.brand-panel,.op-card,.bo-answer-card,.bo-brand-tile,.ga-card,.media-card,.mn-brand-card,.mn-card,.p1-result-card,.pa-product-card,.px-rank-card,.px-sentiment-card,.task-card,.gw-month-tile):hover{
  translate:0 -3px;
  box-shadow:inset 0 0 0 1px var(--feedback-edge),0 22px 34px -24px #26374666,0 7px 14px -12px #26374630;
 }
}
.plane-shell .plane-page :is(.gw-next,.cs-surface-card,.cs-goal-card,.cs-phase-card,.cs-module-card,.dc-card,.scene-flow-origin,.scene-flow-question,.training-card,.cs-ai-card,.gi-result-card,.brand-kpi,.brand-panel,.op-card,.bo-answer-card,.bo-brand-tile,.ga-card,.media-card,.mn-brand-card,.mn-card,.p1-result-card,.pa-product-card,.px-rank-card,.px-sentiment-card,.task-card,.gw-month-tile):focus-within{
 box-shadow:inset 0 0 0 1px var(--feedback-edge),0 22px 34px -24px #26374666,0 7px 14px -12px #26374630;
}
.plane-shell .plane-page .cs-surface-card{translate:none!important;transform:none;transition:box-shadow 140ms ease;cursor:default}
/* Existing map hover already translates by 2px; use only the shared lift. */
.plane-shell .gw-map :is(.cs-phase-card,.cs-module-card):hover{transform:none}
@media(prefers-reduced-motion:reduce){
 .plane-shell .plane-page :is(.card,.gr-curve-card,.gw-overall,.gw-next,.cs-surface-card,.cs-goal-card,.cs-phase-card,.cs-module-card,.dc-card,.scene-flow-origin,.scene-flow-question,.training-card,.cs-ai-card,.gi-result-card,.brand-kpi,.brand-panel,.op-card,.bo-answer-card,.bo-brand-tile,.ga-card,.media-card,.mn-brand-card,.mn-card,.p1-result-card,.pa-product-card,.px-rank-card,.px-sentiment-card,.task-card,.gw-month-tile){transition:none;translate:none}
 .plane-shell .plane-page :is(.card,.gr-curve-card,.gw-overall,.gw-next,.cs-surface-card,.cs-goal-card,.cs-phase-card,.cs-module-card,.dc-card,.scene-flow-origin,.scene-flow-question,.training-card,.cs-ai-card,.gi-result-card,.brand-kpi,.brand-panel,.op-card,.bo-answer-card,.bo-brand-tile,.ga-card,.media-card,.mn-brand-card,.mn-card,.p1-result-card,.pa-product-card,.px-rank-card,.px-sentiment-card,.task-card,.gw-month-tile):hover{translate:none}
}
