/* The landing point follows the winning tile. The character cut-in starts later. */
.tile-impact{position:fixed;inset:0;z-index:100;width:100%;height:100%;padding:0;border:0;overflow:hidden;isolation:isolate;mix-blend-mode:screen;cursor:pointer;background:transparent;--lightning-color:#82cfff;--lightning-rgb:96,188,255;--lightning-hit:.50s;--lightning-tint:none}
.tile-impact.lightning-high{--lightning-color:#ffda87;--lightning-rgb:255,197,93;--lightning-tint:sepia(1) saturate(2.8)}
.tile-impact.lightning-yakuman{--lightning-color:#d6b2ff;--lightning-rgb:183,131,255;--lightning-tint:hue-rotate(54deg)}
.cutin.after-tile-impact .cutin-flash{display:none}
.tile.winning-tile{opacity:1;outline:2px solid #ffe5a8;outline-offset:2px;box-shadow:0 0 16px #edc17870}
.winning-tile-label{display:none}
.win-lightning{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;mix-blend-mode:screen;opacity:var(--impact-opacity,0)}
.win-lightning-strike{position:absolute;left:var(--impact-x);top:var(--impact-y);height:var(--impact-bolt-height);width:var(--impact-bolt-width);opacity:0;clip-path:inset(0 0 100% 0);transform:translate(-51.5%,-85.2%) rotate(var(--strike-tilt)) scaleX(.7);transform-origin:51.5% 85.2%;mix-blend-mode:screen;filter:var(--lightning-tint);animation:lightning-drop .12s var(--strike-delay) linear forwards,lightning-fade .95s calc(var(--strike-delay) + .12s) ease-out forwards}
.win-lightning-strike.main-strike{transform:translate(-51.5%,-85.2%) rotate(var(--strike-tilt));animation-duration:.12s,1.15s}
.win-lightning-strike img{display:block;width:100%;height:100%;max-width:none;object-fit:fill}
.win-lightning-bloom{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at var(--impact-x) var(--impact-y),rgba(var(--lightning-rgb),.48),rgba(var(--lightning-rgb),.10) 12%,transparent 40%);animation:lightning-bloom 1s var(--lightning-hit) both}
.win-lightning-ring{position:absolute;left:var(--impact-x);top:var(--impact-y);width:var(--impact-ring);aspect-ratio:3/1;border:2px solid var(--lightning-color);border-radius:50%;box-shadow:0 0 20px rgba(var(--lightning-rgb),.45),inset 0 0 14px rgba(var(--lightning-rgb),.20);opacity:0;animation:lightning-ring .85s var(--lightning-hit) both}
.lightning-yakuman .win-lightning-ring{border-width:3px}
.win-tile-outline{position:absolute;left:var(--impact-x);top:var(--impact-y);width:var(--impact-tile-width);height:var(--impact-tile-height);transform:translate(-50%,-50%);border:2px solid var(--lightning-color);border-radius:5px;box-shadow:0 0 24px rgba(var(--lightning-rgb),.75);animation:lightning-bloom 1.2s var(--lightning-hit) both}
.impact-skip{position:absolute;z-index:3;left:0;right:0;bottom:max(16px,env(safe-area-inset-bottom));font-size:12px;color:#f8ebd0;text-shadow:0 1px 5px #000}
.impact-preview{mix-blend-mode:normal;background:#060d19e8}
.impact-demo{position:absolute;left:50%;top:68%;display:flex;flex-direction:column;align-items:center;gap:12px;transform:translate(-50%,-50%);pointer-events:none}
.impact-demo>small{color:#f5d9a7;font-size:14px;letter-spacing:.15em}
.impact-demo>[data-preview-winning-tile]{display:block;line-height:0}
.impact-demo .tile{width:56px;height:78px;max-width:none}
.impact-demo .tile-number,.impact-demo .tile-suit{font-size:25px}
@keyframes lightning-drop{0%{opacity:0;clip-path:inset(0 0 100% 0)}20%{opacity:1;clip-path:inset(0 0 80% 0)}100%{opacity:1;clip-path:inset(0)}}
@keyframes lightning-fade{0%{opacity:1}20%{opacity:.85}58%{opacity:.24}100%{opacity:0}}
@keyframes lightning-bloom{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
@keyframes lightning-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.10)}15%{opacity:.85}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
/* The compact table normally hides the CPU hand. Reveal its single winning tile
   in a small dedicated row without increasing the table's total height. */
.compact-landscape .table:has(.hidden-hand [data-winning-tile]){grid-template-rows:30px 38px minmax(0,1fr)}
.compact-landscape .hidden-hand:has([data-winning-tile]){display:flex;grid-column:1;grid-row:2;align-items:center;justify-content:center;gap:10px;height:36px;min-height:0;padding:0;margin:0}
.compact-landscape .hidden-hand:has([data-winning-tile]) .back{display:none}
.compact-landscape .hidden-hand:has([data-winning-tile]) .winning-tile-label{display:inline;color:#f5d9a7;font-size:12px}
.compact-landscape .hidden-hand:has([data-winning-tile]) .tile{width:24px;height:32px;flex:none}
.compact-landscape .table:has(.hidden-hand [data-winning-tile]) .opponent-river-section{grid-row:3}
.compact-landscape .table:has(.hidden-hand [data-winning-tile]) .own-river-section{grid-row:2/4}
.compact-landscape .table:has(.hidden-hand [data-winning-tile]) .table-center{grid-row:1/4}
@media(prefers-reduced-motion:reduce){
  .win-lightning-strike,.win-lightning-bloom,.win-lightning-ring{display:none}
  .win-tile-outline{animation:none;box-shadow:none}
}
