/* Visual cues: poster-style dice and consequence overlays. transform/opacity only, nothing loops. */
.cue-layer{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden}
.cue-stamp,.cue-sticker,.cue-flag,.cue-umbrella,.cue-dust{position:fixed;transform:translate(-50%,-50%);pointer-events:none}
.cue-stamp{padding:6px 12px;border:3px solid #14110F;border-radius:8px;background:#FFF4DC;color:#14110F;font:800 clamp(13px,3.6vw,18px)/1 var(--kb-display,'Bricolage Grotesque',sans-serif);letter-spacing:.06em;text-transform:uppercase;box-shadow:4px 4px 0 #14110F;transform:translate(-50%,-50%) rotate(-6deg)}
.cue-stamp-sold{background:#F6A91B}
.cue-stamp-mortgaged{background:#C8361F;color:#FFF4DC}
.cue-stamp.cue-thunk{animation:cue-thunk 180ms cubic-bezier(.5,0,.2,1) both}
@keyframes cue-thunk{from{transform:translate(-50%,-50%) rotate(-10deg) scale(1.6);opacity:0}to{transform:translate(-50%,-50%) rotate(-6deg) scale(1);opacity:1}}
.cue-sticker{padding:5px 11px;border:3px solid #14110F;border-radius:999px;background:#F6A91B;color:#14110F;font:800 clamp(14px,4vw,20px)/1 var(--kb-display,sans-serif);box-shadow:3px 3px 0 #14110F;transform:translate(-50%,-50%) rotate(var(--tilt,-4deg))}
.cue-flag{display:grid;place-items:center;width:34px;height:34px;border:3px solid #14110F;border-radius:50%;background:var(--owner,#F6A91B);color:#FFF4DC;box-shadow:2px 2px 0 #14110F;animation:cue-pop 360ms cubic-bezier(.34,1.56,.64,1) both}
.cue-flag .kart{width:22px!important;height:22px!important}.cue-flag svg{width:22px;height:22px}
@keyframes cue-pop{from{transform:translate(-50%,-50%) scale(.3);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
.cue-umbrella{animation:cue-pop 300ms ease-out both}
.cue-dust{width:7px;height:7px;border-radius:50%;background:#99896A;opacity:0}
/* tile highlights: ::after layers that only fade and scale */
.cue-glow::after,.cue-rain::after{content:"";position:absolute;pointer-events:none;z-index:4}
.cue-glow::after{inset:0;background:#F6A91B;border-radius:inherit;opacity:0;animation:cue-glow 900ms ease-out 1 both}
@keyframes cue-glow{0%{opacity:0;transform:scale(.88)}35%{opacity:.7;transform:scale(1.04)}100%{opacity:0;transform:scale(1)}}
.cue-rain::after{left:0;right:0;top:-100%;height:200%;background:repeating-linear-gradient(105deg,transparent 0 5px,rgba(43,42,122,.55) 5px 6px,transparent 6px 11px);opacity:0;animation:cue-rain 1000ms linear 1 both}
@keyframes cue-rain{0%{opacity:0;transform:translateY(0)}15%{opacity:.9}85%{opacity:.9}100%{opacity:0;transform:translateY(50%)}}
/* dice: poster faces (ink border, cream to marigold), tomato one-pip, throw shadow */
.tabletop-die .die-face{border:3px solid #14110F;background:linear-gradient(145deg,#FFFBF0 0%,#FFF4DC 58%,#F6A91B 140%)}
.tabletop-die .die-pip{background:#14110F;box-shadow:none}
.tabletop-die .die-face[data-face-value="1"] .die-pip{background:#C8361F}
.cue-dice-pair{position:relative}
.cue-die-shadow{position:absolute;height:9px;border-radius:50%;background:#14110F;opacity:.4;transform-origin:center;pointer-events:none;z-index:0}
.cue-double{position:absolute;top:-10px;right:-6px;z-index:5;padding:3px 8px;border:2px solid #14110F;border-radius:999px;background:#C8361F;color:#FFF4DC;font:800 11px/1 var(--kb-mono,monospace);letter-spacing:.08em;box-shadow:2px 2px 0 #14110F;transform:rotate(6deg)}
html.km-reduce .cue-stamp.cue-thunk,html.km-reduce .cue-flag,html.km-reduce .cue-umbrella{animation:none}
@media (prefers-reduced-motion:reduce){.cue-stamp.cue-thunk,.cue-flag,.cue-umbrella,.cue-glow::after,.cue-rain::after{animation:none!important}}
