/* A performance of printed cards. It never becomes an input surface. */
.lf .card-performance{position:fixed;top:48px;left:50%;transform:translateX(-50%);z-index:2147482000;width:min(var(--performance-width,720px),calc(100vw - 24px));padding:16px 22px 18px;border:1px solid #d2bc865e;border-radius:8px;background:linear-gradient(130deg,#17251f,#14211b);box-shadow:0 18px 65px #0009;pointer-events:none;isolation:isolate;color:#eee4cf;animation:performance-curtain 180ms ease-out backwards}
.card-performance *{pointer-events:none!important}
.card-performance-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid #d6c49a29;margin-bottom:12px;padding-bottom:9px;min-width:0}
.lf .card-performance-name{font:italic 21px/1.25 var(--serif);margin:0;color:#e1c894;overflow-wrap:anywhere}
.card-performance-total{max-width:56%;font:25px/1.2 var(--serif);color:#f1d993;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;word-break:break-all;text-align:right}
.card-performance-lane{position:relative;z-index:2;margin-top:12px;min-width:0}
.card-performance-lane.lane-held{border-top:1px dashed #d4c79845;padding-top:10px}
.card-performance-lane-label{display:flex;justify-content:space-between;gap:8px;margin:0 0 8px;color:#c9c9b5;font:10px/1.4 var(--mono);letter-spacing:.04em}
.lane-held .card-performance-lane-label{color:#e7d29e}
.card-performance-count{font-variant-numeric:tabular-nums;white-space:nowrap}
.card-performance-track{min-height:0}
.card-performance-page{display:grid;grid-template-columns:repeat(var(--performance-columns),minmax(0,100px));justify-content:center;gap:12px;align-items:start}
.card-performance-piece{--card-delay:0ms;--card-window:900ms;--card-arrival:280ms;--card-impact-delay:160ms;--card-score-duration:350ms;--card-second-delay:600ms;--card-second-duration:320ms;position:relative;margin:0;min-width:0;animation:performance-card-arrives var(--card-arrival) cubic-bezier(.18,.7,.25,1) var(--card-delay) both}
.card-performance-piece.is-unscored.is-played{animation-name:performance-card-departs;animation-duration:var(--card-window)}
.card-performance-piece.is-held{animation:none}
.card-performance-piece.is-waiting{opacity:.8;animation:none!important}
.card-performance-piece.is-waiting *{animation:none!important}
.card-performance-piece.is-waiting .card-performance-figure{outline:none;box-shadow:none}
.card-performance-figure{position:relative;min-width:0;aspect-ratio:5/7;border-radius:7px;isolation:isolate}
.card-performance-impression{position:relative;width:100%;height:100%;border-radius:inherit}
.lf .card-performance-face{position:relative!important;display:block!important;inset:auto!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;aspect-ratio:5/7!important;transform:none!important;outline:none!important;box-shadow:0 5px 10px #0005!important}
.card-performance-face .effective-identity,.card-performance-face .held-score{display:none!important}
.lf .card-performance-face:after{content:none!important}
.card-performance-piece.is-scored .card-performance-figure{animation:performance-score-flash 330ms ease-out var(--card-impact-delay) both}
.card-performance-piece.cue-loiters .card-performance-figure{animation:performance-loiter var(--card-window) ease-in-out var(--card-delay) both;transform-origin:50% 95%}
.card-performance-piece.cue-encores .card-performance-impression{animation:performance-encore var(--card-window) ease-out var(--card-delay) both}
.card-performance-piece.cue-inherits .card-performance-figure,.card-performance-piece.cue-gossips .card-performance-figure{outline:1px solid #a6c9d1;outline-offset:2px}
.card-performance-piece.cue-envies .card-performance-face{filter:drop-shadow(0 0 4px #b0bb7f99)}
.card-performance-veil,.card-performance-gold{position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;opacity:0}
.card-performance-veil{background:linear-gradient(105deg,transparent 10%,#c5d8caac 48%,transparent 87%);mix-blend-mode:screen;animation:performance-veil var(--card-window) ease-in-out var(--card-delay) both}
.card-performance-gold{background:radial-gradient(ellipse at 45% 30%,#fff1a585,#d7a63822 70%,transparent);mix-blend-mode:screen;animation:performance-gold var(--card-window) ease-out var(--card-delay) both}
.card-performance-landing-ring{position:absolute;left:7%;bottom:-5px;z-index:-1;width:86%;height:12px;border:1px solid #ead194c9;border-radius:50%;opacity:0;animation:performance-landing-ring 310ms ease-out var(--card-impact-delay) both}
.card-performance-held-rest{position:absolute;left:28%;right:28%;bottom:-4px;height:2px;border-radius:100%;background:#decb955e;box-shadow:0 0 7px #dec68850;animation:performance-held-rest var(--card-window) ease-in-out var(--card-delay) both}
.card-performance-score-slip{position:absolute;z-index:5;left:50%;bottom:12%;display:flex;flex-direction:column;align-items:center;gap:1px;width:max-content;max-width:calc(100% + 10px);padding:4px 6px;border:1px solid #dfc68a9e;border-radius:3px;background:#102019f5;color:#f5dea3;font:700 10px/1.3 var(--mono);white-space:nowrap;box-shadow:0 3px 8px #0005;opacity:0;transform:translate(-50%,7px);animation:performance-score-slip var(--card-score-duration) ease-out var(--card-impact-delay) both}
.card-performance-score-slip .score-slip-mult{color:#ffd0b9}
.card-performance-score-slip .score-slip-factor{color:#f5e4b5}
.card-performance-score-slip.is-second-pass{border-color:#f5e0aa;animation-delay:var(--card-second-delay);animation-duration:var(--card-second-duration)}
.card-performance-piece.is-held .card-performance-score-slip{background:#29301af5;border-color:#dcca91;bottom:16%}
.card-performance-piece.is-waiting .card-performance-held-rest{box-shadow:none;background:#a9b4a233}
.card-performance.is-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
.card-performance.is-compact .card-performance-heading{grid-column:1/-1;margin-bottom:0}
.card-performance.is-compact .card-performance-lane.lane-held{border-top:0;padding-top:0}
.card-performance.is-compact .card-performance-lane.lane-held:before{content:'';position:absolute;top:0;bottom:0;left:-8px;border-left:1px dashed #d4c79845}
.card-performance.is-compact .card-performance-lane-label{gap:4px;letter-spacing:0}
.card-performance.is-compact .card-performance-count{font-size:10px}
.card-performance-caption{display:flex;flex-direction:column;gap:3px;text-align:center;min-height:36px;margin:8px -2px 0;font:10px/1.35 var(--mono);overflow-wrap:normal}
.card-performance-cue{color:#efd99d;font-weight:700}
.card-performance-value{color:#c4c9b9;font:10px/1.35 var(--sans)}
.is-unscored .card-performance-cue,.is-unscored .card-performance-value{color:#b0b6a7}
.card-performance-links{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;pointer-events:none}
.card-performance-links path{fill:none;stroke:#b5d6d8;stroke-width:1.3;stroke-dasharray:3 4;opacity:.75;vector-effect:non-scaling-stroke;animation:performance-thread 650ms ease-out both}
.card-performance-echo{position:absolute;right:-7px;bottom:3px;z-index:4;display:block;width:26%;aspect-ratio:5/7;opacity:.75;transform:rotate(9deg);filter:drop-shadow(0 2px 2px #0009)}
.card-performance-echo .card-corner,.card-performance-echo .card-label,.card-performance-echo .card-realm{display:none!important}
.card-performance.is-finishing{opacity:0;transition:opacity 160ms ease-out}
@keyframes performance-curtain{from{opacity:0}to{opacity:1}}
@keyframes performance-card-arrives{0%{opacity:0;transform:translateY(23px) rotate(-3deg) scale(.97)}30%{opacity:1;transform:translateY(-7px) rotate(.8deg)}56%{opacity:1;transform:translateY(2px) rotate(-.3deg) scale(1.015,.985)}78%{transform:translateY(-1px) rotate(0) scale(1)}100%{opacity:1;transform:translateY(0) rotate(0) scale(1)}}
@keyframes performance-card-departs{0%{opacity:0;transform:translateY(19px)}22%,46%{opacity:.68;transform:translateY(0)}100%{opacity:.12;transform:translateY(14px) scale(.95)}}
@keyframes performance-score-flash{0%{box-shadow:0 0 0 0 #d7be7f00}18%{box-shadow:0 0 0 2px #ead194d9,0 0 13px #d7be7f45}100%{box-shadow:0 0 0 1px #d7be7f26}}
@keyframes performance-loiter{0%{transform:rotate(-1.5deg);box-shadow:0 0 0 0 #ead19400}20%{transform:rotate(2.5deg);box-shadow:0 0 0 2px #e8d398bd,0 0 14px #dfc38940}48%{transform:rotate(-1.2deg)}72%{transform:rotate(.6deg)}100%{transform:rotate(0);box-shadow:0 0 0 1px #d8c89c65}}
@keyframes performance-encore{0%,43%,100%{filter:brightness(1);transform:translateY(0) rotate(0) scale(1)}58%{filter:brightness(1.1);transform:translateY(-7px) rotate(1deg)}68%{filter:brightness(1.08);transform:translateY(2px) rotate(-.4deg) scale(1.01,.99)}82%{filter:brightness(1);transform:translateY(-1px) rotate(0) scale(1)}}
@keyframes performance-landing-ring{0%{opacity:0;transform:scale(.65,.7)}18%{opacity:.8}100%{opacity:0;transform:scale(1.2,1.5)}}
@keyframes performance-held-rest{0%,100%{transform:scaleX(1);opacity:.45}22%{transform:scaleX(1.45);opacity:1}58%{transform:scaleX(.9);opacity:.6}}
@keyframes performance-score-slip{0%{opacity:0;transform:translate(-50%,7px) scale(.94)}18%{opacity:1;transform:translate(-50%,-3px) scale(1.04)}40%,72%{opacity:1;transform:translate(-50%,-7px) scale(1)}100%{opacity:0;transform:translate(-50%,-16px) scale(.98)}}
@keyframes performance-veil{0%,65%,100%{opacity:0;transform:translateX(-15%)}28%{opacity:.9;transform:translateX(12%)}}
@keyframes performance-gold{0%,100%{opacity:0}35%{opacity:1}75%{opacity:.25}}
@keyframes performance-thread{from{stroke-dashoffset:24;opacity:0}to{stroke-dashoffset:0;opacity:.75}}
@media(max-width:650px){
 .lf .card-performance{padding:12px 12px 14px;border-radius:5px}
 .card-performance-heading{gap:9px;margin-bottom:8px;padding-bottom:7px}
 .lf .card-performance-name{font-size:18px}
 .card-performance-total{font-size:23px}
 .card-performance-page{grid-template-columns:repeat(var(--performance-columns),minmax(0,70px));gap:8px}
 .card-performance-lane{margin-top:9px}
 .card-performance-lane-label{margin-bottom:7px;letter-spacing:0}
 .card-performance-lane.lane-held{padding-top:8px}
 .card-performance-caption{min-height:37px;gap:2px;margin-top:6px;letter-spacing:-.04em}
 .card-performance-echo{right:-4px}
 .card-performance.is-compact .card-performance-lane.lane-held{padding-top:0}
}
@media(prefers-reduced-motion:reduce){.card-performance{display:none!important}.card-performance *{animation:none!important;transition:none!important}}
