/* File Manager graphic — F1 (800×600, light, token-driven). 24s loop.
   beats: 2s mobile upload · 5–8s photos land · 10s share to portal · 15s signature · 19s certificate · 23s fade */
.rcg .fm{background:var(--g-bg,#fff);color:var(--g-ink,#111318);text-align:left;line-height:normal;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;--fm-t:24s}.rcg .fm *{font-family:inherit;box-sizing:border-box;margin:0}
.rcg .ab.fm{width:800px;height:450px}
.rcg .fm .scene{position:absolute;inset:0;animation:fmfade var(--fm-t) linear infinite}
.rcg .fm .panel{position:absolute;inset:0;background:var(--g-bg,#fff);overflow:hidden;display:grid;grid-template-columns:186px 1fr}
/* tabs */
.rcg .fm .tabs{position:absolute;left:0;right:0;top:0;height:38px;border-bottom:1px solid var(--g-line,#eceef2);display:flex;align-items:stretch;padding:0 18px;gap:18px;z-index:2;background:var(--g-bg,#fff)}
.rcg .fm .tabs span{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--g-mute,#6b7280);border-bottom:2px solid transparent}.rcg .fm .tabs span.on{color:#1b64f3;border-color:#1b64f3}
.rcg .fm .tabs svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* sidebar */
.rcg .fm .side{padding:54px 12px 0 18px;border-right:1px solid var(--g-line,#eceef2)}
.rcg .fm .side .h{font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g-mute,#7a8190);margin-bottom:10px;display:flex;justify-content:space-between}
.rcg .fm .fo{display:flex;align-items:center;gap:8px;height:28px;padding:0 8px;border-radius:7px;font-size:10.5px;color:var(--g-ink,#111318);position:relative;white-space:nowrap}.rcg .fm .fo > svg + *{overflow:hidden;text-overflow:ellipsis}
.rcg .fm .fo.on{background:var(--g-hi,#f3f4f6);font-weight:600}
.rcg .fm .fo svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;color:var(--g-mute,#7a8190)}
.rcg .fm .fo .c{margin-left:auto;font-size:9.5px;color:var(--g-mute2,#9aa0ab);position:relative;width:18px;height:12px;text-align:right}.rcg .fm .fo .c span{position:absolute;right:0;top:0}
.rcg .fm .fo .c .a{animation:fmnu var(--fm-t) step-end infinite}.rcg .fm .fo .c .b{opacity:0;animation:fmnk var(--fm-t) step-end infinite}
.rcg .fm .fo.pt .c .a{animation-name:fmpu}.rcg .fm .fo.pt .c .b{animation-name:fmpk}
.rcg .fm .fo.sg .c .a{animation-name:fmsu}.rcg .fm .fo.sg .c .b{animation-name:fmsk}
.rcg .fm .fo.pt::after{content:"";position:absolute;inset:0;border-radius:7px;background:rgba(27,100,243,.1);opacity:0;animation:fmpflash var(--fm-t) ease-out infinite}
/* main */
.rcg .fm .main{padding:48px 22px 0 20px;position:relative}
.rcg .fm .crumb{font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px}.rcg .fm .crumb svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rcg .fm .crumb small{font-size:9.5px;font-weight:400;color:var(--g-mute,#7a8190);margin-left:4px;position:relative;display:inline-block;width:52px;height:12px}.rcg .fm .crumb small span{position:absolute;left:0;top:0;white-space:nowrap}.rcg .fm .crumb small .a{animation:fmnu var(--fm-t) step-end infinite}.rcg .fm .crumb small .b{opacity:0;animation:fmnk var(--fm-t) step-end infinite}
.rcg .fm .drop{margin-top:8px;height:56px;border:1.5px dashed var(--g-mute3,#d5d9e0);border-radius:10px;display:grid;place-items:center;align-content:center;gap:4px;position:relative;transition:none;animation:fmdrop var(--fm-t) linear infinite}
.rcg .fm .drop .t{font-size:10.5px;font-weight:600}.rcg .fm .drop .s{display:none}
.rcg .fm .drop .bt{display:flex;gap:6px;margin-top:2px}.rcg .fm .drop .bt span{height:22px;padding:0 9px;border-radius:6px;border:1px solid var(--g-line,#e3e5ea);font-size:9.5px;font-weight:600;display:flex;align-items:center;gap:5px;color:var(--g-ink2,#3a3f4b);background:var(--g-bg,#fff);position:relative}
.rcg .fm .drop .bt span.pri{background:#1b64f3;border-color:#1b64f3;color:#fff}
.rcg .fm .drop .bt span svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rcg .fm .drop .bt span.mob::after{content:"";position:absolute;inset:-3px;border-radius:8px;border:1.5px solid #1b64f3;opacity:0;animation:fmpulse var(--fm-t) ease-out infinite}
.rcg .fm .list{margin-top:10px}
.rcg .fm .hd{display:grid;grid-template-columns:1fr 128px 50px 84px;gap:10px;padding:0 8px 7px;font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--g-mute,#7a8190);border-bottom:1px solid var(--g-line,#eceef2)}
.rcg .fm .row{display:grid;grid-template-columns:1fr 128px 50px 84px;gap:10px;align-items:center;padding:0 8px;height:36px;border-bottom:1px solid var(--g-soft,#f0f1f4);font-size:10.5px;position:relative;overflow:hidden}
.rcg .fm .row .n{display:flex;align-items:center;gap:9px;min-width:0;font-weight:600}
.rcg .fm .row .n em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:150px}
.rcg .fm .ic{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;flex:none;font-size:7px;font-weight:800;letter-spacing:.04em;color:#fff}
.rcg .fm .ic.pdf{background:#ef4444}.rcg .fm .ic.vid{background:#7c5cff}.rcg .fm .ic.doc{background:#1b64f3}
.rcg .fm .th{width:30px;height:26px;border-radius:5px;overflow:hidden;flex:none;background:var(--g-hi,#eceef2)}.rcg .fm .th img{width:100%;height:100%;object-fit:cover;display:block}
.rcg .fm .chip{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:5px;border:1px solid var(--g-line,#e3e5ea);font-size:8.5px;font-weight:600;white-space:nowrap;color:var(--g-ink2,#3a3f4b)}
.rcg .fm .chip svg{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rcg .fm .chip.fd{background:var(--g-hi,#f3f4f6);border-color:transparent}
.rcg .fm .chip.st::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--d,#1b64f3)}
.rcg .fm .chip.pt{color:#1b64f3;border-color:var(--g-blueline,#c9d8fb);background:var(--g-bluetint,rgba(27,100,243,.06))}
.rcg .fm .sz,.rcg .fm .dt{font-size:9.5px;color:var(--g-mute,#6b7280);white-space:nowrap}
.rcg .fm .row .fld{position:relative;display:grid;flex:none;align-items:center;justify-items:start}.rcg .fm .row .fld > *{grid-area:1/1;position:static}
.rcg .fm .swap .a{animation:fmsu var(--fm-t) step-end infinite}.rcg .fm .swap .b{opacity:0;animation:fmsk var(--fm-t) ease-out infinite}
/* new rows */
.rcg .fm .row.nw{height:0;border-bottom-width:0;opacity:0}
.rcg .fm .row.n1{animation:fmrow1 var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite}
.rcg .fm .row.n2{animation:fmrow2 var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite}
.rcg .fm .row.n3{animation:fmrow3 var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite}
.rcg .fm .row.n4{animation:fmrow4 var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite}
.rcg .fm .row.nw::after{content:"";position:absolute;inset:0;background:var(--g-hi,#f3f4f6);opacity:0;animation:fmhl var(--fm-t) linear infinite;pointer-events:none;z-index:-1}
.rcg .fm .row.n1::after{animation-name:fmhl1}.rcg .fm .row.n2::after{animation-name:fmhl2}.rcg .fm .row.n3::after{animation-name:fmhl3}.rcg .fm .row.n4::after{animation-name:fmhl4}
.rcg .fm .row .pb{position:absolute;left:0;right:0;bottom:0;height:2px;background:#1b64f3;transform-origin:0 50%;transform:scaleX(0);animation:fmpb var(--fm-t) linear infinite}
.rcg .fm .row.n2 .pb{animation-name:fmpb2}.rcg .fm .row.n3 .pb{animation-name:fmpb3}
.rcg .fm .row.nw .pt{opacity:0;animation:fmptchip var(--fm-t) ease-out infinite}
/* phone card */
.rcg .fm .phone{position:absolute;right:26px;top:80px;width:150px;height:286px;border-radius:22px;background:#0c0d10;box-shadow:0 30px 60px -22px rgba(0,0,0,.55),inset 0 0 0 1.5px rgba(255,255,255,.14);color:#fff;padding:14px 12px;opacity:0;transform:translateX(24px);animation:fmphone var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite;z-index:6;overflow:hidden}
.rcg .fm .phone .notch{width:46px;height:5px;border-radius:3px;background:rgba(255,255,255,.18);margin:0 auto 12px}
.rcg .fm .phone .lb{font-size:8px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.rcg .fm .phone .tt{font-size:11px;font-weight:700;margin-top:3px;white-space:nowrap}
.rcg .fm .phone .qr{margin:14px auto 0;width:78px;height:78px;border-radius:8px;background:#fff;display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:7px;animation:fmqr var(--fm-t) linear infinite}
.rcg .fm .phone .qr i{background:#0c0d10;border-radius:1px}.rcg .fm .phone .qr i.o{background:transparent}
.rcg .fm .phone .qr + .lb{text-align:center;margin-top:10px;animation:fmqr var(--fm-t) linear infinite}
.rcg .fm .phone .cam{position:absolute;left:12px;right:12px;top:58px;height:150px;border-radius:12px;overflow:hidden;opacity:0;animation:fmcam var(--fm-t) linear infinite;background:#1c1f26}
.rcg .fm .phone .cam img{width:100%;height:100%;object-fit:cover;display:block}
.rcg .fm .phone .cam::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;animation:fmflash var(--fm-t) linear infinite}
.rcg .fm .phone .shut{position:absolute;left:50%;bottom:34px;width:40px;height:40px;margin-left:-20px;border-radius:50%;border:3px solid #fff;opacity:0;animation:fmcam var(--fm-t) linear infinite}.rcg .fm .phone .shut::after{content:"";position:absolute;inset:4px;border-radius:50%;background:#fff;animation:fmshut var(--fm-t) ease-out infinite}
.rcg .fm .phone .cnt{position:absolute;left:12px;right:12px;bottom:12px;text-align:center;font-size:8.5px;line-height:1.35;color:rgba(255,255,255,.75);opacity:0;animation:fmcnt var(--fm-t) step-end infinite;white-space:normal}
.rcg .fm .phone .cnt b{color:#4ade80}
.rcg .fm .phone .up{position:absolute;left:12px;right:12px;bottom:14px;opacity:0;animation:fmup var(--fm-t) linear infinite}
.rcg .fm .phone .up .l{font-size:9.5px;display:flex;justify-content:space-between;color:rgba(255,255,255,.75)}.rcg .fm .phone .up .bar{height:4px;border-radius:2px;background:rgba(255,255,255,.14);margin-top:6px;overflow:hidden}.rcg .fm .phone .up .bar i{display:block;height:100%;background:#1b64f3;transform-origin:0 50%;animation:fmupbar var(--fm-t) linear infinite}
/* share popover */
.rcg .fm .share{position:absolute;left:426px;top:222px;width:214px;background:var(--g-bg,#fff);border:1px solid var(--g-line,#e3e5ea);border-radius:12px;box-shadow:0 24px 50px -20px rgba(0,0,0,.35);padding:12px 14px;opacity:0;transform:translateY(6px);animation:fmshare var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite;z-index:7}
.rcg .fm .share .t{font-size:11px;font-weight:700}.rcg .fm .share .s{font-size:9px;color:var(--g-mute,#7a8190);margin-top:2px}
.rcg .fm .share .opt{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:10px;font-weight:600}
.rcg .fm .share .opt svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:#1b64f3}
.rcg .fm .share .tg{margin-left:auto;width:26px;height:15px;border-radius:8px;background:var(--g-mute3,#cfd3da);position:relative;animation:fmtg var(--fm-t) step-end infinite}.rcg .fm .share .tg::after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;animation:fmtgk var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite}
.rcg .fm .share .lnk{margin-top:10px;height:24px;border-radius:6px;border:1px solid var(--g-line,#e3e5ea);background:var(--g-soft,#f6f7f9);display:flex;align-items:center;padding:0 8px;gap:6px;font-size:8.5px;color:var(--g-mute,#6b7280);white-space:nowrap;overflow:hidden}
.rcg .fm .share .lnk b{margin-left:auto;color:#1b64f3;font-weight:700;position:relative;width:38px;height:11px;text-align:right}.rcg .fm .share .lnk b span{position:absolute;right:0;top:0}.rcg .fm .share .lnk b .a{animation:fmcpu var(--fm-t) step-end infinite}.rcg .fm .share .lnk b .b{opacity:0;animation:fmcpk var(--fm-t) step-end infinite}
.rcg .fm .cur{position:absolute;width:14px;height:14px;z-index:9;opacity:0;animation:fmcur var(--fm-t) cubic-bezier(.3,.7,.3,1) infinite}.rcg .fm .cur svg{width:100%;height:100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
/* signing card */
.rcg .fm .sign{position:absolute;left:230px;top:236px;width:260px;background:#0c0d10;color:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 30px 60px -22px rgba(0,0,0,.5);opacity:0;transform:translateY(8px);animation:fmsign var(--fm-t) cubic-bezier(.2,.8,.2,1) infinite;z-index:7}
.rcg .fm .sign .hd{display:flex;align-items:center;gap:9px}.rcg .fm .sign .av{width:28px;height:28px;border-radius:50%;background:#7ea6f8;color:#0b0c0f;font-size:10px;font-weight:700;display:grid;place-items:center;flex:none}
.rcg .fm .sign .n{font-size:11px;font-weight:700}.rcg .fm .sign .s{font-size:9px;color:rgba(255,255,255,.55);margin-top:2px}
.rcg .fm .sign .live{margin-left:auto;font-size:8px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#4ade80;display:flex;align-items:center;gap:4px}.rcg .fm .sign .live::before{content:"";width:5px;height:5px;border-radius:50%;background:#4ade80;animation:fmblink 1.2s ease-in-out infinite}
.rcg .fm .sign .pad{margin-top:12px;height:64px;border-radius:9px;background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.2);position:relative;overflow:hidden}
.rcg .fm .sign .pad svg{position:absolute;left:14px;top:8px;width:220px;height:48px}.rcg .fm .sign .pad path{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420;animation:fmdraw var(--fm-t) cubic-bezier(.4,0,.3,1) infinite}
.rcg .fm .sign .pad .ln{position:absolute;left:14px;right:14px;bottom:10px;height:1px;background:rgba(255,255,255,.25)}
.rcg .fm .sign .ft{margin-top:10px;display:flex;align-items:center;justify-content:space-between;font-size:9.5px;color:rgba(255,255,255,.7)}.rcg .fm .sign .ft b{color:#fff;font-weight:600;position:relative;display:inline-block;height:12px;width:120px}.rcg .fm .sign .ft b span{position:absolute;left:0;top:0;white-space:nowrap}.rcg .fm .sign .ft b .a{animation:fmsu var(--fm-t) step-end infinite}.rcg .fm .sign .ft b .b{opacity:0;animation:fmsk var(--fm-t) step-end infinite;color:#4ade80}
/* toast */
.rcg .fm .toast{position:absolute;right:22px;bottom:16px;background:#0c0d10;color:#fff;border-radius:10px;padding:10px 14px;display:flex;align-items:flex-start;gap:10px;opacity:0;z-index:8;max-width:330px}
.rcg .fm .toast .ok{width:22px;height:22px;border-radius:50%;background:#1f9d55;display:grid;place-items:center;flex:none}.rcg .fm .toast .ok svg{width:12px;height:12px;color:#fff}
.rcg .fm .toast .t{font-size:11.5px;font-weight:700;white-space:nowrap}.rcg .fm .toast .s{font-size:9.5px;color:rgba(255,255,255,.65);margin-top:1px;line-height:1.35}
.rcg .fm .toast.t1{animation:fmtoast1 var(--fm-t) ease-out infinite}.rcg .fm .toast.t2{animation:fmtoast2 var(--fm-t) ease-out infinite}.rcg .fm .toast.t3{animation:fmtoast3 var(--fm-t) ease-out infinite}
/* === keyframes (24s; 1s = 4.1667%) === */
@keyframes fmfade{0%,96.5%{opacity:1}98.5%{opacity:0}100%{opacity:1}}
@keyframes fmpulse{0%,6%{opacity:0;transform:scale(1)}7%{opacity:1}12%{opacity:0;transform:scale(1.25)}100%{opacity:0}}
@keyframes fmdrop{0%,12%{border-color:var(--g-mute3,#d5d9e0);background:transparent}14%,34%{border-color:#1b64f3;background:var(--g-bluetint,rgba(27,100,243,.05))}36%,100%{border-color:var(--g-mute3,#d5d9e0);background:transparent}}
@keyframes fmphone{0%,7%{opacity:0;transform:translateX(24px)}10%,36%{opacity:1;transform:none}39%,100%{opacity:0;transform:translateX(24px)}}
@keyframes fmqr{0%,14%{opacity:1}15.5%,100%{opacity:0}}
@keyframes fmcam{0%,15%{opacity:0}16%,29%{opacity:1}30.5%,100%{opacity:0}}
@keyframes fmflash{0%,19.5%{opacity:0}20%{opacity:.9}21.5%{opacity:0}23.5%{opacity:0}24%{opacity:.9}25.5%{opacity:0}27.5%{opacity:0}28%{opacity:.9}29.5%,100%{opacity:0}}
@keyframes fmshut{0%,19.5%{transform:scale(1)}20%{transform:scale(.7)}21%{transform:scale(1)}23.5%{transform:scale(1)}24%{transform:scale(.7)}25%{transform:scale(1)}27.5%{transform:scale(1)}28%{transform:scale(.7)}29%,100%{transform:scale(1)}}
@keyframes fmcnt{0%,15%{opacity:0}16%,29%{opacity:1}30%,100%{opacity:0}}
@keyframes fmup{0%,30%{opacity:0}31%,36%{opacity:1}37%,100%{opacity:0}}
@keyframes fmupbar{0%,30.5%{transform:scaleX(0)}35.5%,100%{transform:scaleX(1)}}
@keyframes fmrow1{0%,31%{height:0;border-bottom-width:0;opacity:0}33.5%,100%{height:36px;border-bottom-width:1px;opacity:1}}
@keyframes fmrow2{0%,32.5%{height:0;border-bottom-width:0;opacity:0}35%,100%{height:36px;border-bottom-width:1px;opacity:1}}
@keyframes fmrow3{0%,34%{height:0;border-bottom-width:0;opacity:0}36.5%,100%{height:36px;border-bottom-width:1px;opacity:1}}
@keyframes fmrow4{0%,79%{height:0;border-bottom-width:0;opacity:0}81.5%,100%{height:36px;border-bottom-width:1px;opacity:1}}
@keyframes fmhl1{0%,31%{opacity:0}33%,42%{opacity:1}46%,100%{opacity:0}}
@keyframes fmhl2{0%,32.5%{opacity:0}34.5%,42%{opacity:1}46%,100%{opacity:0}}
@keyframes fmhl3{0%,34%{opacity:0}36%,42%{opacity:1}46%,100%{opacity:0}}
@keyframes fmhl4{0%,79%{opacity:0}81%,90%{opacity:1}94%,100%{opacity:0}}
@keyframes fmpb{0%,33%{transform:scaleX(0);opacity:1}36%{transform:scaleX(1);opacity:1}37%,100%{opacity:0}}
@keyframes fmpb2{0%,34.5%{transform:scaleX(0);opacity:1}37%{transform:scaleX(1);opacity:1}38%,100%{opacity:0}}
@keyframes fmpb3{0%,36%{transform:scaleX(0);opacity:1}38.5%{transform:scaleX(1);opacity:1}39.5%,100%{opacity:0}}
@keyframes fmnu{0%,36%{opacity:1}36.5%,100%{opacity:0}}@keyframes fmnk{0%,36%{opacity:0}36.5%,100%{opacity:1}}
@keyframes fmpu{0%,52%{opacity:1}52.5%,100%{opacity:0}}@keyframes fmpk{0%,52%{opacity:0}52.5%,100%{opacity:1}}
@keyframes fmpflash{0%,52%{opacity:0}53%{opacity:1}60%,100%{opacity:0}}
@keyframes fmcur{0%,41%{opacity:0;left:640px;top:300px}43%{opacity:1;left:600px;top:236px}47%{left:600px;top:236px}49%{left:598px;top:234px}50%{left:600px;top:236px}52%,54%{left:590px;top:330px}56%{left:590px;top:330px}58%{opacity:0}100%{opacity:0}}
@keyframes fmshare{0%,44%{opacity:0;transform:translateY(6px)}46%,58%{opacity:1;transform:none}60%,100%{opacity:0;transform:translateY(4px)}}
@keyframes fmtg{0%,49%{background:var(--g-mute3,#cfd3da)}50%,100%{background:#1b64f3}}
@keyframes fmtgk{0%,49%{transform:none}50%,100%{transform:translateX(11px)}}
@keyframes fmcpu{0%,55.5%{opacity:1}56%,100%{opacity:0}}@keyframes fmcpk{0%,55.5%{opacity:0}56%,100%{opacity:1}}
@keyframes fmptchip{0%,50%{opacity:0;transform:translateY(3px)}52%,100%{opacity:1;transform:none}}
@keyframes fmtoast1{0%,56%{opacity:0;transform:translateY(10px)}58%,62.5%{opacity:1;transform:none}64%,100%{opacity:0}}
@keyframes fmsign{0%,63%{opacity:0;transform:translateY(8px)}65%,79%{opacity:1;transform:none}81%,100%{opacity:0;transform:translateY(6px)}}
@keyframes fmdraw{0%,67%{stroke-dashoffset:420}76%,100%{stroke-dashoffset:0}}
@keyframes fmsu{0%,78%{opacity:1}78.5%,100%{opacity:0}}@keyframes fmsk{0%,78%{opacity:0;transform:translateY(3px)}79%,100%{opacity:1;transform:none}}
@keyframes fmtoast2{0%,80%{opacity:0;transform:translateY(10px)}82%,89%{opacity:1;transform:none}91%,100%{opacity:0}}
@keyframes fmtoast3{0%{opacity:0}100%{opacity:0}}
@keyframes fmblink{50%{opacity:.25}}
/* F2 = file manager only (800×450) · F3 = phone only (150×286 stage). Same 24s clock. */
.rcg .fm.f2 .phone{display:none}
.rcg .fm.f3{background:transparent}.rcg .ab.f3{width:150px;height:286px}.rcg .fm.f3 .scene{animation:none}
.rcg .fm.f3 .phone{left:0;top:0;right:auto;animation-name:fmphone3}
@keyframes fmphone3{0%,7%{opacity:0;transform:translateX(24px)}10%,36%{opacity:1;transform:none}39%,100%{opacity:0;transform:translateX(24px)}}
/* dark tokens */
html[data-theme="dark"] .rcg .fm{--g-bg:#141821;--g-ink:#f4f5f7;--g-ink2:#c7ccd5;--g-mute:#9aa0ab;--g-mute2:#6b7280;--g-mute3:#4b5260;--g-line:#262b36;--g-soft:#1c1f26;--g-hi:rgba(255,255,255,.07);--g-bluetint:rgba(59,124,255,.18);--g-blueline:rgba(59,124,255,.4)}
html[data-theme="dark"] .rcg .fm :is(.sign,.toast,.phone){box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 20px 40px -18px rgba(0,0,0,.6)}

