/* FAST prep: animated lesson player. The stage is drawn at 1920×1080 and scaled to fit. */
.fv-frame{position:relative;width:100%;overflow:hidden;border-radius:inherit;background:var(--fvbg,#1b1020)}
.fv-stage{position:absolute;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0;overflow:hidden;background:radial-gradient(120% 140% at 15% 10%,var(--bg2) 0%,var(--bg) 55%,color-mix(in srgb,var(--bg) 70%,#000) 100%);color:var(--ink);font-family:'Host Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.fv-bg{position:absolute;inset:0;pointer-events:none}
.fv-blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55}
.fv-blob.b0{width:820px;height:820px;left:-180px;top:-260px;background:var(--acc)}
.fv-blob.b1{width:700px;height:700px;right:-160px;bottom:-240px;background:var(--acc2);opacity:.38}
.fv-blob.b2{width:520px;height:520px;left:58%;top:30%;background:color-mix(in srgb,var(--bg2) 60%,#fff);opacity:.18}
.fv-grain{position:absolute;inset:0;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.fv-stripe{position:absolute;left:0;right:0;top:0;height:14px;display:flex;transform-origin:left}
.fv-stripe i{flex:1}.fv-stripe i:nth-child(1){background:#5B63D6}.fv-stripe i:nth-child(2){background:#D81F67}.fv-stripe i:nth-child(3){background:#E5482A}.fv-stripe i:nth-child(4){background:#E2A33A}.fv-stripe i:nth-child(5){background:#2E8FB8}
.fv-brand{position:absolute;left:96px;top:62px;display:flex;gap:22px;align-items:baseline;font-family:'IBM Plex Mono',monospace;font-size:26px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.fv-brand b{font-weight:500;color:var(--ink)}
.fv-prog{position:absolute;left:96px;right:96px;bottom:58px;height:6px;border-radius:3px;background:rgba(255,255,255,.14);overflow:hidden}
.fv-prog i{display:block;height:100%;background:var(--acc);transform-origin:left}
.fv-scene{position:absolute;inset:0;padding:170px 150px 140px;display:flex;flex-direction:column;justify-content:center}
.fv-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.fv-w>span{display:inline-block}
.fv-h1{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:168px;line-height:.95;letter-spacing:-.015em;max-width:1400px;margin:0}
.fv-h2{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:112px;line-height:1;letter-spacing:-.01em;max-width:1500px;margin:0}
.fv-sub{font-size:52px;line-height:1.3;color:var(--soft);margin:44px 0 0;max-width:1300px}
.fv-line{font-size:54px;line-height:1.32;color:var(--soft);margin:30px 0 0;max-width:1350px}
.fv-center{text-align:center;margin-left:auto;margin-right:auto}
.fv-left{text-align:left}
.fv-kicker{font-family:'IBM Plex Mono',monospace;font-size:30px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc2);margin-bottom:26px}
/* title */
.fv-title .fv-chip{align-self:flex-start;font-family:'IBM Plex Mono',monospace;font-size:32px;letter-spacing:.08em;background:var(--ink);color:var(--bg);padding:14px 30px;border-radius:999px;margin-bottom:46px}
.fv-ring{position:absolute;right:120px;top:50%;width:620px;height:620px;margin-top:-310px}
.fv-ring svg{width:100%;height:100%}
.fv-ring circle{fill:none;stroke:var(--acc);stroke-width:22;stroke-linecap:round;stroke-dasharray:1131}
.fv-dots{position:absolute;right:140px;bottom:170px;display:grid;grid-template-columns:repeat(6,26px);gap:26px}
.fv-dots i{width:26px;height:26px;border-radius:50%;background:var(--acc2)}
/* hook */
.fv-hook{flex-direction:row;align-items:center;gap:90px}
.fv-q{flex:none;width:420px;height:420px;border-radius:50%;background:var(--acc);color:var(--bg);display:grid;place-items:center;font-family:'Instrument Serif',serif;font-size:340px;line-height:1;padding-bottom:30px;box-shadow:0 40px 90px -30px rgba(0,0,0,.5)}
.fv-col{flex:1}
/* define */
.fv-term{font-family:'Instrument Serif',serif;font-size:190px;line-height:.95;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.fv-term span{display:inline-block}
.fv-ul{height:14px;width:520px;background:linear-gradient(90deg,var(--acc),var(--acc2));border-radius:7px;margin:30px 0 40px;transform-origin:left}
.fv-def{font-size:60px;line-height:1.28;max-width:1400px;margin:0}
.fv-card{align-self:flex-start;margin-top:56px;max-width:1300px;background:var(--ink);color:var(--bg);font-size:44px;line-height:1.35;padding:34px 46px 38px;border-radius:26px;box-shadow:0 30px 70px -30px rgba(0,0,0,.55)}
.fv-cardlab{display:block;font-family:'IBM Plex Mono',monospace;font-size:24px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin-bottom:10px}
/* steps */
.fv-steplist{position:relative;margin-top:60px;display:grid;gap:34px;padding-left:4px}
.fv-rail{position:absolute;left:43px;top:30px;bottom:30px;width:6px;border-radius:3px;background:rgba(255,255,255,.22);transform-origin:top}
.fv-step{display:flex;align-items:center;gap:40px;position:relative}
.fv-step b{flex:none;width:92px;height:92px;border-radius:50%;background:var(--acc);color:var(--bg);display:grid;place-items:center;font-family:'Instrument Serif',serif;font-weight:400;font-size:62px;box-shadow:0 0 0 10px color-mix(in srgb,var(--bg) 70%,transparent)}
.fv-step span{font-size:54px;line-height:1.25;max-width:1350px}
/* example */
.fv-quote{margin:0;font-family:'Instrument Serif',serif;font-size:84px;line-height:1.15;background:rgba(255,255,255,.07);border-left:14px solid var(--acc);padding:50px 64px;border-radius:0 30px 30px 0;max-width:1550px}
.fv-hl{color:inherit;padding:0 .1em;border-radius:10px;background:linear-gradient(var(--acc2),var(--acc2)) no-repeat 0 70%/0% 78%;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.fv-notes{margin-top:54px;display:grid;gap:26px}
.fv-note{display:flex;align-items:center;gap:30px}
.fv-note i{flex:none;width:90px;height:8px;border-radius:4px;background:var(--acc2);transform-origin:left}
.fv-note span{font-size:52px;line-height:1.25;color:var(--ink)}
/* trap */
.fv-hazard{position:absolute;left:-100px;right:-100px;top:120px;height:70px;background:repeating-linear-gradient(-45deg,var(--acc2) 0 46px,transparent 46px 92px);opacity:.85}
.fv-warn{display:flex;align-items:center;gap:30px}
.fv-badge{display:inline-grid;place-items:center;width:110px;height:110px;border-radius:50%;background:var(--acc2);color:var(--bg);font-family:'Host Grotesk',sans-serif;font-weight:600;font-size:80px}
.fv-trapline{position:relative;align-self:flex-start;margin-top:64px;display:flex;align-items:center;gap:30px;font-size:56px;line-height:1.25;color:var(--soft);max-width:1500px}
.fv-x{flex:none;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:48px;color:#ff8f8f}
.fv-strike{position:absolute;left:110px;right:0;top:52%;height:6px;background:#ff8f8f;border-radius:3px;transform-origin:left}
.fv-fix{align-self:flex-start;margin-top:40px;display:flex;align-items:center;gap:30px;font-size:58px;line-height:1.25;background:var(--ink);color:var(--bg);padding:30px 48px 34px 30px;border-radius:26px;max-width:1550px}
.fv-ok{flex:none;width:80px;height:80px;border-radius:50%;background:var(--acc);color:var(--bg);display:grid;place-items:center;font-size:48px}
/* recap */
.fv-check{display:flex;align-items:center;gap:40px;margin-top:42px}
.fv-check svg{flex:none;width:96px;height:96px}
.fv-check circle{fill:none;stroke:var(--acc);stroke-width:4;stroke-dasharray:114}
.fv-check path{fill:none;stroke:var(--acc2);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30}
.fv-check span{font-size:58px;line-height:1.25;max-width:1400px}
/* end */
.fv-end{align-items:center;text-align:center}
.fv-endmark{font-size:180px;color:var(--acc);line-height:1;margin-bottom:40px}

/* ---------- player chrome ---------- */
.fvp{position:relative;border-radius:22px;overflow:hidden;background:#140c18;box-shadow:0 30px 70px -36px rgba(42,26,51,.6);outline:none}
.fvp:focus-visible{box-shadow:0 0 0 3px var(--accent-text,#B63A1E)}
.fvp-screen{cursor:pointer}
.fvp-big{position:absolute;left:50%;top:50%;width:104px;height:104px;margin:-52px 0 0 -52px;border:0;border-radius:50%;background:#fff;color:#2A1033;display:grid;place-items:center;cursor:pointer;box-shadow:0 18px 40px -12px rgba(0,0,0,.5);transition:transform .2s,opacity .3s}
.fvp-big svg{width:44px;height:44px;margin-left:6px}
.fvp-big:hover{transform:scale(1.06)}
.fvp.started .fvp-big{opacity:0;pointer-events:none}
.fvp-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#1d1322;color:#f5ecf7}
.fvp-bar button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;height:36px;min-width:36px;border-radius:8px;display:grid;place-items:center;padding:0 8px}
.fvp-bar button:hover{background:rgba(255,255,255,.1)}
.fvp-bar button:focus-visible{outline:2px solid #fff;outline-offset:1px}
.fvp-bar svg{width:20px;height:20px}
.fvp .i-pause{display:none}.fvp.is-playing .i-pause{display:block}.fvp.is-playing .i-play{display:none}
.fvp-track{position:relative;flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.18);cursor:pointer;touch-action:none}
.fvp-track:focus-visible{outline:2px solid #fff;outline-offset:4px}
.fvp-fill{position:absolute;inset:0;border-radius:4px;background:#FF7A5C;transform-origin:left;transform:scaleX(0)}
.fvp-ticks i{position:absolute;top:-2px;width:2px;height:12px;background:rgba(255,255,255,.45)}
.fvp-time{font-family:'IBM Plex Mono',monospace;font-size:.75rem;white-space:nowrap;opacity:.85}
.fvp:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0;background:#000}
@media (max-width:560px){.fvp-back,.fvp-time{display:none}.fvp-big{width:72px;height:72px;margin:-36px 0 0 -36px}.fvp-big svg{width:32px;height:32px}}

.fv-art{position:absolute;pointer-events:none}
.fv-glyph{right:120px;top:50%;margin-top:-420px;font-family:'Instrument Serif',serif;font-size:820px;line-height:1;color:transparent;-webkit-text-stroke:5px color-mix(in srgb,var(--acc) 70%,transparent)}
.fv-bignum{right:150px;top:50%;margin-top:-400px;font-family:'Instrument Serif',serif;font-size:760px;line-height:1;color:color-mix(in srgb,var(--acc2) 22%,transparent)}
.fv-star{right:170px;top:50%;width:440px;height:440px;margin-top:-220px}
.fv-star svg{width:100%;height:100%;fill:color-mix(in srgb,var(--acc2) 26%,transparent);stroke:var(--acc2);stroke-width:2.5;stroke-linejoin:round}
/* keep text clear of the decorative ring, big number and star */
.fv-title .fv-h1{max-width:1020px}.fv-title .fv-sub{max-width:1000px}
.fv-step span{max-width:1080px}
.fv-check span{max-width:1060px}
.fv-define .fv-def,.fv-define .fv-card{max-width:1180px}

.fvp-snd,.fvp-mus{background:none;border:0;color:inherit;width:36px;height:36px;display:grid;place-items:center;cursor:pointer;border-radius:8px;opacity:.9}
.fvp-snd svg,.fvp-mus svg{width:20px;height:20px}
.fvp-snd .i-off{display:none}.fvp-snd.off .i-on{display:none}.fvp-snd.off .i-off{display:block}
.fvp-mus.off{opacity:.4}.fvp-mus.off svg{text-decoration:line-through}
.fvp-snd:hover,.fvp-mus:hover{background:rgba(255,255,255,.12)}
