/* Phone swipe coach (swipe_coach.js; owner, 2026-10-13). Above the deployed phone nav (8600) and the gear (8500),
   below the modals (9000+). A light layer, not the demo's dark scrim; the dashboard's coach takes the dark wash
   (owner ruling: smoked glass in the dashboard's own navy). */
.sc-layer {
    --sc-arrow: #667eea; /* the landing page's BRev mark */
    position: fixed;
    inset: 0;
    z-index: 8700;
    opacity: 0;
    transition: opacity 0.25s ease;
    touch-action: none;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
}
.sc-layer--on { opacity: 1; }
.sc-wash {
    position: absolute;
    inset: 0;
    background: rgba(250, 252, 255, 0.80);
    -webkit-backdrop-filter: blur(1.5px);
    backdrop-filter: blur(1.5px);
}
.sc-layer--dark .sc-wash { background: rgba(15, 23, 42, 0.74); }
/* 'band': a soft, clearer band over the strip being taught */
.sc-layer--band .sc-wash {
    -webkit-mask: linear-gradient(180deg, #000 0, #000 var(--t0), rgba(0, 0, 0, 0.25) var(--t1), rgba(0, 0, 0, 0.25) var(--t2), #000 var(--t3), #000 100%);
    mask: linear-gradient(180deg, #000 0, #000 var(--t0), rgba(0, 0, 0, 0.25) var(--t1), rgba(0, 0, 0, 0.25) var(--t2), #000 var(--t3), #000 100%);
}
/* 'below': starts under the deployed nav with a feathered top edge */
.sc-layer--below .sc-wash {
    -webkit-mask: linear-gradient(180deg, transparent 0, #000 22px);
    mask: linear-gradient(180deg, transparent 0, #000 22px);
}
.sc-msg {
    position: absolute;
    left: 16px;
    right: 16px;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #334155;
    text-wrap: balance;
}
.sc-tap {
    position: absolute;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #3b82f6;
    opacity: 0;
    transition: opacity 0.35s ease;
}
.sc-layer--band .sc-tap { bottom: calc(30px + env(safe-area-inset-bottom, 0px)); }
.sc-tap--show { opacity: 1; }
.sc-layer--dark .sc-msg { color: #e2e8f0; }
.sc-layer--dark .sc-tap { color: #93c5fd; }

.sc-gesture { position: absolute; left: 0; right: 0; height: 64px; }
.sc-arrow { position: absolute; top: 6px; width: 88px; height: 52px; opacity: 0.6; overflow: visible; fill: var(--sc-arrow); }
.sc-arrow--l { left: 10px; transform: scaleX(-1); }
.sc-arrow--r { right: 10px; }
/* The demo's glove, aimed at ~355 deg: the art points at ~315 deg, turned 40 deg about its fingertip
   (top-left of the art). The swipe moves `translate`, which applies before `rotate`, so it stays level. */
.sc-hand {
    position: absolute;
    left: 50%;
    top: 22px;
    width: 50px;
    height: 55px;
    margin-left: -4px;
    background: url('/static/img/coach_hand.png') center / contain no-repeat;
    filter: drop-shadow(0 3px 5px rgba(0, 0, 0, 0.35));
    opacity: 0;
    rotate: 40deg;
    transform-origin: 6% 4%;
}
/* onboarding: the fingertip sits just below the arrow tails (the shafts end 41px into the gesture) */
.sc-layer--band .sc-hand { top: 41px; }
.sc-layer--on .sc-hand { animation: sc-swipe 3s ease-in-out forwards; }
@keyframes sc-swipe {
    0%   { translate: 0 0; opacity: 0; }
    10%  { translate: 0 0; opacity: 1; }
    32%  { translate: 58px 0; opacity: 1; }
    48%  { translate: 0 0; opacity: 1; }
    74%  { translate: -58px 0; opacity: 1; }
    92%  { translate: 0 0; opacity: 1; }
    100% { translate: 0 0; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .sc-layer--on .sc-hand { animation-duration: 0.01s; }
}

/* What the coach is teaching reads as "behind the layer": blurred until the tap. */
.sc-behind { filter: blur(2.6px); transition: filter 0.25s ease; }
.sc-behind.sc-behind--hint { filter: blur(4px); }
