/* The collapse owns the outer mountain handles; desk paper keeps its own motion. */
.km-crumble-controls{display:inline-flex;align-items:center;gap:5px;padding-right:8px;margin-right:1px;border-right:1px solid #c9d2bb}
.km-desk-actions .km-crumble-controls button{background:#f8eddf;border-color:#d2bda1;color:#876344;display:inline-flex;align-items:center;gap:5px}
.km-desk-actions .km-crumble-controls button:hover:not(:disabled){background:#f2dfc4;border-color:#bb926d}
.km-desk-actions #km-reform{background:#e8efda;border-color:#bfcea7;color:#547044}
.km-desk-actions #km-reform:hover:not(:disabled){background:#dae7c4;border-color:#95b275}
.km-crumble-controls button span{font-size:15px;line-height:.8;font-weight:400}
.km-crumble-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.km-pile.km-crumble-active .km-card.km-crumble-source{touch-action:pan-x pan-y;cursor:pointer;transition:opacity .2s,filter .2s;backface-visibility:hidden}
.km-pile.km-crumble-active .km-card.km-crumble-source .km-card-face{transform:none!important;translate:none!important;animation:none;transition:box-shadow .2s;box-shadow:1px 2px 0 #c5c3ae,2px 4px 0 #f6f0dd,3px 6px 0 #c6c5b2,4px 9px 14px #34473325}
.km-pile.km-crumble-active .km-card.km-crumble-source:hover .km-card-face,.km-pile.km-crumble-active .km-card.km-crumble-source:focus-visible .km-card-face{box-shadow:1px 2px 0 #c5c3ae,3px 5px 0 #f6f0dd,0 10px 20px #34473340}
.km-pile.km-crumble-active .km-card.is-muted,.km-pile.km-crumble-active .km-card.is-loose-origin{visibility:hidden}
.km-pile.km-crumble-active .km-summit-flag{opacity:.15;transition:opacity .4s}
.km-pile.km-crumble-active .km-card.km-crumble-source:focus-visible{outline:2px solid #ae6542;outline-offset:5px}
.km-pile.km-crumble-moving .km-card.km-crumble-source .km-card-face{box-shadow:1px 2px 0 #c5c3ae,2px 4px 0 #f6f0dd,4px 10px 17px #34473325}
@media(max-width:700px){.km-crumble-controls{gap:4px;padding-right:6px}.km-desk-actions{flex-wrap:wrap}.km-desk-actions .km-crumble-controls button{padding:8px 7px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.km-pile.km-crumble-active .km-card.km-crumble-source,.km-pile.km-crumble-active .km-card.km-crumble-source .km-card-face,.km-pile.km-crumble-active .km-summit-flag{transition:none}}

/* During the cascade, one flat paper surface per sheet avoids nested GPU layers
   and repeated shadow/filter painting. Full paper depth returns after landing. */
.km-pile.km-crumble-moving .km-card.km-crumble-source{filter:none!important;transition:none;backface-visibility:visible;contain:layout style}
.km-pile.km-crumble-moving .km-card.km-crumble-source .km-card-face,
.km-pile.km-crumble-moving .km-card.km-crumble-source:hover .km-card-face,
.km-pile.km-crumble-moving .km-card.km-crumble-source:focus-visible .km-card-face{box-shadow:1px 2px 0 #c5c3ae,0 3px 5px #34473320;transition:none;will-change:auto;backface-visibility:visible}
.km-pile.km-crumble-moving[data-crumble-quality=light] .km-card.km-crumble-source .km-card-face{box-shadow:1px 2px 0 #c5c3ae}
.km-pile.km-crumble-scattered .km-card.km-crumble-source{backface-visibility:visible;will-change:auto}

/* One moving surface replaces 131 independently composited DOM papers. The
   buttons remain in the accessibility tree; the renderer handles pointer hits. */
.km-cascade-canvas{position:absolute;left:0;top:0;width:1200px;height:565px;z-index:1000;pointer-events:auto;touch-action:pan-x pan-y;user-select:none;contain:strict}
.km-pile.km-canvas-motion .km-crumble-source{opacity:0!important;pointer-events:none!important;transition:none!important;will-change:auto!important}
.km-pile.km-canvas-motion .km-crumble-source .km-card-face{animation:none!important;transition:none!important;will-change:auto!important}
