/* Audio and video pages (/services/audio-video/<page>/, 16 pages: the residential and commercial
   guides and 14 property-type pages). Loaded only by those pages (main.cam.av), with av-props.js.
   Everything is scoped under main.cam so nothing reaches the shared header, footer or mobile call bar.
   1. The audio and video overview's page CSS, unchanged (its pink .cam.av layer included).
   2. State copies (.msv / .ms-off) and the mono fallback face (as cam-areas.css).
   3. The pages' own rules; where a mockup rule differs from the overview's, the mockup's comes after
      it. Animations use only transform, opacity, stroke-dashoffset and offset-distance; page code
      prefixes: .rv- .cv- (guides), .va- .vc- .vb- .vs- .vt- .vo- .vf- .vk- .vd- .vl- .vh- .vm- .vw- .ve-. */

/* ---- 1. audio and video overview ---- */
/* Camera pages, shared rules. Everything is scoped under main.cam so nothing
   reaches the shared header, footer or mobile call bar. Animations use only
   transform, opacity, stroke-dashoffset and offset-distance. */
main.cam{display:block;background:#060910;color:#e8edf5;font-family:var(--sans)}
.cam a{color:#4d9eff}.cam a:hover{color:#8bbcff}
.cam .wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.cam .m{font-family:var(--mono)}
.cam .sec{position:relative;padding:112px 0;overflow:hidden}
.cam .cam-hero{padding:calc(var(--nav-h) + 16px) 0 104px}
.cam .alt{background:#070b14;border-top:1px solid rgba(120,170,255,.12);border-bottom:1px solid rgba(120,170,255,.12)}
.cam .grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(77,158,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(77,158,255,.07) 1px,transparent 1px),linear-gradient(rgba(77,158,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(77,158,255,.032) 1px,transparent 1px);background-size:80px 80px,80px 80px,16px 16px,16px 16px;-webkit-mask-image:radial-gradient(80% 70% at 50% 40%,#000 25%,transparent 85%);mask-image:radial-gradient(80% 70% at 50% 40%,#000 25%,transparent 85%)}
.cam .crumb{font-family:var(--mono);font-size:12px;line-height:19.2px;letter-spacing:.08em;color:#7d92b3;margin-bottom:22px;padding-top:4px}
.cam .crumb a{color:#8a95a8;padding:14px 6px;margin:0 -6px}.cam .crumb a:hover{color:#e8edf5}
.cam .kick{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:#7d92b3}
.cam .cnt{border:1px solid rgba(120,170,255,.35);padding:2px 7px;color:#e8edf5}
.cam h1{margin:0;font-weight:900;letter-spacing:-.045em;line-height:.98;color:#e8edf5}
.cam .h2{margin:0;font-size:clamp(34px,4.6vw,56px);font-weight:800;letter-spacing:-.035em;line-height:1.02;color:#e8edf5}
.cam .cam-lead{margin:0;font-size:17px;line-height:1.65;color:#a3adbd}
.cam .c{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px;background:rgba(9,14,24,.82);border:1px solid rgba(120,170,255,.14);border-radius:4px;color:#e8edf5;overflow:hidden;transition:transform .3s}
.cam .c::before,.cam .c::after{content:"";position:absolute;width:12px;height:12px;border-color:#4d9eff;border-style:solid;opacity:.55;pointer-events:none}
.cam .c::before{top:-1px;left:-1px;border-width:2px 0 0 2px}
.cam .c::after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}
.cam a.c:hover,.cam .c.hv:hover{border-color:rgba(77,158,255,.6);background:rgba(12,20,36,.92);transform:translateY(-3px);color:#e8edf5}
.cam a.c:hover::before,.cam a.c:hover::after,.cam .c.hv:hover::before,.cam .c.hv:hover::after{width:28px;height:28px;opacity:1}
.cam .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:#7d92b3;text-transform:uppercase}
.cam .t{margin:0;font-size:21px;font-weight:700;letter-spacing:-.015em;color:#e8edf5;line-height:1.25}
.cam .p{margin:0;font-size:15px;line-height:1.6;color:#a3adbd}
.cam .go{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#4d9eff}
.cam a.go{display:inline-flex;align-items:center;min-height:44px}
.cam .p a{text-decoration:underline;text-underline-offset:2px}
.cam .cam-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border-radius:6px;font-weight:700;font-size:15px;line-height:1.2;transition:transform .2s}
.cam .cam-btn-p{background:#0060df;color:#fff;box-shadow:0 10px 30px -10px rgba(29,123,255,.7)}
.cam .cam-btn-p:hover{background:#1d7bff;color:#fff;transform:translateY(-2px)}
.cam .cam-btn-g{border:1px solid rgba(120,170,255,.3);color:#e8edf5;background:rgba(9,14,24,.6)}
.cam .cam-btn-g:hover{color:#fff;border-color:#4d9eff}
.cam .pill{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border:1px solid rgba(120,170,255,.22);border-radius:999px;font-size:13px;font-weight:600;color:#c9d2e0;background:rgba(5,8,16,.5)}
.cam .pill i{width:6px;height:6px;border-radius:50%;background:#22c55e}
.cam .ill{stroke:#4d9eff;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cam .dim{stroke:rgba(120,170,255,.35)}
.cam .lbl{font:600 10px var(--mono);fill:#8bbcff;letter-spacing:.08em}
.cam .lbl2{font:500 9.5px var(--mono);fill:#7d92b3;letter-spacing:.1em}
.cam .tog{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid rgba(120,170,255,.25);border-radius:5px;background:rgba(5,8,16,.6);color:#a9bddc;font:600 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.cam .tog:hover{border-color:#4d9eff;color:#fff}
.cam .tog.on{border-color:#4d9eff;background:rgba(29,123,255,.18);color:#fff}
.cam .tog.bad.on{border-color:#ff6b6b;background:rgba(255,107,107,.12);color:#ffb4b4}
.cam ul.lst{list-style:disc;margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}
.cam [hidden]{display:none!important}

@keyframes cam-flow{to{stroke-dashoffset:-48}}
.cam .flow{stroke-dasharray:6 6;animation:cam-flow 1.6s linear infinite}
.cam .flow-r{stroke-dasharray:3 9;animation:cam-flow 1.6s linear infinite reverse}
@keyframes cam-blink{0%,100%{opacity:1}50%{opacity:.15}}
.cam .blink{animation:cam-blink 1.1s step-end infinite}

.cam details.rfi{border-top:1px solid rgba(120,170,255,.14)}
.cam details.rfi summary{list-style:none;display:grid;grid-template-columns:90px minmax(0,1fr) 28px;align-items:center;gap:16px;min-height:76px;cursor:pointer;color:#e8edf5;font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.3;padding:8px 0}
.cam details.rfi summary::-webkit-details-marker{display:none}
.cam details.rfi .pl{width:28px;height:28px;border:1px solid rgba(120,170,255,.35);border-radius:4px;display:grid;place-items:center;color:#4d9eff;transition:transform .3s}
.cam details.rfi[open] .pl{transform:rotate(45deg)}
.cam .ans{margin:0 0 26px 106px;max-width:680px;font-size:15.5px}

/* Off-screen sections pause; reduced motion stops everything. */
.cam .paused,.cam .paused *{animation-play-state:paused!important}
@media (prefers-reduced-motion: reduce){
  .cam *,.cam *::before,.cam *::after{animation:none!important;transition:none!important}
}
@media (max-width:700px){
  .cam details.rfi summary{grid-template-columns:minmax(0,1fr) 28px;font-size:17px}
  .cam details.rfi summary .m{display:none}
  .cam .ans{margin-left:0}
  .cam .sec{padding:76px 0}
  .cam .cam-hero{padding:calc(var(--nav-h) + 16px) 0 72px}
}
/* Audio and video page: pink accent (#f472b6) next to the site blue. Scoped to main.cam.av.
   Colour changes are instant or opacity layers; animations use transform, opacity and stroke-dashoffset. */
/* First paint uses a fallback font (Inter arrives with the async main.css). A fallback scaled
   to Inter's metrics keeps the hero lines and pill rows the same when Inter swaps in. */
@font-face{font-family:'Inter av-fallback';font-weight:100 500;src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('LiberationSans'),local('Helvetica');ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:106.8%}
@font-face{font-family:'Inter av-fallback';font-weight:600;src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Helvetica Bold');ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:101.6%}
@font-face{font-family:'Inter av-fallback';font-weight:700 900;src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Helvetica Bold');ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:105.1%}
@font-face{font-family:'Inter av-fallback-h1';font-weight:100 900;src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Helvetica Bold');ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:112%}
main.cam.av{font-family:'Inter','Inter av-fallback',system-ui,-apple-system,sans-serif}
.cam.av h1{font-family:'Inter','Inter av-fallback-h1',system-ui,-apple-system,sans-serif}
/* Narrow phones: the two hero buttons always stack, so the row never changes when Inter swaps in. */
@media (max-width:480px){.cam.av .ctas{flex-direction:column;align-items:flex-start}}
.cam.av .c::before,.cam.av .c::after{border-color:#f472b6;opacity:.65}
.cam.av a.c:hover,.cam.av .c.hv:hover{border-color:rgba(244,114,182,.55)}
.cam.av .pk{stroke:#f472b6}
.cam.av .tog{padding:0 14px;letter-spacing:.08em}
.cam.av .tog:hover{border-color:#f472b6;color:#fff}
.cam.av .tog.on{border-color:#f472b6;background:rgba(244,114,182,.14);color:#fff}
.cam.av .tog.bad.on{border-color:#ff6b6b;background:rgba(255,107,107,.12);color:#ffb4b4}
.cam.av .tog.live{border-color:#ff5a5a;background:rgba(255,90,90,.14);color:#ffb4b4}
.cam.av details.rfi summary{grid-template-columns:minmax(0,1fr) 28px}
.cam.av details.rfi .pl{color:#f472b6}
.cam.av .ans{margin:0 0 26px;max-width:720px}
.cam svg text{pointer-events:none}
@keyframes av-ring{0%{transform:scale(.5);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@keyframes av-eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
.cam .eq{transform-box:fill-box;transform-origin:bottom;animation:av-eq 1s ease-in-out infinite}
@keyframes av-wave{0%{opacity:0;transform:scale(.6)}40%{opacity:1}100%{opacity:0;transform:scale(1.25)}}
.cam .wave{transform-box:fill-box;transform-origin:left center;animation:av-wave 1.6s ease-out infinite}

/* hero: room sizer. In-call colours are opacity layers over the base drawing. */
.cam .rm .disp{fill:#101a2e;stroke:#8bbcff;stroke-width:1.5}
.cam .rm .disp-on{fill:#f472b6;stroke:#fff;stroke-width:1.5;opacity:0;transition:opacity .4s}
.cam .rm .glow,.cam .rm .incall{opacity:0;transition:opacity .4s}
.cam .rm .fov{fill:rgba(244,114,182,.10)}
.cam .rm .fov-on{fill:rgba(244,114,182,.14);opacity:0;transition:opacity .4s}
.cam .rm .chairs rect{fill:#101a2e;stroke:rgba(139,188,255,.6)}
.cam .rm .mic{fill:none;stroke:#f5c46b;stroke-width:1.2;stroke-dasharray:3 3;opacity:.55;transition:opacity .4s}
.cam .rm .micp{fill:none;stroke:#f5c46b;stroke-width:1.5;transform-box:fill-box;transform-origin:center;opacity:0}
.cam .rm .micd{fill:#f5c46b}
.cam .rm .spk{fill:#0b1324;stroke:#f472b6;stroke-width:1.3}
.cam .rm .spw{fill:none;stroke:#f472b6;stroke-width:1.4;opacity:0;transform-box:fill-box;transform-origin:center}
.cam .rm .tp{fill:#0b1324;stroke:#8bbcff}
.cam .rm .tpd{fill:#334155}
.cam .rm .tpd-on{fill:#ff5a5a;opacity:0}
.cam .rm .incall{font:700 10px var(--mono);fill:#ff8a8a;text-anchor:middle}
.cam .rm.call .disp-on,.cam .rm.call .glow,.cam .rm.call .fov-on,.cam .rm.call .incall,.cam .rm.call .mic{opacity:1}
.cam .rm.call .micp{animation:av-ring 1.8s ease-out infinite}
.cam .rm.call .spw{animation:av-ring 1.4s ease-out infinite}
.cam .rm.call .tpd-on{opacity:1;animation:cam-blink 1s step-end infinite}
.cam .rng{width:100%;height:44px;margin:0;accent-color:#f472b6;cursor:pointer}
.cam .kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:12px 18px}
.cam .kv .k{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#7d92b3}
.cam .kv .v{font-size:15px;font-weight:600;color:#e8edf5;margin-top:3px;line-height:1.4}

/* zones: tints and wave strength follow the sliders (set on input, not animated) */
.cam .zn .zfill{fill:#f472b6}
.cam .zn .zw{fill:none;stroke:#f472b6;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:av-ring 2.2s ease-out infinite}
.cam .zn .zpg{fill:none;stroke:#f5c46b;stroke-width:2;transform-box:fill-box;transform-origin:center;opacity:0}
.cam .zn .zs{fill:#0b1324;stroke:#f472b6;stroke-width:1.4}
.cam .zn .pg .zfill{fill:#f5c46b}
.cam .zn .pg .zpg{animation:av-ring .9s ease-out infinite}
.cam .zn .pg .zw{animation:none;opacity:.1}
.cam .zn .zlab{font:700 10px var(--mono);letter-spacing:.1em;fill:#cfe0ff}
.cam .phone{width:min(300px,100%);border:2px solid rgba(139,188,255,.5);border-radius:30px;padding:18px 16px 20px;background:#05080f;box-shadow:0 30px 80px -30px rgba(244,114,182,.45)}
.cam .zrow{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:0 10px;align-items:center;padding:8px 0 2px;border-top:1px solid rgba(120,170,255,.12)}
.cam .zrow label{font-size:14px;font-weight:600;color:#e8edf5}
.cam .zrow output{font:500 12px var(--mono);color:#f9a8d4;text-align:right}
.cam .zrow input{grid-column:1 / span 2;width:100%;height:44px;margin:0;accent-color:#f472b6;cursor:pointer}
.cam .pgb{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;border:1px solid rgba(245,196,107,.5);border-radius:8px;background:rgba(245,196,107,.08);color:#ffd27a;font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.cam .pgb:hover{background:rgba(245,196,107,.16)}
.cam .banner{min-height:40px;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;font:600 12px var(--mono)}
.cam .banner.on{background:#f5c46b;color:#1a1204}
.cam .banner.off{background:rgba(244,114,182,.1);color:#f9a8d4}

/* mount: DIY and Seneca layers fade; the TV tilts with transform */
.cam .mt .diy,.cam .mt .pro{opacity:0;transition:opacity .45s}
.cam .mt.s-diy .diy,.cam .mt.s-pro .pro{opacity:1}
.cam .mt .tv{transition:transform .6s cubic-bezier(.3,.7,.3,1);transform-box:view-box;transform-origin:150px 130px}
.cam .mt.s-diy .tv{transform:rotate(-3deg) translateY(6px)}
.cam .mt .mtx{font:600 11px var(--mono)}

/* lists, property tiles, repair chips */
.cam .c.bad{background:rgba(255,107,107,.04);border-color:rgba(255,107,107,.22)}
.cam .c.good{background:rgba(74,222,128,.04);border-color:rgba(74,222,128,.25)}
.cam .chk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.cam .chk li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:15px;line-height:1.5;color:#dfe6f2}
.cam .mk{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 11px var(--sans);margin-top:1px}
.cam .pt{display:flex;flex-direction:column;gap:8px;min-height:180px}
.cam .pt svg{width:100%;height:64px}
.cam .bchip{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 16px;border:1px solid rgba(120,170,255,.2);border-radius:5px;background:rgba(5,8,16,.6);color:#e8edf5;font-weight:600;font-size:15px}
.cam .bchip:hover{border-color:#f472b6;color:#fff}
.cam .bchip i{width:7px;height:7px;border-radius:50%;background:#f472b6}
@media (max-width:760px){
  .cam.av details.rfi summary{font-size:17px}
}

/* ---- 2. state copies (cam-props.js) ---- */
.cam .ms-off{opacity:0!important}
.cam .msv{transition:opacity .35s}
/* mono labels keep their height when the web font arrives: the local fallback carries
   JetBrains Mono's vertical metrics (as cam-areas.css) */
@font-face{font-family:'JetBrains Mono Fallback';src:local('Menlo'),local('Consolas'),local('DejaVu Sans Mono'),local('Noto Mono'),local('Liberation Mono'),local('Courier New');ascent-override:102%;descent-override:30%;line-gap-override:0%}
main.cam{--mono:'JetBrains Mono','JetBrains Mono Fallback','Fira Code',monospace}

/* ---- 3. the pages' own rules ---- */
.cam .m{font-family:var(--mono)}
.cam .kick{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:#7d92b3}
.cam .h2{margin:0;font-size:clamp(34px,4.6vw,56px);font-weight:800;letter-spacing:-.035em;line-height:1.02}
.cam .c{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px;background:rgba(9,14,24,.82);border:1px solid rgba(120,170,255,.14);border-radius:4px;color:#e8edf5;overflow:hidden;transition:transform .3s}
.cam .c::before,.cam .c::after{content:"";position:absolute;width:12px;height:12px;border-color:#f472b6;border-style:solid;opacity:.6;pointer-events:none}
.cam a.c:hover,.cam .c.hv:hover{border-color:rgba(244,114,182,.55);background:rgba(12,20,36,.92);transform:translateY(-3px);color:#e8edf5}
.cam .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:#7d92b3;text-transform:uppercase}
.cam .t{margin:0;font-size:21px;font-weight:700;letter-spacing:-.015em;color:#e8edf5}
.cam .go{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#4d9eff}
.cam .tl-c{stroke:#f472b6}
.cam .lbl{font:600 10px var(--mono);fill:#8bbcff;letter-spacing:.08em}
.cam .lbl2{font:500 9.5px var(--mono);fill:#7d92b3;letter-spacing:.1em}
.cam .tog{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid rgba(120,170,255,.25);border-radius:5px;background:rgba(5,8,16,.6);color:#a9bddc;font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.cam .tog:hover{border-color:#f472b6;color:#fff}
.cam .tog.on{border-color:#f472b6;background:rgba(244,114,182,.14);color:#fff}
.cam .flow{stroke-dasharray:6 6;animation:cam-flow 1.6s linear infinite}
.cam .blink{animation:cam-blink 1.1s step-end infinite}
.cam .chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid rgba(120,170,255,.2);border-radius:4px;background:transparent;color:#a9bddc;font:600 12.5px var(--sans);cursor:pointer}
.cam .chip:hover{border-color:#f472b6;color:#fff}
.cam .chip.on{border-color:#f472b6;color:#fff;background:rgba(244,114,182,.1)}
.cam .chip b{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:rgba(244,114,182,.18);color:#f9a8d4;font:700 10px var(--mono)}
@keyframes avp-bang{0%,45%{opacity:0;transform:scale(.6)}50%,80%{opacity:1;transform:scale(1)}100%{opacity:0}}
.cam .bang{transform-box:fill-box;transform-origin:center;animation:avp-bang 4s infinite}
@keyframes avp-dash{to{stroke-dashoffset:-30}}
.cam .march{stroke-dasharray:4 4;animation:avp-dash 1.5s linear infinite}
.cam .row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:12px 0;border-top:1px dashed rgba(120,170,255,.16)}
.cam .row .rk{font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7d92b3;padding-top:3px}
.cam .row .rv{font-size:15.5px;line-height:1.55;color:#dfe6f2}
.cam .pf{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);align-items:stretch}
.cam .pf .ar{display:flex;align-items:center;justify-content:center}
.cam .bad{background:rgba(255,107,107,.04);border-color:rgba(255,107,107,.22)}
.cam .good{background:rgba(74,222,128,.04);border-color:rgba(74,222,128,.25)}
.cam .mk{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:700 12px var(--sans);flex:none}
.cam .pt{display:flex;flex-direction:column;gap:8px;min-height:186px}
.cam .pt svg{width:100%;height:66px}
.cam details.rfi summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:16px;min-height:76px;cursor:pointer;color:#e8edf5;font-size:19px;font-weight:700;letter-spacing:-.01em}
.cam details.rfi .pl{width:28px;height:28px;border:1px solid rgba(120,170,255,.35);border-radius:4px;display:grid;place-items:center;color:#f472b6;transition:transform .3s}
.cam .ans{margin:0 0 26px;max-width:720px;font-size:15.5px}
@media (max-width:760px){.cam .pf{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.cam .pf .ar{height:36px;transform:rotate(90deg)}}
@media (max-width:760px){.cam .row{grid-template-columns:minmax(0,1fr);gap:4px}}
@media (max-width:760px){.cam details.rfi summary{font-size:17px}}
@media (max-width:760px){.cam .sec{padding:76px 0}}
.cam .pk{stroke:#f472b6}
.cam .pk{stroke:#f472b6}
.cam .stage{transition:opacity .45s}
.cam .stage.off{opacity:0}
.cam .cmp{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px dashed rgba(120,170,255,.14);font-size:14px;color:#a9bddc}
.cam .cmp:is(:where(:not(.ms-p>*)):first-child,:where(.ms-p>*).ms-i1){border-top:0}
.cam .cmp b{font:600 12.5px var(--mono);letter-spacing:.04em;color:#e8edf5;text-align:right}
@keyframes avp-ringk{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
.cam .rk2{transform-box:fill-box;transform-origin:center;animation:avp-ringk 1.4s ease-out infinite}
.cam .sw2{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}
.cam .dpk{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:112px;padding:14px 10px;border:1px solid rgba(120,170,255,.18);border-radius:6px;background:#070b14;color:#c9d2e0;font:700 15px var(--sans);cursor:pointer}
.cam .dpk svg{width:48px;height:54px}
.cam .dpk:hover{border-color:#f472b6;color:#fff}
.cam .dpk.on{border-color:#f472b6;background:rgba(244,114,182,.1);color:#fff;box-shadow:0 0 0 4px rgba(244,114,182,.1)}
.cam .step{display:flex;flex-direction:column;gap:10px;padding:24px;border-top:2px solid rgba(244,114,182,.5);background:rgba(9,14,24,.6)}
.cam .step .sn{font:700 13px var(--mono);letter-spacing:.14em;color:#f472b6}
.cam .st{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:0 10px;border-radius:3px;font:700 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.cam .st.st-u{background:rgba(244,114,182,.16);color:#f9a8d4;border:1px solid rgba(244,114,182,.5)}
.cam .st.st-c{background:rgba(77,158,255,.14);color:#8bbcff;border:1px solid rgba(77,158,255,.45)}
.cam .st.st-r{background:rgba(245,196,107,.14);color:#f5c46b;border:1px solid rgba(245,196,107,.45)}
.cam .st.st-l{background:rgba(255,107,107,.12);color:#ff9b9b;border:1px solid rgba(255,107,107,.45)}
@media (max-width:760px){.cam .cmp{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.cam .cmp b{text-align:left}}
.cam .sched{border:1px solid rgba(120,170,255,.16);border-radius:4px;background:rgba(5,8,16,.55);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr))}
.cam .shead{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid rgba(120,170,255,.16);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#7d92b3}
.cam .srow{display:grid;grid-template-columns:58px minmax(0,1fr);gap:16px;padding:22px 20px;border-bottom:1px solid rgba(120,170,255,.1)}
.cam .srow:hover{background:rgba(29,123,255,.05)}
.cam .sno{font-size:11px;letter-spacing:.12em;color:#4d9eff;padding-top:4px}
.cam .stag{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid rgba(120,170,255,.28);border-radius:3px;font:600 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#8bbcff}
.cam .tc{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:rgba(9,14,24,.7);color:#e8edf5;min-height:120px;transition:transform .25s}
.cam .tc svg{width:100%;height:44px}
.cam .tc .tt2{font-size:15px;font-weight:700;letter-spacing:-.01em;color:#e8edf5}
.cam .tc .go{margin-top:auto;font-size:10.5px}
.cam a.tc:hover{border-color:rgba(77,158,255,.6);background:rgba(12,20,36,.92);transform:translateY(-2px)}
.cam .tc.here{border-style:dashed;border-color:rgba(74,222,128,.4);background:rgba(74,222,128,.04)}
.cam .big{font:800 44px/1 var(--sans);letter-spacing:-.03em}
@media (max-width:560px){.cam .srow{grid-template-columns:1fr;gap:8px}}
.cam a.tc:hover{border-color:rgba(244,114,182,.6)}
.cam .tc.here{border-color:rgba(244,114,182,.45);background:rgba(244,114,182,.05)}
.cam .sno{color:#f472b6}
.cam .stag{border-color:rgba(244,114,182,.35);color:#f9a8d4}
.cam .srow:hover{background:rgba(244,114,182,.05)}
.cam .rv{gap:16px}
.cam .va-rv{transform-box:fill-box;transform-origin:left center}
.cam .va-rv.go{animation:va-rv 1.3s linear both}
@keyframes va-rv{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .va-scan{opacity:0}
.cam .va-scan.go{animation:va-scan 1.45s linear both}
@keyframes va-scan{0%{transform:translateX(0);opacity:1}90%{transform:translateX(272px);opacity:1}100%{transform:translateX(272px);opacity:0}}
.cam .va-pop{transform-box:fill-box;transform-origin:center}
.cam .va-pop.go{animation:va-pop .45s cubic-bezier(.3,1.6,.5,1) both}
@keyframes va-pop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.cam .va-in.go{animation:va-in .5s cubic-bezier(.3,1.3,.5,1) both}
@keyframes va-in{from{transform:translateY(-12px);opacity:0}to{transform:none;opacity:1}}
.cam .va-lift.go{animation:va-lift .9s cubic-bezier(.25,.8,.3,1) both}
@keyframes va-lift{0%{transform:translateY(46px);opacity:0}25%{opacity:1}70%{transform:translateY(-5px)}85%{transform:translateY(-5px)}100%{transform:none;opacity:1}}
.cam .va-grow{transform-box:fill-box;transform-origin:center top}
.cam .va-grow.go{animation:va-grow .6s ease-out both}
@keyframes va-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.cam .va-dw{stroke-dashoffset:0}
.cam .va-dw.go{animation:va-dw .8s cubic-bezier(.4,.1,.3,1) both}
@keyframes va-dw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .va-drv.go{animation:va-drv .7s cubic-bezier(.4,.1,.3,1) both}
@keyframes va-drv{0%{transform:translateY(44px);opacity:0}30%{opacity:1}100%{transform:none;opacity:1}}
.cam .va-puff{opacity:0;transform-box:fill-box;transform-origin:center}
.cam .va-puff.go{animation:va-puff .7s ease-out both}
@keyframes va-puff{0%{opacity:0;transform:none}20%{opacity:1}100%{opacity:0;transform:translateY(16px) scale(2)}}
.cam .va-jab.go{animation:va-jab 1s cubic-bezier(.4,.1,.3,1) both}
@keyframes va-jab{0%{transform:translateY(60px);opacity:0}40%{opacity:1}70%{transform:translateY(-4px)}100%{transform:none;opacity:1}}
.cam .va-wv{transform-box:view-box;animation:va-wv 1.65s ease-out infinite}
@keyframes va-wv{0%{transform:scale(.35);opacity:0}15%{opacity:1}100%{transform:scale(3);opacity:0}}
.cam .va-bass{animation:va-bass 1s ease-in-out infinite}
@keyframes va-bass{0%,100%{opacity:.2}50%{opacity:1}}
.cam .va-up{animation:va-up 1.2s ease-out infinite}
@keyframes va-up{from{transform:translateY(8px);opacity:0}40%{opacity:1}to{transform:translateY(-8px);opacity:0}}
.cam .va-c1a{animation:va-c1a 3.6s cubic-bezier(.4,.1,.3,1) infinite both}
@keyframes va-c1a{0%,10%{transform:translateY(-26px);opacity:0}30%{opacity:1}45%,85%{transform:none;opacity:1}100%{transform:none;opacity:0}}
.cam .va-c2s{transform-box:fill-box;transform-origin:center;animation:va-c2s 3.2s cubic-bezier(.3,1.6,.5,1) infinite both}
@keyframes va-c2s{0%,35%{transform:scale(1.6) rotate(-8deg);opacity:0}50%,90%{transform:rotate(-4deg);opacity:1}100%{opacity:0;transform:rotate(-4deg)}}
.cam .va-fillh{transform-box:fill-box;transform-origin:center;animation:va-fillh 4s ease-out infinite}
@keyframes va-fillh{0%,20%{transform:scale(0)}35%,85%{transform:scale(1)}100%{transform:scale(0)}}
.cam .va-roll{animation:va-roll 4s ease-in-out infinite}
@keyframes va-roll{0%,40%{transform:translateX(0)}75%{transform:translateX(118px)}100%{transform:translateX(0)}}
.cam .va-hand{transform-box:view-box;transform-origin:56px 56px;animation:va-hand 6s linear infinite}
@keyframes va-hand{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.cam .va-sw{animation:va-sw 1.2s ease-out infinite}
@keyframes va-sw{0%{opacity:0;transform:translateX(-4px)}30%{opacity:1}100%{opacity:0;transform:translateX(6px)}}
.cam .va-box{animation:va-box 3.4s ease-in-out infinite}
@keyframes va-box{0%,15%{transform:translateX(0)}60%,100%{transform:translateX(62px)}}
.cam .va-dw2{stroke-dasharray:100 100;animation:va-dw2 3.4s ease-in-out infinite}
@keyframes va-dw2{0%{stroke-dashoffset:100}50%,100%{stroke-dashoffset:0}}
.cam .va-tag{align-self:flex-start;margin-top:6px;display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:3px;font:700 11px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.cam .va-p{background:rgba(74,222,128,.12);color:#8bf0b0;border:1px solid rgba(74,222,128,.4)}
.cam .va-b{background:rgba(255,107,107,.12);color:#ff9b9b;border:1px solid rgba(255,107,107,.45)}
.cam .va-span{grid-column:span 2}
.cam .va-sc{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cam .va-hint{display:none;font-size:11px;color:#7d92b3}
@media (max-width:760px){.cam .va-span{grid-column:auto}}
@media (max-width:640px){.cam .va-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .va-io,.cam .va-io *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .va-io .va-mv,.cam .va-io .va-scan,.cam .va-io .va-puff{opacity:0!important}}
.cam .va-ear{transform-box:fill-box;transform-origin:center;animation:va-ear 1.65s ease-out infinite}
@keyframes va-ear{0%{transform:scale(.8);opacity:0}40%{opacity:.9}100%{transform:scale(1.8);opacity:0}}
.cam .vb-tvm{transition:transform 1.1s cubic-bezier(.5,0,.25,1)}
.cam .vb-tvm.p1{transform:translate(0px,36px)}
.cam .vb-tvm.p2{transform:translate(135px,64px)}
.cam .vb-hot{opacity:0;transition:opacity .6s}
.cam .vb-tvm.hot .vb-hot{opacity:1;animation:vb-hot 1.4s ease-in-out infinite}
@keyframes vb-hot{50%{opacity:.35}}
.cam .vb-fl{transform-box:view-box;animation:vb-fl .5s ease-in-out infinite alternate}
@keyframes vb-fl{from{transform:scaleY(.82)}to{transform:scaleY(1.12)}}
.cam .vb-heat{stroke-dasharray:14 10;animation:vb-heat 1.1s linear infinite}
@keyframes vb-heat{to{stroke-dashoffset:24}}
.cam .vb-pt{offset-rotate:0deg;animation:vb-pt 2.8s linear infinite}
@keyframes vb-pt{0%{offset-distance:0%;opacity:0}10%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vb-dw{stroke-dasharray:100 100;stroke-dashoffset:0}
.cam .vb-dw.go{animation:vb-dw .9s cubic-bezier(.4,.1,.3,1) both}
@keyframes vb-dw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .vb-pull.go{animation:vb-pull 1.1s cubic-bezier(.5,0,.25,1) both}
@keyframes vb-pull{from{transform:translate(-21px,-36px)}to{transform:none}}
.cam .vb-c1{animation:vb-c1 2.8s ease-in-out infinite alternate}
@keyframes vb-c1{0%,15%{transform:translateX(24px)}85%,100%{transform:none}}
.cam .vb-slow{transform-box:fill-box;transform-origin:center;animation:vb-slow 3s linear infinite}
@keyframes vb-slow{to{transform:rotate(360deg)}}
.cam .vb-dw2{stroke-dasharray:100 100;animation:vb-dw2 3.6s ease-in-out infinite}
@keyframes vb-dw2{0%{stroke-dashoffset:100}55%,100%{stroke-dashoffset:0}}
.cam .vb-seal{transform-box:fill-box;transform-origin:center;animation:vb-seal 3.6s cubic-bezier(.3,1.6,.5,1) infinite both}
@keyframes vb-seal{0%,40%{transform:scale(0)}52%,92%{transform:scale(1)}100%{transform:scale(0)}}
.cam .vb-shim{animation:vb-shim 1.6s ease-out infinite}
@keyframes vb-shim{0%{opacity:0;transform:translateY(6px)}40%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
.cam .vb-run{opacity:.28;transition:opacity .4s}
.cam .vb-z.on .vb-run{opacity:1}
.cam .vb-glow{opacity:0;stroke-dasharray:100 100;stroke-dashoffset:0}
.cam .vb-z.on .vb-glow{opacity:.55}
.cam .vb-z.go .vb-dwz{animation:vb-dw 1.2s cubic-bezier(.4,.1,.3,1) both}
.cam .vb-pk{offset-rotate:0deg;opacity:0}
.cam .vb-z.on .vb-pk{animation:vb-pk 2.4s linear infinite}
@keyframes vb-pk{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vb-wv{opacity:0;transform-box:view-box}
.cam .vb-z.on .vb-wv{animation:vb-wv 1.8s ease-out infinite}
@keyframes vb-wv{0%{transform:scale(.4);opacity:0}15%{opacity:1}100%{transform:scale(1.8);opacity:0}}
.cam .vb-seal2{opacity:0;transform-box:fill-box;transform-origin:center}
.cam .vb-z.on .vb-seal2{opacity:1}
.cam .vb-z.go .vb-seal2{animation:vb-seal2 .45s cubic-bezier(.3,1.6,.5,1) both}
@keyframes vb-seal2{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.cam .vb-zbg{fill:rgba(120,170,255,.04);stroke:rgba(120,170,255,.14)}
.cam .vb-zr.on .vb-zbg{fill:rgba(244,114,182,.14);stroke:#f472b6}
.cam .vb-led{fill:#334155}
.cam .vb-zr.on .vb-led{fill:#4ade80}
.cam .vb-vol{fill:rgba(120,170,255,.35)}
.cam .vb-zr.on .vb-vol{fill:#f472b6}
.cam .vb-span{grid-column:span 2}
.cam .vb-sc{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cam .vb-hint{display:none;font-size:11px;color:#7d92b3}
@media (max-width:760px){.cam .vb-span{grid-column:auto}}
@media (max-width:640px){.cam .vb-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vb-io,.cam .vb-io *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vb-io .vb-mv{opacity:0!important}}
.cam .vc-dw{stroke-dasharray:100 100;stroke-dashoffset:0}
.cam .vc-dw.go{animation:vc-dw .9s cubic-bezier(.4,.1,.3,1) both}
@keyframes vc-dw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .vc-pop{transform-box:fill-box;transform-origin:center}
.cam .vc-pop.go{animation:vc-pop .45s cubic-bezier(.3,1.6,.5,1) both}
@keyframes vc-pop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.cam .vc-fly.go{animation:vc-fly .55s cubic-bezier(.25,.9,.3,1) both}
@keyframes vc-fly{from{transform:translate(60px,-14px) rotate(4deg);opacity:0}to{transform:none;opacity:1}}
.cam .vc-bar{transform-box:fill-box;transform-origin:left center}
.cam .vc-bar.go{animation:vc-bar 1.7s .2s cubic-bezier(.3,.8,.3,1) both}
@keyframes vc-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .vc-pk{offset-rotate:0deg;opacity:0}
.cam .vc-pk.go{animation:vc-pk 1.7s cubic-bezier(.45,.05,.55,.95) both}
@keyframes vc-pk{0%{offset-distance:0%;opacity:1}95%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vc-col{transform-box:fill-box;transform-origin:center bottom}
.cam .vc-col.go{animation:vc-col .5s cubic-bezier(.3,1.3,.5,1) both}
@keyframes vc-col{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.cam .vc-stamp{transform-box:view-box}
.cam .vc-stamp.go{animation:vc-stamp .55s .15s cubic-bezier(.5,0,.8,.4) both}
@keyframes vc-stamp{0%{transform:scale(2.4);opacity:0}70%{transform:scale(.96);opacity:1}100%{transform:scale(1);opacity:1}}
.cam .vc-ring{opacity:0;transform-box:fill-box;transform-origin:center}
.cam .vc-ring.go{animation:vc-ring .9s .55s ease-out both}
@keyframes vc-ring{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.4);opacity:0}}
.cam .vc-cfly{animation:vc-cfly 4.2s cubic-bezier(.25,.9,.3,1) infinite both}
@keyframes vc-cfly{0%{transform:translate(40px,-10px);opacity:0}15%,88%{transform:none;opacity:1}100%{transform:none;opacity:0}}
.cam .vc-cchk{transform-box:fill-box;transform-origin:center;animation:vc-cchk 4.2s cubic-bezier(.3,1.6,.5,1) infinite both}
@keyframes vc-cchk{0%,45%{transform:scale(0)}55%,88%{transform:scale(1)}100%{transform:scale(0)}}
.cam .vc-core{animation:vc-core 3s ease-in-out infinite alternate}
@keyframes vc-core{0%,15%{transform:translateX(16px)}85%,100%{transform:none}}
.cam .vc-dust{offset-rotate:0deg;animation:vc-dust 1.4s linear infinite}
@keyframes vc-dust{from{offset-distance:0%;opacity:1}to{offset-distance:100%;opacity:0}}
.cam .vc-sweep{animation:vc-sweep 4.8s linear infinite}
@keyframes vc-sweep{0%{transform:translateX(0)}100%{transform:translateX(250px)}}
.cam .vc-dw2{stroke-dasharray:100 100;animation:vc-dw2 3.4s ease-in-out infinite}
@keyframes vc-dw2{0%{stroke-dashoffset:100}50%,100%{stroke-dashoffset:0}}
.cam .vc-drill{animation:vc-drill .18s linear infinite alternate}
@keyframes vc-drill{from{transform:translateX(0)}to{transform:translateX(1.5px)}}
.cam .vc-hum{animation:vc-hum 1s ease-out infinite}
@keyframes vc-hum{0%{opacity:0;transform:translateX(-3px)}40%{opacity:1}100%{opacity:0;transform:translateX(6px)}}
.cam .vc-tl{animation:vc-tl 5s ease-in-out infinite}
@keyframes vc-tl{0%{transform:translateX(0)}20%,30%{transform:translateX(53px)}70%{transform:translateX(212px)}80%,100%{transform:translateX(254px)}}
.cam .vc-shd{transform-box:fill-box;transform-origin:center top;transition:transform 1.4s .3s cubic-bezier(.4,.1,.3,1)}
.cam .vc-dark{opacity:.2;transition:opacity 1s .5s}
.cam .vc-cl,.cam .vc-cd,.cam .vc-pg{opacity:0;transition:opacity .9s .5s}
.cam .vc-scr,.cam .vc-tvg{opacity:0;transition:opacity .8s .75s}
.cam .vc-wv{opacity:0;transform-box:view-box}
.cam .vc-room.m-movie .vc-shd,.cam .vc-room.m-off .vc-shd{transform:scaleY(1)}
.cam .vc-room.m-dinner .vc-shd{transform:scaleY(.5)}
.cam .vc-room.m-movie .vc-dark{opacity:.6}
.cam .vc-room.m-dinner .vc-dark{opacity:.18}
.cam .vc-room.m-off .vc-dark{opacity:.78}
.cam .vc-room.m-movie .vc-cl{opacity:.16}
.cam .vc-room.m-dinner .vc-cl{opacity:.45}
.cam .vc-room.m-dinner .vc-cd{opacity:.3}
.cam .vc-room.m-dinner .vc-pg{opacity:.95}
.cam .vc-room.m-movie .vc-scr,.cam .vc-room.m-movie .vc-tvg{opacity:1}
.cam .vc-room.m-movie .vc-wliv{animation:vc-wv 1.8s 1s ease-out infinite}
.cam .vc-room.m-dinner .vc-wliv,.cam .vc-room.m-dinner .vc-wdin{animation:vc-wv2 2.2s 1s ease-out infinite}
@keyframes vc-wv{0%{transform:scale(.4);opacity:0}15%{opacity:1}100%{transform:scale(2.6);opacity:0}}
@keyframes vc-wv2{0%{transform:scale(.4);opacity:0}15%{opacity:.55}100%{transform:scale(1.8);opacity:0}}
.cam .vc-pan{animation:vc-pan 7s ease-in-out infinite alternate}
@keyframes vc-pan{from{transform:translateX(0)}to{transform:translateX(220px)}}
.cam .vc-kb{fill:#1e2c46;stroke:rgba(139,188,255,.4)}
.cam .vc-kb.on{fill:#f472b6;stroke:#f9a8d4}
.cam .vc-pk2{offset-rotate:0deg;opacity:0}
.cam .vc-pk2.go{animation:vc-pk2 .35s linear both}
@keyframes vc-pk2{0%{offset-distance:0%;opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vc-hit{opacity:0}
.cam .vc-hit.go{animation:vc-hit 1.4s ease-out both}
@keyframes vc-hit{0%{opacity:0}10%{opacity:1}100%{opacity:.35}}
.cam .vc-log{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding:12px 14px;border:1px solid rgba(120,170,255,.16);border-radius:4px;background:rgba(5,8,16,.6)}
.cam .vc-lr{display:grid;grid-template-columns:28px 82px minmax(0,1fr);gap:8px;padding:4px 0;border-top:1px dashed rgba(120,170,255,.12);font:500 12px var(--mono);color:#a9bddc}
.cam .vc-lr>span:is(:where(:not(.ms-p>*)):first-child,:where(.ms-p>*).ms-i1){color:#f472b6}
.cam .vc-lr>span:is(:where(:not(.ms-p>*)):nth-child(2),:where(.ms-p>*).ms-i2){color:#e8edf5}
.cam .vc-lr>span:is(:where(:not(.ms-p>*)):nth-child(3),:where(.ms-p>*).ms-i3){color:#a9bddc}
.cam .vc-span{grid-column:span 2}
.cam .vc-sc{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cam .vc-hint{display:none;font-size:11px;color:#7d92b3}
@media (max-width:760px){.cam .vc-span{grid-column:auto}}
@media (max-width:640px){.cam .vc-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vc-io,.cam .vc-io *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vc-io .vc-mv{opacity:0!important}}
@media (prefers-reduced-motion:reduce){.cam .vc-io .vc-hit{opacity:.35}}
.cam .vk-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:1px;background:rgba(120,170,255,.14)}
.cam .vk-hero svg{display:block}
.cam .vk-p{opacity:0;transform:translateY(10px);transition:opacity .5s,transform .7s cubic-bezier(.3,.7,.3,1)}
.cam .vk-p.on{opacity:1;transform:none}
.cam .vk-cam,.cam .vk-box{transform-box:view-box;transform-origin:0 0;transition:transform 1.5s cubic-bezier(.45,0,.2,1) .55s}
.cam .vk-cam.c0{transform:translate(-72.73px,-81.45px) scale(1.4545)}
.cam .vk-cam.c1{transform:none}
.cam .vk-cam.c2{transform:translate(-395.88px,-198.99px) scale(2.5)}
.cam .vk-box.c0{transform:translate(50px,56px) scale(.6875)}
.cam .vk-box.c1{transform:none}
.cam .vk-box.c2{transform:translate(158.35px,79.6px) scale(.4)}
@keyframes vk-dim{0%{stroke-dashoffset:1}50%,100%{stroke-dashoffset:0}}
.cam .vk-dim{stroke-dasharray:1;animation:vk-dim 3.4s ease-in-out infinite}
@keyframes vk-ptz{0%,100%{transform:rotate(-34deg)}50%{transform:rotate(34deg)}}
.cam .vk-ptz{transform-box:view-box;transform-origin:200px 16px;animation:vk-ptz 5s ease-in-out infinite}
@keyframes vk-lobe{0%,100%{opacity:.12}25%{opacity:1}50%{opacity:.12}}
.cam .vk-lobe{animation:vk-lobe 2s ease-in-out infinite}
@keyframes vk-rip{0%{opacity:0;transform:translateY(-3px)}40%{opacity:.9}100%{opacity:0;transform:translateY(8px)}}
.cam .vk-rip{animation:vk-rip 1.8s ease-out infinite}
@keyframes vk-eq{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.55)}}
.cam .vk-eq{transform-box:fill-box;transform-origin:bottom;animation:vk-eq 1.6s ease-in-out infinite}
@keyframes vk-tap{0%,10%{transform:scale(.4);opacity:0}20%{opacity:1}40%,100%{transform:scale(1.8);opacity:0}}
.cam .vk-tap{transform-box:fill-box;transform-origin:center;animation:vk-tap 3.6s ease-out infinite}
@keyframes vk-chk{0%,15%{opacity:.12}25%,85%{opacity:1}100%{opacity:.12}}
.cam .vk-chk{animation:vk-chk 3.6s ease-out infinite}
@keyframes vk-c6{0%{stroke-dashoffset:1}55%,100%{stroke-dashoffset:0}}
.cam .vk-c6{stroke-dasharray:1;animation:vk-c6 3.4s ease-in-out infinite}
@keyframes vk-pk{from{offset-distance:0%;opacity:0}10%{opacity:1}88%{opacity:1}to{offset-distance:100%;opacity:0}}
.cam .vk-pk{animation:vk-pk 2.2s linear infinite}
@keyframes vk-beam{0%{stroke-dashoffset:1}30%,100%{stroke-dashoffset:0}}
.cam .vk-beam{stroke-dasharray:1;animation:vk-beam 4s ease-out infinite}
@keyframes vk-turn{0%,22%{opacity:1;transform:scale(1)}25%,100%{opacity:0;transform:scale(1.5)}}
.cam .vk-turn{transform-box:fill-box;transform-origin:center;opacity:0;animation:vk-turn 4s ease-out infinite}
@keyframes vk-sw{0%{opacity:0;transform:scale(.6)}25%{opacity:.9}100%{opacity:0;transform:scale(1.15)}}
.cam .vk-sw{transform-box:fill-box;transform-origin:50% 0;animation:vk-sw 1.8s ease-out infinite}
@keyframes vk-rf{0%{opacity:0;transform:translateX(4px)}30%{opacity:.8}100%{opacity:0;transform:translateX(-30px)}}
.cam .vk-rf{animation:vk-rf 1.8s ease-out infinite}
@keyframes vk-ec{to{stroke-dashoffset:-28}}
.cam .vk-ec{animation:vk-ec 1s linear infinite}
@keyframes vk-scroll{from{transform:translateX(0)}to{transform:translateX(-440px)}}
.cam .vk-scroll{animation:vk-scroll 7s linear infinite}
.cam .vk-aec{fill:rgba(139,188,255,.08);stroke:rgba(139,188,255,.5)}
.cam .vk-aec.a1{fill:rgba(255,107,107,.12);stroke:#ff6b6b}
.cam .vk-aec.a2{fill:rgba(74,222,128,.14);stroke:#4ade80}
.cam .vk-fg{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;align-items:start}
.cam .vk-scr{overflow-x:auto;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:#04070d}
.cam .vk-row{grid-template-columns:110px minmax(0,1fr);gap:12px;padding:10px 0}
.cam .vk-row .rv{font-size:14.5px}
.cam .vk-hint{display:none;font-size:11px;letter-spacing:.06em;color:#7d92b3;padding-top:6px}
.cam .vk-pf{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;margin-top:16px}
.cam .vk-ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.cam .vk-ul li{position:relative;padding-left:28px;font-size:15px;line-height:1.55;color:#c9d2e0}
.cam .vk-ul li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;box-sizing:border-box}
.cam .vk-x li::before{border:1.5px solid #ff6b6b;background:linear-gradient(45deg,transparent 46%,#ff6b6b 46%,#ff6b6b 56%,transparent 56%),linear-gradient(-45deg,transparent 46%,#ff6b6b 46%,#ff6b6b 56%,transparent 56%);background-size:10px 10px;background-position:center;background-repeat:no-repeat}
.cam .vk-ok li::before{border:1.5px solid #4ade80;background:radial-gradient(circle,#4ade80 0 3px,transparent 3.5px)}
@media (max-width:980px){.cam .vk-fg{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.cam .vk-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vk-io *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vk-io .vk-pk{opacity:0}}
@media (prefers-reduced-motion:reduce){.cam .vk-io .vk-turn{opacity:1}}
.cam .vf-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:1px;background:rgba(120,170,255,.14)}
.cam .vf-hero svg{display:block;width:100%;height:auto}
.cam .vf-zone{fill:rgba(244,114,182,0)}
.cam .vf-zone.on{fill:rgba(244,114,182,.13)}
.cam .vf-run{fill:none;stroke:#4d9eff;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s cubic-bezier(.4,.1,.3,1)}
.cam .vf-run.on{stroke-dashoffset:0}
.cam .vf-fb{transform-box:view-box;transform-origin:0 0;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.cam .vf-fb.f0{transform:translate(179px,107px) scale(112,102)}
.cam .vf-fb.f1{transform:translate(121px,27px) scale(170,66)}
.cam .vf-fb.f2{transform:translate(9px,27px) scale(118,80)}
@keyframes vf-pk{from{offset-distance:0%;opacity:0}10%{opacity:1}88%{opacity:1}to{offset-distance:100%;opacity:0}}
.cam .vf-pk{animation:vf-pk 2.2s linear infinite}
@keyframes vf-pk2{0%{offset-distance:0%;opacity:0}10%{opacity:1}70%{offset-distance:100%;opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vf-pk2{animation:vf-pk2 2.2s ease-in infinite}
.cam .vf-lift{transition:transform .8s cubic-bezier(.3,.7,.3,1),opacity .5s}
.cam .vf-el.off .vf-lift{transform:translateY(18px);opacity:0;transition-delay:0s!important}
.cam .vf-fade{transition:opacity .6s .85s}
.cam .vf-el.off .vf-fade{opacity:0;transition-delay:0s}
.cam .vf-drop{fill:none;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1s .2s}
.cam .vf-el.off .vf-drop{stroke-dashoffset:1;transition-delay:0s}
@keyframes vf-sl{0%{opacity:0}3%,30%{opacity:1}33%,100%{opacity:0}}
.cam .vf-sl{opacity:0;animation:vf-sl 9s linear infinite}
.cam .vf-sl1{opacity:1}
@keyframes vf-talk{0%,100%{opacity:1}50%{opacity:.25}}
.cam .vf-talk{animation:vf-talk 1.2s ease-in-out infinite}
@keyframes vf-rip{0%{opacity:0;transform:translateY(-3px)}40%{opacity:.9}100%{opacity:0;transform:translateY(6px)}}
.cam .vf-rip{animation:vf-rip 1.8s ease-out infinite}
@keyframes vf-lobe{0%,100%{opacity:.15}50%{opacity:1}}
.cam .vf-lobe{animation:vf-lobe 2s ease-in-out infinite}
@keyframes vf-pan{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}
.cam .vf-pan{transform-box:view-box;transform-origin:150px 137px;animation:vf-pan 5s ease-in-out infinite}
@keyframes vf-bar{0%,10%{transform:scaleY(.15)}45%,100%{transform:scaleY(1)}}
.cam .vf-bar{transform-box:fill-box;transform-origin:bottom;animation:vf-bar 3.6s cubic-bezier(.3,.7,.3,1) infinite alternate}
@keyframes vf-view{0%,100%{opacity:.15}50%{opacity:1}}
.cam .vf-view{animation:vf-view 1.6s ease-in-out infinite}
@keyframes vf-dk{0%,10%{transform:translateY(8px);opacity:0}30%,100%{transform:none;opacity:1}}
.cam .vf-dk{animation:vf-dk 4s ease-out infinite}
@keyframes vf-c2{0%{stroke-dashoffset:1}55%,100%{stroke-dashoffset:0}}
.cam .vf-c2{stroke-dasharray:1;animation:vf-c2 3.4s ease-in-out infinite}
@keyframes vf-now{from{transform:translateX(0)}to{transform:translateX(250px)}}
.cam .vf-now{animation:vf-now 7s linear infinite}
@keyframes vf-air{0%{transform:translateX(-10px);opacity:0}30%{opacity:1}100%{transform:translateX(30px);opacity:0}}
.cam .vf-air{animation:vf-air 2s linear infinite}
@keyframes vf-tag{0%,15%{transform:translateY(-6px);opacity:0}30%,100%{transform:none;opacity:1}}
.cam .vf-tag{animation:vf-tag 4.4s ease-out infinite}
.cam .vf-net{transition:opacity .4s}
.cam .vf-net.vf-dimg{opacity:.3}
.cam .vf-fg{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;align-items:start}
.cam .vf-scr{overflow-x:auto;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:#04070d}
.cam .vf-row{grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px 0}
.cam .vf-row .rv{font-size:14.5px}
.cam .vf-hint{display:none;font-size:11px;letter-spacing:.06em;color:#7d92b3;padding-top:6px}
@media (max-width:980px){.cam .vf-fg{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.cam .vf-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vf-io *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vf-io .vf-pk,.cam .vf-io .vf-pk2{opacity:0}}
@keyframes vh-rip{0%{transform:scale(1);opacity:.85}100%{transform:scale(5.2);opacity:0}}
.cam .vh-rip{transform-box:fill-box;transform-origin:center;animation:vh-rip 2.4s ease-out infinite}
.cam .vh-z{transition:opacity .9s}
.cam .vh-z.l0{opacity:0}
.cam .vh-z.l1{opacity:.4}
.cam .vh-z.l2{opacity:.7}
.cam .vh-z.l3{opacity:1}
.cam .vh-m{transform-box:fill-box;transform-origin:left center;transition:transform 1s cubic-bezier(.4,.1,.3,1)}
.cam .vh-m.l0{transform:scaleX(.001)}
.cam .vh-m.l1{transform:scaleX(.3)}
.cam .vh-m.l2{transform:scaleX(.52)}
.cam .vh-m.l3{transform:scaleX(.8)}
.cam .vh-p{transition:transform 1.3s cubic-bezier(.4,.1,.3,1)}
.cam .vh-p1,.cam .vh-p5{transition-delay:.15s}
.cam .vh-p2,.cam .vh-p6{transition-delay:.3s}
.cam .vh-p3,.cam .vh-p7{transition-delay:.45s}
@keyframes vh-rev{to{transform:rotate(90deg)}}
.cam .vh-rev{transform-box:view-box;transform-origin:300px 310px;animation:vh-rev 3s linear infinite}
@keyframes vh-msg{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cam .stage:not(.off) .vh-msg{animation:vh-msg .6s .2s cubic-bezier(.3,.7,.3,1) both}
@keyframes vh-slide{0%,22%{transform:translateX(0)}33%,55%{transform:translateX(-110px)}66%,88%{transform:translateX(-220px)}100%{transform:translateX(-330px)}}
.cam .vh-slide{animation:vh-slide 9s cubic-bezier(.6,0,.3,1) infinite}
@keyframes vh-eq{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.45)}}
.cam .vh-eq{transform-box:fill-box;transform-origin:bottom;animation:vh-eq 1.6s ease-in-out infinite}
@keyframes vh-arr{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
.cam .vh-arr{animation:vh-arr 1.4s ease-in-out infinite}
@keyframes vh-wave{0%{transform:translateY(0);opacity:1}100%{transform:translateY(16px);opacity:0}}
.cam .vh-wave{animation:vh-wave 1.4s ease-out infinite}
@keyframes vh-q{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
.cam .vh-q{animation:vh-q 3s ease-in-out infinite}
@keyframes vh-scan{from{transform:translateX(0)}to{transform:translateX(240px)}}
.cam .vh-scan{animation:vh-scan 6s linear infinite}
.cam .vh-ha,.cam .vh-hb{fill:rgba(244,114,182,.04)}
.cam .vh-hb{fill:rgba(139,188,255,.04)}
.cam .vh-hb.one{fill:rgba(244,114,182,.04)}
.cam .vh-ha.one{fill:rgba(244,114,182,.06)}
.cam .vh-hb.one{fill:rgba(244,114,182,.06)}
.cam .vh-db{stroke:#8bbcff}
.cam .vh-db.pk{stroke:#f472b6}
.cam .vh-sb{fill:#070b14;stroke:#8bbcff}
.cam .vh-sb.pk{stroke:#f472b6}
.cam .vh-pb{fill:rgba(139,188,255,.3);stroke:#8bbcff}
.cam .vh-pb.pk{fill:rgba(244,114,182,.3);stroke:#f472b6}
.cam .vh-sen{fill:#f5c46b}
.cam .vh-sen.open{fill:#4ade80}
.cam .vh-pn{transform-box:fill-box;transform-origin:center;transition:transform .9s cubic-bezier(.5,0,.3,1)}
.cam .vh-pn0{transition-delay:0.40s}
.cam .vh-pn0.up{transform:translateY(-58px) rotate(90deg);transition-delay:0.00s}
.cam .vh-pn1{transition-delay:0.32s}
.cam .vh-pn1.up{transform:translateY(-92px) rotate(90deg);transition-delay:0.08s}
.cam .vh-pn2{transition-delay:0.24s}
.cam .vh-pn2.up{transform:translateY(-126px) rotate(90deg);transition-delay:0.16s}
.cam .vh-pn3{transition-delay:0.16s}
.cam .vh-pn3.up{transform:translateY(-160px) rotate(90deg);transition-delay:0.24s}
.cam .vh-pn4{transition-delay:0.08s}
.cam .vh-pn4.up{transform:translateY(-194px) rotate(90deg);transition-delay:0.32s}
.cam .vh-pn5{transition-delay:0.00s}
.cam .vh-pn5.up{transform:translateY(-228px) rotate(90deg);transition-delay:0.40s}
.cam .vh-ps.t1 .vh-p0{transform:translate(0px,0px)}
.cam .vh-ps.t2 .vh-p0{transform:translate(0px,0px)}
.cam .vh-ps.t1 .vh-p1{transform:translate(0px,0px)}
.cam .vh-ps.t2 .vh-p1{transform:translate(116px,58px)}
.cam .vh-ps.t1 .vh-p2{transform:translate(0px,0px)}
.cam .vh-ps.t2 .vh-p2{transform:translate(294px,-40px)}
.cam .vh-ps.t1 .vh-p3{transform:translate(0px,0px)}
.cam .vh-ps.t2 .vh-p3{transform:translate(316px,-58px)}
.cam .vh-ps.t1 .vh-p4{transform:translate(-182px,-84px)}
.cam .vh-ps.t2 .vh-p4{transform:translate(156px,-160px)}
.cam .vh-ps.t1 .vh-p5{transform:translate(0px,0px)}
.cam .vh-ps.t2 .vh-p5{transform:translate(264px,-92px)}
.cam .vh-ps.t1 .vh-p6{transform:translate(28px,64px)}
.cam .vh-ps.t2 .vh-p6{transform:translate(120px,2px)}
.cam .vh-ps.t1 .vh-p7{transform:translate(-28px,0px)}
.cam .vh-ps.t2 .vh-p7{transform:translate(118px,110px)}
.cam .vh-ps.t1 .vh-p8{transform:translate(-112px,-10px)}
.cam .vh-ps.t2 .vh-p8{transform:translate(208px,-46px)}
.cam .vh-fg{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:22px;align-items:start}
.cam .vh-wide{overflow-x:auto;border:1px solid rgba(120,170,255,.14);border-radius:4px}
.cam .vh-row{grid-template-columns:96px minmax(0,1fr);gap:12px;padding:10px 0}
.cam .vh-row .rv{font-size:14.5px}
.cam .vh-hint{display:none;font-size:11px;letter-spacing:.06em;color:#7d92b3}
@media (max-width:980px){.cam .vh-fg{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.cam .vh-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vh-io *,.cam .vh-io{animation:none!important}}
.cam .vm-mk{opacity:0;transition:opacity .9s}
.cam .vm-mk.on{opacity:1}
@keyframes vm-drift{from{transform:translateX(0)}to{transform:translateX(26px)}}
.cam .vm-drift{animation:vm-drift 2.6s linear infinite}
@keyframes vm-up{0%{transform:translateY(2px);opacity:0}40%{opacity:1}100%{transform:translateY(-5px);opacity:0}}
.cam .vm-up{animation:vm-up 1.6s ease-out infinite}
@keyframes vm-sw{0%{transform:translateX(0);opacity:.9}100%{transform:translateX(14px);opacity:0}}
.cam .vm-sw{animation:vm-sw 1.35s ease-out infinite}
.cam .vm-sw[d*="q-10"]{animation-name:vm-swl}
.cam .vm-fly{transform:translateX(150px)}
@keyframes vm-fly{0%{transform:translateX(0);opacity:0}8%{opacity:1}82%{transform:translateX(150px);opacity:1}100%{transform:translateX(160px);opacity:0}}
.cam .vm-fly{animation:vm-fly 3.9s cubic-bezier(.3,.2,.5,1) infinite}
.cam .vm-clr{transition:opacity .4s}
.cam .vm-clr.mask{opacity:0}
@keyframes vm-clr{0%,18%{opacity:1}55%,100%{opacity:0}}
.cam .vm-clr.mask{animation:vm-clr 3.9s linear infinite}
.cam .vm-blr{opacity:0}
.cam .vm-blr.mask{opacity:1}
@keyframes vm-blr{0%,25%{opacity:0}58%,100%{opacity:1}}
.cam .vm-blr.mask{animation:vm-blr 3.9s linear infinite}
@keyframes vm-chime{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.18);opacity:0}}
.cam .vm-chime{transform-box:fill-box;transform-origin:center;animation:vm-chime 1.6s ease-out infinite}
.cam .vm-go{opacity:0;transition:opacity .3s,transform .4s}
.cam .vm-go.on{opacity:1;transform:translateX(112px);transition:opacity .3s .3s,transform 2.6s .9s ease-in-out}
@keyframes vm-stamp{0%,30%{transform:scale(1.6);opacity:0}45%{transform:scale(.95);opacity:1}55%,100%{transform:none;opacity:1}}
.cam .vm-stamp{transform-box:fill-box;transform-origin:center;animation:vm-stamp 3.6s ease-out infinite}
@keyframes vm-cone{0%,100%{opacity:1}50%{opacity:.45}}
.cam .vm-cone{animation:vm-cone 2.2s ease-in-out infinite}
@keyframes vm-drive{0%,20%{transform:translateX(-12px);opacity:0}45%,100%{transform:none;opacity:1}}
.cam .vm-drive{animation:vm-drive 3.2s ease-out infinite}
@keyframes vm-lvl{0%{transform:scaleY(.2)}40%,70%{transform:scaleY(.64)}85%{transform:scaleY(.6)}100%{transform:scaleY(.2)}}
.cam .vm-lvl{transform-box:fill-box;transform-origin:bottom;transform:scaleY(.64);animation:vm-lvl 3.4s ease-in-out infinite}
@keyframes vm-sa{0%,100%{opacity:1}50%{opacity:.6}}
.cam .vm-sa{animation:vm-sa 2.6s ease-in-out infinite}
@keyframes vm-bk{0%,100%{opacity:1}50%{opacity:.35}}
.cam .vm-bk{animation:vm-bk 1.8s ease-in-out infinite}
.cam .vm-cc{transition:opacity .35s .45s}
.cam .vm-cc.off{opacity:0}
@keyframes vm-osd{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cam .stage:not(.off) .vm-osd{animation:vm-osd .35s .5s cubic-bezier(.3,.7,.3,1) both}
@keyframes vm-i0{0%{offset-distance:0%;opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes vm-i1{0%{offset-distance:0%;opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes vm-i2{0%{offset-distance:0%;opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vm-ir{opacity:0}
.cam .vm-ir.n0{animation:vm-i0 .55s linear both}
.cam .vm-ir.n1{animation:vm-i1 .55s linear both}
.cam .vm-ir.n2{animation:vm-i2 .55s linear both}
.cam .vm-key{fill:#101b30;stroke:rgba(139,188,255,.5)}
.cam .vm-key.on{fill:rgba(244,114,182,.3);stroke:#f472b6}
@keyframes vm-sw2{0%{opacity:1;transform:scale(.8)}100%{opacity:0;transform:scale(1.3)}}
.cam .vm-sw2{transform-box:fill-box;transform-origin:center;animation:vm-sw2 1s ease-out infinite}
@keyframes vm-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .vm-prog{transform-box:fill-box;transform-origin:left;animation:vm-prog 7s linear infinite}
.cam .vm-fg{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;align-items:start}
.cam .vm-wide{overflow-x:auto;border:1px solid rgba(120,170,255,.14);border-radius:4px}
.cam .vm-row{grid-template-columns:86px minmax(0,1fr);gap:12px;padding:10px 0}
.cam .vm-row .rv{font-size:14.5px}
.cam .vm-hint{display:none;font-size:11px;letter-spacing:.06em;color:#7d92b3}
@media (max-width:980px){.cam .vm-fg{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.cam .vm-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vm-io *,.cam .vm-io{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vm-ir{opacity:0!important}}
.cam .vo-g{transition:opacity .9s}
.cam .vo-g:not(.on){opacity:0}
.cam .vo-sun{transform-box:view-box;transform-origin:280px 520px;transition:transform 1.8s cubic-bezier(.45,.05,.25,1)}
.cam .vo-t0 .vo-sun{transform:rotate(-30deg)}
.cam .vo-t1 .vo-sun{transform:rotate(28deg)}
.cam .vo-t2 .vo-sun{transform:rotate(80deg)}
.cam .vo-dusk{opacity:0;transition:opacity 1.2s}
.cam .vo-t1 .vo-dusk{opacity:1}
@keyframes vomoon{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.cam .vo-moon{animation:vomoon 6s ease-in-out infinite}
@keyframes votw{0%,100%{opacity:.25}50%{opacity:1}}
.cam .vo-tw{animation:votw 2.6s ease-in-out infinite}
.cam .vo-lit{transition:opacity 1.2s}
.cam .vo-lit.vo-l0{opacity:0}
.cam .vo-lit.vo-l1{opacity:.55}
.cam .vo-lit.vo-l2{opacity:1}
@keyframes vofl{0%,100%{opacity:1}45%{opacity:.75}55%{opacity:.95}}
.cam .vo-fl{animation:vofl 2.2s ease-in-out infinite}
@keyframes vowave{0%{transform:translateX(0) scaleY(.6);opacity:0}25%{opacity:1}100%{transform:translateX(34px) scaleY(1.5);opacity:0}}
.cam .vo-wave{transform-box:fill-box;transform-origin:center;animation:vowave 1.8s ease-out infinite}
@keyframes vowavel{0%{transform:translateX(0) scaleY(.6);opacity:0}25%{opacity:1}100%{transform:translateX(-30px) scaleY(1.5);opacity:0}}
.cam .vo-wavel{transform-box:fill-box;transform-origin:center;animation:vowavel 1.8s ease-out infinite}
@keyframes voball{0%{transform:translate(0,0)}25%{transform:translate(14px,8px)}50%{transform:translate(26px,2px)}75%{transform:translate(10px,12px)}100%{transform:translate(0,0)}}
.cam .vo-ball{animation:voball 5s ease-in-out infinite}
@keyframes vopan{from{transform:translateX(0)}to{transform:translateX(-30px)}}
.cam .vo-pan{animation:vopan 8s ease-in-out infinite alternate}
.cam .vo-grow{transform-box:fill-box;transform-origin:left center}
.cam .vo-g.on .vo-grow{animation:vogrow 1.2s cubic-bezier(.3,.7,.3,1) .4s both}
@keyframes vogrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .vo-g.on .vo-cone{animation:vocone .9s cubic-bezier(.3,.7,.3,1) both}
@keyframes vocone{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes vorip{0%{transform:scale(.08);opacity:0}15%{opacity:.8}100%{transform:scale(1);opacity:0}}
.cam .vo-rip{transform-box:fill-box;transform-origin:center;animation:vorip 2.1s ease-out infinite}
.cam .vo-pop{transform-box:fill-box;transform-origin:center}
.cam .vo-g.on .vo-pop{animation:vopop .5s cubic-bezier(.3,1.5,.5,1) .2s both}
@keyframes vopop{from{transform:scale(0)}to{transform:scale(1)}}
.cam .vo-dr2,.cam .vo-dr3{stroke-dashoffset:0}
.cam .vo-g.on .vo-dr2{animation:vodrA 1s ease-in-out both}
.cam .vo-g.on .vo-dr3{animation:vodrB 1s ease-in-out both}
@keyframes vodrA{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes vodrB{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes vosub{0%{transform:scale(.25);opacity:0}20%{opacity:.9}100%{transform:scale(1);opacity:0}}
.cam .vo-sub{transform-box:fill-box;transform-origin:center;animation:vosub 2.4s ease-out infinite}
@keyframes vospill{0%,100%{opacity:.55}50%{opacity:1}}
.cam .vo-spill{animation:vospill 1.8s ease-in-out infinite}
.cam .cmp b.vo-bad{color:#ff9b9b}
.cam .cmp b.vo-ok{color:#8bf0b0}
.cam .vo-ck{stroke-dasharray:1 1;animation:vock 3.6s ease-out infinite}
@keyframes vock{0%,15%{stroke-dashoffset:1}35%,100%{stroke-dashoffset:0}}
@keyframes vorain{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(22px);opacity:0}}
.cam .vo-rain{animation:vorain 1s linear infinite}
.cam .vo-therm{transform-box:fill-box;transform-origin:center bottom;animation:votherm 3s ease-in-out infinite alternate}
@keyframes votherm{from{transform:scaleY(.25)}to{transform:scaleY(1)}}
@keyframes voseal{0%,100%{opacity:.5}50%{opacity:1}}
.cam .vo-seal{animation:voseal 2s ease-in-out infinite}
@keyframes vodrop{0%{transform:translate(0,0);opacity:0}10%{opacity:1}55%{transform:translate(4px,30px)}75%{transform:translate(-12px,24px);opacity:1}100%{transform:translate(-22px,40px);opacity:0}}
.cam .vo-drop{animation:vodrop 2.6s ease-in infinite}
.cam .vo-dr{stroke-dasharray:1 1;animation:vodr 3.4s ease-in-out infinite}
@keyframes vodr{0%{stroke-dashoffset:1}50%,100%{stroke-dashoffset:0}}
@keyframes vowifi{0%,100%{opacity:1}60%{opacity:.15}}
.cam .vo-wifi{animation:vowifi 1.8s ease-in-out infinite}
@keyframes vopk{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vo-pk{offset-rotate:0deg;animation:vopk 2.8s linear infinite}
.cam .vo-hand{transform-box:view-box;transform-origin:232px 30px;animation:vohand 6s linear infinite}
@keyframes vohand{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cam .vox *,.cam .voc *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vox .vo-wave,.cam .voc .vo-wave,.cam .voc .vo-wavel{opacity:.85}}
@media (prefers-reduced-motion:reduce){.cam .vox .vo-rip{transform:scale(.6);opacity:.4}}
@media (prefers-reduced-motion:reduce){.cam .vox .vo-sub{transform:scale(.7);opacity:.5}}
@media (prefers-reduced-motion:reduce){.cam .voc .vo-pk,.cam .voc .vo-drop,.cam .voc .vo-rain{opacity:0}}
.cam .vd-hero{display:flex;flex-direction:column;gap:1px;background:rgba(120,170,255,.14)}
.cam .vd-hero svg{display:block}
.cam .vd-pan{overflow:hidden;background:#04070d}
.cam .vd-pan svg{width:100%;transition:transform 1s cubic-bezier(.45,0,.2,1)}
@media (max-width:600px){.cam .vd-pan svg{width:165%!important}}
@media (max-width:600px){.cam .vd-pan.p1 svg,.cam .vd-pan.p2 svg{transform:translateX(-39.4%)}}
@keyframes vd-line{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.cam .vd-line{fill:none;stroke:#f472b6;stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:0;animation:vd-line 1.6s cubic-bezier(.4,.1,.3,1) both}
@keyframes vd-rip{0%{opacity:0;transform:translateY(-4px)}35%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
.cam .vd-rip{animation:vd-rip 2s ease-out infinite}
.cam .vd-pg{animation-duration:1.1s}
.cam .vd-z > g{transform-box:view-box;transition:transform .9s cubic-bezier(.3,.7,.3,1),opacity .9s}
.cam .vd-z.hi > g{transform:scale(1.15)}
.cam .vd-z.md > g{transform:scale(.8)}
.cam .vd-z.duck > g{transform:scale(.4);opacity:.25}
.cam .vd-m{fill:#f472b6;transform-box:fill-box;transform-origin:left center;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.cam .vd-m.l90{transform:scaleX(.9)}
.cam .vd-m.l65{transform:scaleX(.65)}
.cam .vd-m.l55{transform:scaleX(.55)}
.cam .vd-m.l15{transform:scaleX(.15)}
@keyframes vd-pk{from{offset-distance:0%;opacity:0}10%{opacity:1}88%{opacity:1}to{offset-distance:100%;opacity:0}}
.cam .vd-pk{animation:vd-pk 2.4s linear infinite}
.cam .vd-ph{transform-box:view-box;transition:transform 1.2s cubic-bezier(.45,0,.2,1)}
.cam .vd-ph.p0{transform:translateX(160px)}
.cam .vd-ph.p1{transform:translateX(310px)}
.cam .vd-ph.p2{transform:translateX(472px)}
@keyframes vd-lit{from{opacity:0}to{opacity:1}}
.cam .vd-lit{opacity:1;animation:vd-lit .5s ease-out both}
@keyframes vd-knob{0%,25%{transform:translateY(16px)}55%,100%{transform:translateY(0)}}
.cam .vd-knob{animation:vd-knob 4s ease-in-out infinite alternate}
@keyframes vd-tvl{0%,20%{transform:translateY(16px)}55%,100%{transform:none}}
.cam .vd-tvl{animation:vd-tvl 4s cubic-bezier(.3,.7,.3,1) infinite alternate}
@keyframes vd-cone{0%,100%{opacity:.45}50%{opacity:1}}
.cam .vd-cone{animation:vd-cone 2.4s ease-in-out infinite}
@keyframes vd-meter{0%{transform:scaleY(.35)}20%{transform:scaleY(.7)}35%{transform:scaleY(.5)}55%{transform:scaleY(.82)}70%{transform:scaleY(.6)}85%{transform:scaleY(.78)}100%{transform:scaleY(.4)}}
.cam .vd-meter{transform-box:fill-box;transform-origin:bottom;animation:vd-meter 2.2s ease-in-out infinite}
@keyframes vd-up{to{stroke-dashoffset:22}}
.cam .vd-c{fill:none;stroke:transparent;stroke-width:3;stroke-dasharray:6 5;animation:vd-up 1s linear infinite}
.cam .vd-c.sA{stroke:#f472b6}
.cam .vd-c.sB{stroke:#4d9eff}
.cam .vd-c.sC{stroke:#f5c46b}
.cam .vd-c.sM{stroke:#cbd5e1}
.cam .vd-pk2{animation:vd-pk 1.6s linear infinite;fill:#fff}
.cam .vd-pk2.sA{fill:#f9a8d4}
.cam .vd-pk2.sB{fill:#8bbcff}
.cam .vd-pk2.sC{fill:#fbd38d}
.cam .vd-pk2.sM{fill:#e2e8f0}
.cam .vd-x{opacity:0;transition:opacity .35s}
.cam .vd-x.on{opacity:1}
@keyframes vd-sw{0%{opacity:0}40%{opacity:1}100%{opacity:0}}
.cam .vd-sw{animation:vd-sw 1.2s ease-out infinite}
.cam .vd-fg{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.cam .vd-scr{overflow-x:auto;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:#04070d}
.cam .vd-hint{display:none;font-size:11px;letter-spacing:.06em;color:#7d92b3;padding-top:6px}
.cam .vd-rr{display:grid;grid-template-columns:44px 12px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:38px;border-top:1px dashed rgba(120,170,255,.16)}
.cam .vd-rr:is(:where(:not(.ms-p>*)):first-child,:where(.ms-p>*).ms-i1){border-top:0}
.cam .vd-tvn{font-size:12px;letter-spacing:.08em;color:#7d92b3}
.cam .vd-src{font-size:15px;font-weight:600;color:#e8edf5}
.cam .vd-sw2{width:10px;height:10px;border-radius:2px}
.cam .vd-sw2.sA{background:#f472b6}
.cam .vd-sw2.sB{background:#4d9eff}
.cam .vd-sw2.sC{background:#f5c46b}
.cam .vd-sw2.sM{background:#cbd5e1}
.cam .vd-ab{visibility:hidden;font:700 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#04070d;background:#f472b6;border-radius:3px;padding:3px 7px}
.cam .vd-ab.on{visibility:visible}
.cam .vd-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:28px;margin-top:40px;padding-top:28px;border-top:1px solid rgba(120,170,255,.14)}
.cam .vd-why > div{display:flex;flex-direction:column;gap:10px}
@media (max-width:980px){.cam .vd-fg{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.cam .vd-hint{display:block}}
@media (prefers-reduced-motion:reduce){.cam .vd-io *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vd-io .vd-pk,.cam .vd-io .vd-pk2{opacity:0}}
@keyframes vl-sa{0%,44%{opacity:1}50%,94%{opacity:0}100%{opacity:1}}
@keyframes vl-sb{0%,44%{opacity:0}50%,94%{opacity:1}100%{opacity:0}}
.cam .vl-sa{animation:vl-sa 8s ease-in-out infinite}
.cam .vl-sb{opacity:0;animation:vl-sb 8s ease-in-out infinite}
.cam .vl-wash{opacity:0;transition:opacity 1.1s ease}
.cam .vl-wash.on{opacity:.93}
.cam .vl-dimr{opacity:0;transition:opacity 1.1s ease}
.cam .vl-dimr.on{opacity:.3}
@keyframes vl-glint{from{transform:translateX(-30px)}to{transform:translateX(120px)}}
.cam .vl-glint{animation:vl-glint 3.6s ease-in-out infinite alternate}
@keyframes vl-ray{0%{transform:scale(.8);opacity:.9}100%{transform:scale(1.5);opacity:0}}
.cam .vl-ray{transform-box:fill-box;transform-origin:center;animation:vl-ray 2.4s ease-out infinite}
@keyframes vl-heat{0%{transform:translateY(3px);opacity:0}40%{opacity:1}100%{transform:translateY(-8px);opacity:0}}
.cam .vl-heat{animation:vl-heat 1.8s ease-out infinite}
@keyframes vl-walk{from{transform:translateX(-520px)}to{transform:translateX(110px)}}
.cam .vl-walk{animation:vl-walk 16s linear infinite}
@keyframes vl-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
.cam .vl-bob{animation:vl-bob .55s ease-in-out infinite}
@keyframes vl-ph{from{transform:translateX(0)}to{transform:translateX(240px)}}
.cam .vl-ph{animation:vl-ph 6s linear infinite}
@keyframes vl-stamp{0%,30%{transform:scale(1.6);opacity:0}45%{transform:scale(.95);opacity:1}55%,100%{transform:none;opacity:1}}
.cam .vl-stamp{transform-box:fill-box;transform-origin:center;animation:vl-stamp 3.6s ease-out infinite}
@keyframes vl-rip{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.cam .vl-rip{transform-box:fill-box;transform-origin:center;animation:vl-rip 1.8s ease-out infinite}
.cam .vl-rip2{animation-duration:2.8s}
@keyframes vl-cpk{0%{offset-distance:0%;opacity:0}10%{opacity:1}80%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vl-cpk{opacity:0;animation:vl-cpk 1.5s ease-in infinite}
@keyframes vl-hb{0%{offset-distance:0%;opacity:0}15%{opacity:.9}85%{opacity:.9}100%{offset-distance:100%;opacity:0}}
.cam .vl-hb{opacity:0;animation:vl-hb 2.8s linear infinite}
@keyframes vl-p0{0%{offset-distance:0%;opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vl-pkt{opacity:0}
.cam .vl-pkt.k0{animation:vl-p0 .8s cubic-bezier(.5,0,.6,1) both}
@keyframes vl-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cam .stage:not(.off) .vl-in{animation:vl-in .55s .75s cubic-bezier(.3,.7,.3,1) both}
.cam .vl-wide{overflow-x:auto;border:1px solid rgba(120,170,255,.14);border-radius:4px}
.cam .vl-hint{display:none;font-size:11px;letter-spacing:.06em;color:#7d92b3}
.cam .vl-sch{display:grid;border:1px solid rgba(120,170,255,.16);border-radius:4px;background:rgba(5,8,16,.55)}
.cam .vl-sh,.cam .vl-sr{display:grid;grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));gap:10px;padding:11px 14px;border-top:1px dashed rgba(120,170,255,.14)}
.cam .vl-sh{border-top:0;font:600 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#7d92b3}
.cam .vl-sr span{font-size:14px;color:#a3adbd}
.cam .vl-sr .vl-sn{font-weight:700;color:#e8edf5}
.cam .vl-sh span,.cam .vl-sr span{padding:4px 8px;margin:-4px -8px;border-radius:3px}
.cam .vl-sch.t0 .vl-c0,.cam .vl-sch.t1 .vl-c1,.cam .vl-sch.t2 .vl-c2{background:rgba(244,114,182,.12);color:#fff}
.cam .vl-sch.t0 .vl-sh .vl-c0,.cam .vl-sch.t1 .vl-sh .vl-c1,.cam .vl-sch.t2 .vl-sh .vl-c2{color:#f9a8d4}
@media (max-width:560px){.cam .vl-hint{display:block}}
@media (max-width:560px){.cam .vl-sh,.cam .vl-sr{gap:6px;padding:10px}}
@media (max-width:560px){.cam .vl-sr span{font-size:12.5px}}
@media (max-width:560px){.cam .vl-sh{font-size:9px;letter-spacing:.04em}}
@media (max-width:560px){.cam .vl-sh span,.cam .vl-sr span{padding:3px 4px;margin:-3px -4px}}
@media (prefers-reduced-motion:reduce){.cam .vl-io *,.cam .vl-io{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vl-hb,.cam .vl-pkt,.cam .vl-cpk{opacity:0!important}}
.cam .vl-tp{transition:transform .8s cubic-bezier(.4,.1,.3,1)}
.cam .vl-tp.t1{transform:translateX(50px)}
.cam .vl-tp.t2{transform:translateX(100px)}
.cam .ve-t{font:600 10.5px var(--mono);fill:#8bbcff;letter-spacing:.06em}
.cam .ve-s{font:500 9px var(--mono);fill:#7d92b3;letter-spacing:.06em}
@keyframes ve-ring{0%{transform:scale(.06);opacity:.95}100%{transform:scale(1);opacity:0}}
@keyframes ve-throw{0%{transform:scale(.12);opacity:.95}100%{transform:scale(1);opacity:0}}
@keyframes ve-pk{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@keyframes ve-spin{to{transform:rotate(360deg)}}
@keyframes ve-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ve-bob{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(-3px);opacity:1}}
@keyframes ve-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes ve-arc{0%{transform:translateY(-4px);opacity:1}100%{transform:translateY(16px);opacity:0}}
@keyframes ve-sc{0%,100%{transform:scale(1);opacity:.4}50%{transform:scale(1.3);opacity:1}}
@keyframes ve-arm{0%,25%{transform:rotate(14deg)}55%,100%{transform:rotate(0)}}
@keyframes ve-arm2{0%,25%{transform:rotate(-12deg)}55%,100%{transform:rotate(0)}}
@keyframes ve-pull{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes ve-chk{0%,10%{opacity:0;transform:scale(.4)}25%,85%{opacity:1;transform:scale(1)}100%{opacity:0}}
.cam .ve-room .ve-bv,.cam .ve-room .ve-bn{opacity:0;transition:opacity .6s}
.cam .ve-room.s0 .ve-r1 .ve-bv{opacity:.34}
.cam .ve-room.s0 .ve-r2 .ve-bv{opacity:.24}
.cam .ve-room.s0 .ve-r3 .ve-bv{opacity:.15}
.cam .ve-room.s0 .ve-r4 .ve-bn{opacity:.16}
.cam .ve-room.s0 .ve-r5 .ve-bn{opacity:.22}
.cam .ve-room.s1 .ve-bv{opacity:.2}
.cam .ve-room.s2 .ve-bv{opacity:.16}
.cam .ve-q{font-family:var(--mono);font-weight:700;fill:#f5c46b;animation:ve-bob 1.8s ease-in-out infinite}
.cam .ve-tr{fill:none;stroke:#f9a8d4;stroke-width:1.3;transform-box:fill-box;transform-origin:center;animation:ve-ring 2.4s ease-out infinite}
.cam .ve-cone{stroke:none}
.cam .ve-pulse{stroke:none;animation:ve-throw 1.9s ease-out infinite}
.cam .ve-pk,.cam .ve-pk2{fill:none;stroke-width:2.8;stroke-linecap:round;stroke-dasharray:4 96;animation:ve-pk 1.6s linear infinite}
.cam .ve-pk2{stroke-width:3;animation-duration:2.2s}
.cam .ve-orb{animation:ve-spin 5s linear infinite}
.cam .ve-prog{transform-box:fill-box;transform-origin:left center;animation:ve-prog 9s linear infinite}
.cam .ve-beam,.cam .ve-glow{animation:ve-pulse 2.6s ease-in-out infinite}
.cam .ve-arc{animation:ve-arc 1.4s ease-out infinite}
.cam .ve-ring{transform-box:fill-box;transform-origin:center;animation:ve-sc 1.8s ease-in-out infinite}
.cam .ve-reach{transform-box:fill-box;transform-origin:0 0;animation:ve-arm2 3.2s ease-in-out infinite alternate}
.cam .ve-pull{stroke-dasharray:100;animation:ve-pull 2.8s ease-in-out infinite}
.cam .ve-chk{transform-box:fill-box;transform-origin:center;opacity:1;animation:ve-chk 3.6s ease-out infinite}
.cam .ve-strip{display:flex;flex-direction:column;gap:10px;padding:14px 18px;border-top:1px solid rgba(120,170,255,.14)}
.cam .ve-sh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px}
.cam .ve-key{display:flex;align-items:center;gap:8px;font-size:11px;color:#a9bddc;letter-spacing:.04em}
.cam .ve-key i{display:inline-block;width:12px;height:8px;border-radius:2px}
.cam .ve-kv{background:#f472b6}
.cam .ve-strip.s2 .ve-kv{background:#4d9eff}
.cam .ve-kn{margin-left:8px;height:0!important;border-top:2px dashed #f5c46b}
.cam .ve-bars{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.cam .ve-c{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.cam .ve-c span{height:14px;line-height:14px;font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7d92b3;text-align:center}
.cam .ve-bw{position:relative;height:72px;border-radius:3px;background:rgba(120,170,255,.07);overflow:hidden}
.cam .ve-bw i{position:absolute;left:0;right:0;bottom:0;height:100%;background:linear-gradient(to top,rgba(244,114,182,.45),#f472b6);transform-origin:bottom;transition:transform .7s cubic-bezier(.3,.7,.3,1)}
.cam .ve-nl{position:absolute;left:-4px;right:-4px;bottom:calc(20px + 72px * .56);border-top:2px dashed #f5c46b;z-index:1;pointer-events:none}
.cam .ve-strip.s0 .ve-c1 i{transform:scaleY(.92)}
.cam .ve-strip.s0 .ve-c2 i{transform:scaleY(.75)}
.cam .ve-strip.s0 .ve-c3 i{transform:scaleY(.68)}
.cam .ve-strip.s0 .ve-c4 i{transform:scaleY(.5)}
.cam .ve-strip.s0 .ve-c5 i{transform:scaleY(.44)}
.cam .ve-strip.s0 .ve-c4 i,.cam .ve-strip.s0 .ve-c5 i{background:linear-gradient(to top,rgba(245,196,107,.35),#f5c46b)}
.cam .ve-strip.s1 .ve-c i,.cam .ve-strip.s2 .ve-c i{transform:scaleY(.82)}
.cam .ve-strip.s1 .ve-c2 i,.cam .ve-strip.s1 .ve-c4 i{transform:scaleY(.84)}
.cam .ve-strip.s2 .ve-c i{background:linear-gradient(to top,rgba(77,158,255,.4),#4d9eff)}
.cam .ve-ends{display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#5d6f8f}
.cam .ve-f .ve-sz,.cam .ve-f .ve-ov{opacity:0;transition:opacity .4s}
.cam .ve-f.z65 .ve-sz65,.cam .ve-f.z75 .ve-sz75,.cam .ve-f.z86 .ve-sz86{opacity:1}
.cam .ve-f.z65.m0 .ov65w,.cam .ve-f.z65.m2 .ov65w,.cam .ve-f.z65.m1 .ov65c,.cam .ve-f.z75.m0 .ov75w,.cam .ve-f.z75.m2 .ov75w,.cam .ve-f.z75.m1 .ov75c,.cam .ve-f.z86.m0 .ov86w,.cam .ve-f.z86.m2 .ov86w,.cam .ve-f.z86.m1 .ov86c{opacity:1}
.cam .ve-pm{transition:transform .8s cubic-bezier(.3,.7,.3,1)}
.cam .ve-f.m1 .ve-pm{transform:translateY(26px)}
.cam .ve-cart{opacity:0;transform:translateX(120px);transition:opacity .5s,transform .8s cubic-bezier(.3,.7,.3,1)}
.cam .ve-f.m1 .ve-cart{opacity:1;transform:none}
.cam .ve-wallx{transition:opacity .5s}
.cam .ve-f.m1 .ve-wallx{opacity:.22}
.cam .ve-les,.cam .ve-shr,.cam .ve-wifi{transition:opacity .45s}
.cam .ve-shr,.cam .ve-wifi{opacity:0}
.cam .ve-f.m2 .ve-shr,.cam .ve-f.m2 .ve-wifi{opacity:1}
.cam .ve-f.m2 .ve-les{opacity:0}
.cam .ve-arm{transform-box:fill-box;transform-origin:0 100%;animation:ve-arm 3s ease-in-out infinite alternate}
.cam .ve-arm2{transform-box:fill-box;transform-origin:0 0;animation:ve-arm2 3.4s ease-in-out infinite alternate}
.cam .ve-ok{animation:ve-pulse 1.6s ease-in-out infinite}
.cam .ve-sum{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid rgba(244,114,182,.35);border-radius:6px;background:linear-gradient(160deg,rgba(244,114,182,.1),rgba(7,11,20,.9) 55%)}
.cam .ve-scr{overflow-x:auto}
.cam .ve-hint{display:none;margin-top:8px;font-size:11px;letter-spacing:.06em;color:#7d92b3}
@media (max-width:560px){.cam .ve-scr svg{min-width:520px}}
@media (max-width:560px){.cam .ve-hs{overflow-x:auto}}
@media (max-width:560px){.cam .ve-hs svg{min-width:540px}}
@media (max-width:560px){.cam .ve-hint{display:block}}
@media (max-width:560px){.cam .ve-bars{gap:6px}}
@media (max-width:560px){.cam .ve-c span{font-size:9.5px;letter-spacing:.02em}}
@media (prefers-reduced-motion:reduce){.cam .ve-anim *,.cam [class^="ve-"],.cam [class*=" ve-"]{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .ve-pk,.cam .ve-pk2,.cam .ve-pulse,.cam .ve-tr{opacity:0!important}}
@media (prefers-reduced-motion:reduce){.cam .ve-chk{opacity:1}}
.cam .vs-g{transition:opacity .45s}
.cam .vs-g:not(.on){opacity:0}
.cam .vs-g .vs-fd{transition:opacity .5s}
.cam .vs-g:not(.on) .vs-fd{opacity:0;transition-delay:0s!important}
.cam .vs-dr{stroke-dasharray:1 1;stroke-dashoffset:0}
.cam .vs-g.on .vs-dr{animation:vsdr 1.3s cubic-bezier(.4,.6,.3,1) both}
@keyframes vsdr{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes vspk{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes vspkb{0%{offset-distance:100%;opacity:0}8%{opacity:1}92%{opacity:1}100%{offset-distance:0%;opacity:0}}
.cam .vs-pk{offset-rotate:0deg;animation:vspk 2.4s linear infinite}
.cam .vs-pkb{offset-rotate:0deg;animation:vspkb 3.1s linear infinite}
.cam .vs-g:not(.on) .vs-pk,.cam .vs-g:not(.on) .vs-pkb{animation:none}
@keyframes vsglw{0%,100%{opacity:.35}50%{opacity:.9}}
.cam .vs-glw{animation:vsglw 2.4s ease-in-out infinite}
@keyframes vspan{from{transform:translateX(0)}to{transform:translateX(-26px)}}
.cam .vs-pan{animation:vspan 7s ease-in-out infinite alternate}
@keyframes vsglo{0%,100%{opacity:.25}50%{opacity:.8}}
.cam .vs-glow{animation:vsglo 2.8s ease-in-out infinite}
@keyframes vswave{0%{transform:translateX(4px) scale(.6);opacity:0}30%{opacity:1}100%{transform:translateX(-14px) scale(1.25);opacity:0}}
.cam .vs-wave{transform-box:fill-box;transform-origin:center;animation:vswave 1.6s ease-out infinite}
.cam .vs-wash{opacity:1}
@keyframes vsring{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.1);opacity:0}}
.cam .vs-ring{transform-box:fill-box;transform-origin:center;animation:vsring 1.4s ease-out infinite}
.cam .vs-grow{transform-box:fill-box;transform-origin:left center}
.cam .vs-g.on .vs-grow{animation:vsgrow 1.4s cubic-bezier(.3,.7,.3,1) .2s both}
@keyframes vsgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .vs-dr2{stroke-dasharray:1 1;animation:vsdr2 3s ease-in-out infinite}
@keyframes vsdr2{0%{stroke-dashoffset:1}50%,100%{stroke-dashoffset:0}}
@keyframes vscp{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .vs-cp{offset-rotate:0deg;animation:vscp 3s linear infinite}
@keyframes vsbolt{0%,20%{transform:translateX(18px);opacity:0}45%,85%{transform:translateX(0);opacity:1}100%{transform:translateX(0);opacity:0}}
.cam .vs-bolt{animation:vsbolt 3.4s ease-in-out infinite}
.cam .vs-ck{stroke-dasharray:1 1;animation:vsck 3.6s ease-out infinite}
@keyframes vsck{0%,15%{stroke-dashoffset:1}35%,100%{stroke-dashoffset:0}}
@keyframes vsrp{0%{transform:scale(1);opacity:.8}100%{transform:scale(2.4);opacity:0}}
.cam .vs-rp{transform-box:fill-box;transform-origin:center;animation:vsrp 1.8s ease-out infinite}
.cam .vs-lvl{transform-box:fill-box;transform-origin:center bottom;animation:vslvl 2.2s ease-in-out infinite alternate}
@keyframes vslvl{0%{transform:scaleY(.3)}100%{transform:scaleY(.85)}}
@keyframes vsbeam{0%,100%{opacity:.7}50%{opacity:1}}
.cam .vs-beam{animation:vsbeam 2.6s ease-in-out infinite}
.cam .vs-st{transform-box:fill-box;transform-origin:center bottom}
.cam .vs-hole,.cam .vs-pop{transform-box:fill-box;transform-origin:center}
.cam .vs-dra,.cam .vs-drb{stroke-dasharray:1 1;stroke-dashoffset:0}
.cam .vs-flash{opacity:0}
.cam .vs-lab{opacity:1}
.cam .vs-finder{opacity:0}
.cam .vs-gh{opacity:.55}
.cam .vs-bit{opacity:0}
.cam .vs-cut,.cam .vs-acc{transform-box:fill-box;transform-origin:center}
.cam .vs-f0 .vs-g.on .vs-st{animation:vsA-st .5s cubic-bezier(.3,.7,.3,1) both}
@keyframes vsA-st{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.cam .vs-f0 .vs-g.on .vs-hole{animation:vsA-pop .35s ease-out both}
.cam .vs-f0 .vs-g.on .vs-pop{animation:vsA-pop .45s cubic-bezier(.3,1.4,.5,1) .9s both}
@keyframes vsA-pop{from{transform:scale(0)}to{transform:scale(1)}}
.cam .vs-f0 .vs-g.on .vs-dra{animation:vsA-dr .9s ease-in-out both}
@keyframes vsA-dr{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.cam .vs-f0 .vs-g.on .vs-flash{animation:vsA-fl .7s ease-out 2.9s both}
@keyframes vsA-fl{0%{opacity:0}15%{opacity:.4}100%{opacity:0}}
.cam .vs-f0 .vs-g.on .vs-wall{animation:vsA-wall 1s cubic-bezier(.3,.7,.3,1) 3.5s both}
@keyframes vsA-wall{from{transform:translateY(340px)}to{transform:translateY(0)}}
.cam .vs-f0 .vs-g.on .vs-late{animation:vsA-in .5s ease-out 4.4s both}
@keyframes vsA-in{from{opacity:0}to{opacity:1}}
.cam .vs-f0 .vs-g.on .vs-lab{animation:vsA-lab .5s ease-out both}
@keyframes vsA-lab{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.cam .vs-f0 .vs-tv{animation:vsA-tv .9s cubic-bezier(.3,.7,.3,1) 4.8s both}
@keyframes vsA-tv{from{transform:translateY(34px);opacity:0}to{transform:none;opacity:1}}
.cam .vs-f1 .vs-g.on .vs-finder{animation:vsB-find 1.6s ease-in-out .2s both}
@keyframes vsB-find{0%{transform:translateX(0);opacity:0}10%{opacity:1}85%{transform:translateX(428px);opacity:1}100%{transform:translateX(428px);opacity:0}}
.cam .vs-f1 .vs-g.on .vs-gh{animation:vsB-gh .4s ease-out both}
@keyframes vsB-gh{from{opacity:0}to{opacity:.55}}
.cam .vs-f1 .vs-g.on .vs-xr{animation:vsB-in .4s ease-out 1.4s both}
@keyframes vsB-in{from{opacity:0}to{opacity:1}}
.cam .vs-f1 .vs-g.on .vs-cut{animation:vsB-pop .4s cubic-bezier(.3,1.4,.5,1) 1.7s both}
.cam .vs-f1 .vs-g.on .vs-acc{animation:vsB-pop .4s cubic-bezier(.3,1.4,.5,1) 2.8s both}
@keyframes vsB-pop{from{transform:scale(0)}to{transform:scale(1)}}
.cam .vs-f1 .vs-g.on .vs-bit{animation:vsB-bit 1.3s ease-in-out 2.1s both}
@keyframes vsB-bit{0%{transform:translateY(60px);opacity:1}45%{transform:translateY(0);opacity:1}80%{transform:translateY(-86px);opacity:1}100%{transform:translateY(-86px);opacity:0}}
.cam .vs-f1 .vs-g.on .vs-drb{animation:vsB-dr .9s ease-in-out both}
@keyframes vsB-dr{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.cam .vs-f1 .vs-g.on .vs-patch{animation:vsB-in .5s ease-out 4.6s both}
.cam .vs-f1 .vs-g.on .vs-late{animation:vsB-in .5s ease-out 4.9s both}
.cam .vs-f1 .vs-g.on .vs-lab{animation:vsB-lab .5s ease-out both}
@keyframes vsB-lab{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.cam .vs-f1 .vs-tv{animation:vsB-tv .9s cubic-bezier(.3,.7,.3,1) 5.2s both}
@keyframes vsB-tv{from{transform:translateY(34px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.cam .vsx *,.cam .vsc *{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vsx .vs-pk,.cam .vsx .vs-pkb,.cam .vsc .vs-cp{opacity:0}}
@media (prefers-reduced-motion:reduce){.cam .vsx .vs-wave{opacity:.8}}
@media (prefers-reduced-motion:reduce){.cam .vsx .vs-ring{opacity:0}}
@media (prefers-reduced-motion:reduce){.cam .vsc .vs-rp{opacity:0}}
@keyframes vswd{0%{transform:translateY(-4px) scale(.6);opacity:0}30%{opacity:1}100%{transform:translateY(10px) scale(1.3);opacity:0}}
.cam .vs-wd{transform-box:fill-box;transform-origin:center;animation:vswd 1.8s ease-out infinite}
@media (prefers-reduced-motion:reduce){.cam .vsc .vs-wd{opacity:.8}}
.cam .vs-ghost{opacity:.5}
.cam .vs-hide{opacity:.4}
.cam .vs-f0 .vs-g.on .vs-ghost{animation:vsA-gh .8s ease-out 5.6s both}
@keyframes vsA-gh{from{opacity:0}to{opacity:.5}}
.cam .vs-f1 .vs-g.on .vs-hide{animation:vsB-hide 6.4s linear both}
@keyframes vsB-hide{0%,88%{opacity:1}100%{opacity:.4}}
.cam .vt-g{transition:opacity .5s}
.cam .vt-g:not(.on){opacity:0}
.cam .vt-g .vt-fd{transition:opacity .5s .3s}
.cam .vt-g:not(.on) .vt-fd{opacity:0;transition-delay:0s}
.cam .vt-tv,.cam .vt-sofa,.cam .vt-sub{transition:transform 1.1s cubic-bezier(.45,.05,.25,1)}
.cam .vt-s0 .vt-tv{transform:translate(285px,236px)}
.cam .vt-s1 .vt-tv,.cam .vt-s2 .vt-tv{transform:translate(150px,149px) rotate(-90deg)}
.cam .vt-s0 .vt-sofa{transform:translate(172px,236px) rotate(90deg)}
.cam .vt-s1 .vt-sofa,.cam .vt-s2 .vt-sofa{transform:translate(150px,264px) rotate(0deg)}
.cam .vt-s0 .vt-sub{transform:translate(276px,308px)}
.cam .vt-s1 .vt-sub,.cam .vt-s2 .vt-sub{transform:translate(236px,180px)}
.cam .vt-riser{transition:opacity .5s .6s}
.cam .vt-s0 .vt-riser{opacity:0;transition-delay:0s}
@keyframes vtrp{0%{transform:scale(.2);opacity:0}15%{opacity:.9}100%{transform:scale(1.5);opacity:0}}
.cam .vt-rp,.cam .vt-rb{transform-box:fill-box;transform-origin:center;animation:vtrp 1.8s ease-out infinite}
.cam .vt-rb{animation-duration:2s}
.cam .vt-g:not(.on) .vt-rp,.cam .vt-g:not(.on) .vt-rb{animation-play-state:paused}
@keyframes vtshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-.8px)}75%{transform:translateX(.8px)}}
.cam .vt-shake{animation:vtshake .18s linear infinite}
.cam .vt-seg{transition:opacity .3s}
.cam .vt-g:not(.on) .vt-seg{opacity:0;transition-delay:0s!important}
@keyframes vtr2{0%{transform:translateX(-6px);opacity:0}30%{opacity:1}100%{transform:translateX(14px);opacity:0}}
.cam .vt-rb2{animation:vtr2 1.6s ease-out infinite}
@keyframes vtl2{0%{transform:translateX(6px);opacity:0}30%{opacity:1}100%{transform:translateX(-14px);opacity:0}}
.cam .vt-rp2{animation:vtl2 1.6s ease-out infinite}
@keyframes vtrd{0%{transform:translateY(-6px);opacity:0}30%{opacity:1}100%{transform:translateY(18px);opacity:0}}
.cam .vt-rd{animation:vtrd 1.8s ease-out infinite}
.cam .vt-grow{transform-box:fill-box;transform-origin:left center}
.cam .vt-g.on .vt-grow{animation:vtgrow 1s cubic-bezier(.3,.7,.3,1) .3s both}
@keyframes vtgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .vt-dr2{stroke-dasharray:1 1;animation:vtdr2 3.2s ease-in-out infinite}
@keyframes vtdr2{0%{stroke-dashoffset:1}45%,100%{stroke-dashoffset:0}}
@keyframes vtprobe{0%{transform:translate(0,0)}20%{transform:translate(0,6px)}30%{transform:translate(0,0)}55%{transform:translate(61px,0)}70%{transform:translate(61px,6px)}80%,100%{transform:translate(61px,0)}}
.cam .vt-probe{animation:vtprobe 4s ease-in-out infinite}
@keyframes vtok{0%,68%{opacity:0}75%,95%{opacity:1}100%{opacity:0}}
.cam .vt-ok{animation:vtok 4s linear infinite}
.cam .vt-lvl{transform-box:fill-box;transform-origin:left center;animation:vtlvl 2.4s ease-in-out infinite alternate}
@keyframes vtlvl{from{transform:scaleX(.3)}to{transform:scaleX(.9)}}
@keyframes vtwv{0%{transform:translateX(0);opacity:0}30%{opacity:1}100%{transform:translateX(10px);opacity:0}}
.cam .vt-wv{animation:vtwv 1.6s ease-out infinite}
@keyframes vtsun{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.cam .vt-sun{transform-box:fill-box;transform-origin:center;animation:vtsun 3s ease-in-out infinite}
.cam .vt-ptv{transform-box:view-box;transform-origin:479px 150px;transition:transform 1.1s cubic-bezier(.45,.05,.25,1)}
.cam .vt-m2 .vt-ptv{transform:translate(30px,0) rotate(24deg)}
.cam .vt-parm{transform-box:view-box;transform-origin:472px 150px;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.45,.05,.25,1)}
.cam .vt-m2 .vt-parm{transform:scaleX(1)}
.cam .vt-g.on .vt-tilt{animation:vttilt 1s cubic-bezier(.3,.7,.3,1) .2s both}
@keyframes vttilt{from{transform:rotate(-12deg)}to{transform:rotate(0)}}
.cam .vt-g.on .vt-arm{animation:vtarm 1s cubic-bezier(.3,.7,.3,1) .1s both}
@keyframes vtarm{from{transform:translateX(-40px)}to{transform:translateX(0)}}
.cam .vt-lev{transform-box:view-box}
.cam .vt-g.on .vt-lev{animation:vtlev .9s cubic-bezier(.3,.7,.3,1) .5s both}
@keyframes vtlev{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.cam .vt-bar{height:10px;border-radius:3px;background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.3);overflow:hidden}
.cam .vt-bar i{display:block;height:100%;background:#ff6b6b;transform-origin:left center;transform:scaleX(.2);transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.cam .vt-bar i.vt-l0{transform:scaleX(.18)}
.cam .vt-bar i.vt-l1{transform:scaleX(.26)}
.cam .vt-bar i.vt-l2{transform:scaleX(.92)}
@media (prefers-reduced-motion:reduce){.cam .vtx *,.cam .vtc *,.cam .vt-bar i{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vtx .vt-rp,.cam .vtx .vt-rb{transform:scale(.9);opacity:.55}}
@media (prefers-reduced-motion:reduce){.cam .vtx .vt-rb2,.cam .vtx .vt-rp2,.cam .vtx .vt-rd,.cam .vtc .vt-rp2,.cam .vtc .vt-wv{opacity:.85}}
@media (prefers-reduced-motion:reduce){.cam .vtc .vt-ok{opacity:1}}
.cam .vw-t{font:600 10.5px var(--mono);fill:#8bbcff;letter-spacing:.06em}
.cam .vw-s{font:500 9px var(--mono);fill:#7d92b3;letter-spacing:.06em}
@keyframes vw-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes vw-flash{0%{opacity:0;transform:scale(.3)}25%{opacity:1}100%{opacity:0;transform:scale(1.7)}}
@keyframes vw-in{from{opacity:0}to{opacity:1}}
@keyframes vw-pk{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@keyframes vw-rip{0%{transform:scale(.25);opacity:.85}100%{transform:scale(1);opacity:0}}
@keyframes vw-throw{0%{transform:scale(.12);opacity:.95}100%{transform:scale(1);opacity:0}}
@keyframes vw-vox{0%,100%{transform:scaleX(.55)}20%{transform:scaleX(.92)}45%{transform:scaleX(.7)}65%{transform:scaleX(.96)}85%{transform:scaleX(.62)}}
@keyframes vw-zp{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes vw-lift{0%,12%{transform:translateY(0)}48%,70%{transform:translateY(-68px)}100%{transform:translateY(0)}}
@keyframes vw-fork{0%,8%{transform:translateX(-70px)}60%,100%{transform:translateX(70px)}}
@keyframes vw-rain{0%{transform:translateY(-6px);opacity:0}20%{opacity:1}100%{transform:translateY(22px);opacity:0}}
@keyframes vw-nz{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes vw-arc{0%{transform:translateX(0);opacity:1}100%{transform:translateX(-90px);opacity:0}}
@keyframes vw-anc{0%,60%,100%{transform:scale(1)}75%{transform:scale(1.7)}}
@keyframes vw-knob{0%,20%{transform:translateX(-14px)}80%,100%{transform:translateX(16px)}}
.cam .vw-draw{stroke-dasharray:100;stroke-dashoffset:0}
.cam .stage:not(.off) .vw-draw{animation:vw-draw 1.8s linear both}
.cam .vw-flash{fill:none;stroke:#fff;stroke-width:1.6;opacity:0;transform-box:fill-box;transform-origin:center}
.cam .stage:not(.off) .vw-flash{animation:vw-flash .9s ease-out both}
.cam .vw-tap{font:700 8.5px var(--mono);fill:#f9a8d4;letter-spacing:.04em}
.cam .stage:not(.off) .vw-tap{animation:vw-in .35s ease-out both}
.cam .vw-pk{fill:none;stroke:#e8f1ff;stroke-width:3.4;stroke-linecap:round;stroke-dasharray:3 97;animation:vw-pk 1.6s linear infinite}
.cam .vw-mr{fill:none;stroke:#f472b6;stroke-width:1;transform-box:fill-box;transform-origin:center;animation:vw-rip 2.4s ease-out infinite}
.cam .vw-pr{fill:none;stroke:#e8f1ff;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:vw-rip 1.1s ease-out infinite}
.cam .vw-hm,.cam .vw-hp{stroke:none;animation:vw-throw 2.4s ease-out infinite}
.cam .vw-hp{animation-duration:1.1s}
.cam .vw-z .vw-mus,.cam .vw-z .vw-pg{transition:opacity .5s}
.cam .vw-z .vw-pg{opacity:0}
.cam .vw-z.pg .vw-pg{opacity:1}
.cam .vw-z.pg .vw-mus{opacity:.1}
.cam .vw-zh{fill:rgba(232,241,255,.06);stroke:rgba(232,241,255,.45);stroke-dasharray:4 3;opacity:0;transition:opacity .5s}
.cam .vw-zh.on{opacity:1;animation:vw-zp 1.6s ease-in-out infinite}
.cam .vw-cn{stroke:rgba(244,114,182,.25)}
.cam .vw-pulse{fill:rgba(244,114,182,.2);stroke:none;animation:vw-throw 2.4s ease-out infinite}
.cam .vw-hpulse{stroke:none;animation:vw-throw 1.8s ease-out infinite}
.cam .vw-lift{animation:vw-lift 6s ease-in-out infinite}
.cam .vw-fork{animation:vw-fork 7s ease-in-out infinite alternate}
.cam .vw-rain{animation:vw-rain 1.3s linear infinite}
.cam .vw-nz{animation:vw-nz 1.2s ease-in-out infinite}
.cam .vw-arc{animation:vw-arc 1.8s ease-out infinite}
.cam .vw-anc{transform-box:fill-box;transform-origin:center;animation:vw-anc 2.8s ease-in-out infinite}
.cam .vw-anc:nth-of-type(2){animation-delay:.3s}
.cam .vw-anc:nth-of-type(3){animation-delay:.6s}
.cam .vw-anc:nth-of-type(4){animation-delay:.9s}
.cam .vw-pk2{stroke-dasharray:6 94;animation:vw-pk 2.2s linear infinite}
.cam .vw-knob{animation:vw-knob 3s ease-in-out infinite alternate}
.cam .vw-strip{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:14px 20px;padding:14px 18px;border-top:1px solid rgba(120,170,255,.14)}
.cam .vw-stn{display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid rgba(120,170,255,.16);border-radius:5px;background:rgba(9,14,24,.7)}
.cam .vw-keys{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cam .vw-k{display:flex;align-items:center;justify-content:center;min-height:30px;padding:0 6px;border:1px solid rgba(120,170,255,.22);border-radius:3px;font:600 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#a9bddc}
.cam .vw-strip.s1 .vw-k3,.cam .vw-strip.s2 .vw-k4{background:#e8f1ff;border-color:#e8f1ff;color:#060910}
.cam .vw-ptt{display:flex;align-items:center;gap:8px;font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7d92b3}
.cam .vw-ptt i{width:8px;height:8px;border-radius:50%;background:#334155}
.cam .vw-strip.s1 .vw-ptt i,.cam .vw-strip.s2 .vw-ptt i{background:#ff5a5a}
.cam .vw-strip.s1 .vw-ptt,.cam .vw-strip.s2 .vw-ptt{color:#e8edf5}
.cam .vw-zrows{display:flex;flex-direction:column}
.cam .vw-zr{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 118px;align-items:center;gap:12px;padding:8px 0;border-top:1px dashed rgba(120,170,255,.16)}
.cam .vw-zr:is(:where(:not(.ms-p>*)):first-child,:where(.ms-p>*).ms-i1){border-top:0}
.cam .vw-zn{font-size:13.5px;font-weight:700;color:#e8edf5}
.cam .vw-zn small{display:block;margin-top:2px;font:500 10.5px var(--mono);letter-spacing:.04em;color:#7d92b3}
.cam .vw-mt{position:relative;height:14px;border-radius:2px;background:rgba(120,170,255,.1);overflow:hidden}
.cam .vw-mu,.cam .vw-pa{position:absolute;left:0;right:0;height:6px;transform-origin:left center;transition:transform .6s cubic-bezier(.3,.7,.3,1)}
.cam .vw-mu{top:0;background:linear-gradient(90deg,rgba(244,114,182,.5),#f472b6)}
.cam .vw-r1 .vw-mu{transform:scaleX(.42)}
.cam .vw-r2 .vw-mu{transform:scaleX(.68)}
.cam .vw-r3 .vw-mu{transform:scaleX(.86)}
.cam .vw-pa{bottom:0;background:#e8f1ff;transform:scaleX(0);opacity:.95}
.cam .vw-zs{font:700 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:right}
.cam .vw-sm{color:#f9a8d4}
.cam .vw-sd{display:none;color:#e8f1ff}
.cam .vw-strip.s1 .vw-r3 .vw-mu,.cam .vw-strip.s2 .vw-zr .vw-mu{transform:scaleX(.1)}
.cam .vw-strip.s1 .vw-r3 .vw-pa,.cam .vw-strip.s2 .vw-zr .vw-pa{animation:vw-vox 1.1s ease-in-out infinite}
.cam .vw-strip.s1 .vw-r3 .vw-sm,.cam .vw-strip.s2 .vw-zr .vw-sm{display:none}
.cam .vw-strip.s1 .vw-r3 .vw-sd,.cam .vw-strip.s2 .vw-zr .vw-sd{display:inline}
.cam .vw-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cam .vw-b{min-height:118px}
.cam .vw-sum{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid rgba(244,114,182,.35);border-radius:6px;background:linear-gradient(160deg,rgba(244,114,182,.1),rgba(7,11,20,.9) 55%)}
.cam .vw-nm{display:inline-grid;grid-template-columns:repeat(3,22px);gap:4px}
.cam .vw-nm i{height:8px;border-radius:2px;background:rgba(120,170,255,.18)}
.cam .vw-nm.n1 i:is(:where(:not(.ms-p>*)):nth-child(1),:where(.ms-p>*).ms-i1),.cam .vw-nm.n2 i:nth-child(-n+2){background:#f5c46b}
.cam .vw-nm.n3 i{background:#ff6b6b}
.cam .vw-scr{overflow-x:auto}
.cam .vw-hint{display:none;margin-top:8px;font-size:11px;letter-spacing:.06em;color:#7d92b3}
@media (max-width:560px){.cam .vw-strip{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.cam .vw-zr{grid-template-columns:minmax(0,1fr) 92px}}
@media (max-width:560px){.cam .vw-mt{grid-column:1/-1;grid-row:2}}
@media (max-width:560px){.cam .vw-scr svg{min-width:520px}}
@media (max-width:560px){.cam .vw-hs{overflow-x:auto}}
@media (max-width:560px){.cam .vw-hs svg{min-width:540px}}
@media (max-width:560px){.cam .vw-hint{display:block}}
@media (max-width:560px){.cam .vw-b{min-height:104px;font-size:13.5px}}
@media (prefers-reduced-motion:reduce){.cam .vw-anim *,.cam [class^="vw-"],.cam [class*=" vw-"]{animation:none!important}}
@media (prefers-reduced-motion:reduce){.cam .vw-pk,.cam .vw-pk2,.cam .vw-flash,.cam .vw-rain,.cam .vw-hm,.cam .vw-hp,.cam .vw-pulse,.cam .vw-hpulse{opacity:0!important}}
@media (prefers-reduced-motion:reduce){.cam .vw-mr,.cam .vw-pr{transform:scale(.7);opacity:.45}}
@media (prefers-reduced-motion:reduce){.cam .vw-strip.s1 .vw-r3 .vw-pa,.cam .vw-strip.s2 .vw-zr .vw-pa{transform:scaleX(.85)}}
.cam [data-rcp] *{animation-play-state:paused!important}
@keyframes rv-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes rv-in{from{opacity:0}to{opacity:1}}
@keyframes rv-pop{from{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:none}}
@keyframes rv-sweep{0%{transform:translateX(8px);opacity:1}95%{opacity:1}100%{transform:translateX(368px);opacity:0}}
@keyframes rv-fish{0%{offset-distance:0%;opacity:1}96%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes rv-drop{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes rv-spin{from{opacity:0;transform:rotate(-540deg) scale(1.6)}to{opacity:1;transform:none}}
@keyframes rv-lift{0%{opacity:0;transform:translateY(54px)}40%{opacity:1;transform:translateY(-9px)}72%{transform:translateY(-9px)}100%{opacity:1;transform:none}}
@keyframes rv-lift2{0%{opacity:0;transform:translate(14px,54px)}40%{opacity:1;transform:translate(6px,-9px)}72%{transform:translate(0,-9px)}100%{opacity:1;transform:none}}
@keyframes rv-glint{0%{transform:translateX(0);opacity:0}10%{opacity:1}100%{transform:translateX(300px);opacity:0}}
@keyframes rv-ring{from{transform:scale(.4);opacity:.85}to{transform:scale(2.4);opacity:0}}
.cam .rv-hero .rv-stud{opacity:1;transition:opacity .6s}
.cam .rv-hero.s0 .rv-stud{animation:rv-in .3s ease-out both}
.cam .rv-hero.s2 .rv-stud{opacity:.13}
.cam .rv-hero .rv-mks{opacity:0;transition:opacity .4s}
.cam .rv-hero.s0 .rv-mks,.cam .rv-hero.s1 .rv-mks{opacity:1}
.cam .rv-hero .rv-mk{transform-box:fill-box;transform-origin:center}
.cam .rv-hero.s0 .rv-mk{animation:rv-pop .35s ease-out both}
.cam .rv-hero .rv-oc{opacity:0;transition:opacity .4s}
.cam .rv-hero.s0 .rv-oc{opacity:1;transition-delay:2.1s}
.cam .rv-hero.s1 .rv-oc{opacity:1}
.cam .rv-hero .rv-g0{opacity:0;transition:opacity .4s}
.cam .rv-hero.s0 .rv-g0{opacity:1}
.cam .rv-hero.s0 .rv-cl{animation:rv-draw 1.2s .3s ease-out both}
.cam .rv-hero .rv-sf{opacity:0}
.cam .rv-hero.s0 .rv-sf{animation:rv-sweep 2.2s linear both}
.cam .rv-hero .rv-kit,.cam .rv-hero .rv-skit{opacity:0;transition:opacity .4s}
.cam .rv-hero.s1 .rv-kit,.cam .rv-hero.s1 .rv-skit,.cam .rv-hero.s2 .rv-skit{opacity:1}
.cam .rv-hero.s2 .rv-kit{opacity:0;transition:opacity .7s 1.7s}
.cam .rv-hero .rv-box{transform-box:fill-box;transform-origin:center}
.cam .rv-hero.s1 .rv-box{animation:rv-pop .5s cubic-bezier(.3,.7,.3,1) both}
.cam .rv-hero .rv-cab,.cam .rv-hero .rv-cord,.cam .rv-hero .rv-tc{stroke-dasharray:100;stroke-dashoffset:0}
.cam .rv-hero.s1 .rv-cab{animation:rv-draw 1.2s .5s ease-in-out both}
.cam .rv-hero.s1 .rv-cord{animation:rv-draw .8s 1.7s ease-out both}
.cam .rv-hero .rv-fh{opacity:0}
.cam .rv-hero.s1 .rv-fh{animation:rv-fish 1.2s .5s ease-in-out both}
.cam .rv-hero .rv-door{opacity:.16;transition:opacity .5s}
.cam .rv-hero.s2 .rv-door{opacity:.96;transition:opacity .6s 1.9s}
.cam .rv-hero .rv-mnt{opacity:0;transition:opacity .3s}
.cam .rv-hero.s2 .rv-mnt{opacity:1}
.cam .rv-hero.s2 .rv-plate{animation:rv-drop .4s ease-out both}
.cam .rv-hero .rv-bolt{transform-box:fill-box;transform-origin:center}
.cam .rv-hero.s2 .rv-bolt{animation:rv-spin .55s ease-out both}
@keyframes rv-bin{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}
.cam .rv-hero.s2 .rv-sbolt{animation:rv-bin .5s .3s ease-out both}
.cam .rv-hero .rv-tv,.cam .rv-hero .rv-tv2{opacity:0;transition:opacity .3s}
.cam .rv-hero.s2 .rv-tv{opacity:1;animation:rv-lift 1.1s .8s cubic-bezier(.3,.7,.3,1) both}
.cam .rv-hero.s2 .rv-tv2{opacity:1;animation:rv-lift2 1.1s .8s cubic-bezier(.3,.7,.3,1) both}
.cam .rv-hero.s2 .rv-tc{animation:rv-draw .5s 1.9s ease-out both}
.cam .rv-hero.s2 .rv-scr{animation:rv-in .7s 1.7s both}
.cam .rv-hero .rv-glint{opacity:0}
.cam .rv-hero.s2 .rv-glint{animation:rv-glint 1.2s 2.3s ease-in-out both}
.cam .rv-hero .rv-l0,.cam .rv-hero .rv-l1,.cam .rv-hero .rv-l2{opacity:0;transition:opacity .4s}
.cam .rv-hero.s0 .rv-l0,.cam .rv-hero.s1 .rv-l1,.cam .rv-hero.s2 .rv-l2{opacity:1}
.cam .rv-hero.s1 .rv-l1{transition-delay:.4s}
.cam .rv-hero.s2 .rv-l2{transition-delay:1.9s}
.cam .rv-rd{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px}
.cam .rv-rd div{display:flex;flex-direction:column;gap:4px;min-width:0}
.cam .rv-rd b{font-size:14.5px;font-weight:600;color:#e8edf5}
.cam .rv-split{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center}
.cam .rv-sa{flex:400 1 0;min-width:280px}
.cam .rv-sb{flex:200 1 0;min-width:150px;max-width:240px}
.cam .rv-secm{display:none}
@media (max-width:640px){.cam .rv-sb{display:none}}
@media (max-width:640px){.cam .rv-secm{display:block;width:100%;max-width:240px;margin:4px auto 10px;border-top:1px dashed rgba(120,170,255,.16);padding-top:8px}}
@media (max-width:640px){.cam .rv-sur .lbl{font-size:13px}}
@media (max-width:640px){.cam .rv-sur .lbl2{font-size:11.5px}}
@media (max-width:640px){.cam .rv-wh .rv-tg{display:none}}
@media (max-width:640px){.cam .rv-wh .lbl{font-size:14px}}
@media (max-width:640px){.cam .rv-wh .lbl2{font-size:11.5px}}
.cam .rv-sur .rv-wd{fill:rgba(244,114,182,.13);stroke:rgba(244,114,182,.5);stroke-width:1}
.cam .rv-sur .rv-ray{fill:none;stroke:rgba(249,168,212,.55);stroke-width:1.1;stroke-dasharray:100;stroke-dashoffset:0}
.cam .rv-sur .rv-rg{fill:none;stroke:#f472b6;stroke-width:1.2;transform-box:fill-box;transform-origin:center;opacity:0;animation:rv-ring 2.2s ease-out infinite}
.cam .rv-sur .rv-rgh{stroke-dasharray:3 2}
.cam .rv-sur .rv-spk{transform-box:fill-box;transform-origin:center}
.cam .rv-sur .rv-sl,.cam .rv-sur .rv-sr,.cam .rv-sur .rv-es{transform-box:view-box;transform-origin:0 0;transition:transform .8s cubic-bezier(.3,.7,.3,1)}
.cam .rv-sur .rv-sl{transform:translate(49.65px,264.72px) rotate(-110deg)}
.cam .rv-sur .rv-sr{transform:translate(350.35px,264.72px) rotate(110deg)}
.cam .rv-sur .rv-es{transform:translate(175.9px,0)}
.cam .rv-sur.f1 .rv-sl,.cam .rv-sur.f3 .rv-sl{transform:translate(42.43px,237.78px) rotate(-100deg)}
.cam .rv-sur.f1 .rv-sr,.cam .rv-sur.f3 .rv-sr{transform:translate(357.57px,237.78px) rotate(100deg)}
.cam .rv-sur.f1 .rv-es,.cam .rv-sur.f3 .rv-es{transform:translate(157.2px,0)}
.cam .rv-sur .rv-bk,.cam .rv-sur .rv-bk2,.cam .rv-sur .rv-tm,.cam .rv-sur .rv-tf,.cam .rv-sur .rv-tr,.cam .rv-sur .rv-w110,.cam .rv-sur .rv-w100,.cam .rv-sur .rv-w140,.cam .rv-sur .rv-r110,.cam .rv-sur .rv-r100,.cam .rv-sur .rv-r140,.cam .rv-sur .rv-t110,.cam .rv-sur .rv-t100{opacity:0;transition:opacity .45s}
.cam .rv-sur.f0 .rv-w110,.cam .rv-sur.f2 .rv-w110,.cam .rv-sur.f0 .rv-r110,.cam .rv-sur.f2 .rv-r110,.cam .rv-sur.f0 .rv-t110,.cam .rv-sur.f2 .rv-t110{opacity:1}
.cam .rv-sur.f1 .rv-w100,.cam .rv-sur.f3 .rv-w100,.cam .rv-sur.f1 .rv-r100,.cam .rv-sur.f3 .rv-r100,.cam .rv-sur.f1 .rv-t100,.cam .rv-sur.f3 .rv-t100{opacity:1}
.cam .rv-sur.f1 .rv-w140,.cam .rv-sur.f3 .rv-w140,.cam .rv-sur.f1 .rv-r140,.cam .rv-sur.f3 .rv-r140,.cam .rv-sur.f1 .rv-bk,.cam .rv-sur.f3 .rv-bk,.cam .rv-sur.f1 .rv-bk2,.cam .rv-sur.f3 .rv-bk2{opacity:1}
.cam .rv-sur.f2 .rv-tm,.cam .rv-sur.f3 .rv-tf,.cam .rv-sur.f3 .rv-tr{opacity:1}
.cam .rv-sur.f0 .rv-r110,.cam .rv-sur.f2 .rv-r110,.cam .rv-sur.f1 .rv-r100,.cam .rv-sur.f3 .rv-r100,.cam .rv-sur.f1 .rv-r140,.cam .rv-sur.f3 .rv-r140{animation:rv-draw .9s .2s ease-out both}
.cam .rv-sur.f1 .rv-bk .rv-spk,.cam .rv-sur.f3 .rv-bk .rv-spk,.cam .rv-sur.f2 .rv-tm .rv-spk,.cam .rv-sur.f3 .rv-tf .rv-spk,.cam .rv-sur.f3 .rv-tr .rv-spk{animation:rv-pop .55s .25s cubic-bezier(.3,.7,.3,1) both}
.cam .rv-sur.f2 .rv-tm .rv-ray,.cam .rv-sur.f3 .rv-tf .rv-ray,.cam .rv-sur.f3 .rv-tr .rv-ray{animation:rv-draw .8s .3s ease-out both}
.cam .rv-sur .rv-bk .rv-rg,.cam .rv-sur .rv-tm .rv-rg,.cam .rv-sur .rv-tf .rv-rg,.cam .rv-sur .rv-tr .rv-rg{animation-name:none}
.cam .rv-sur.f1 .rv-bk .rv-rg,.cam .rv-sur.f3 .rv-bk .rv-rg,.cam .rv-sur.f2 .rv-tm .rv-rg,.cam .rv-sur.f3 .rv-tf .rv-rg,.cam .rv-sur.f3 .rv-tr .rv-rg{animation-name:rv-ring}
.cam .rv-chl{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:12px;padding:10px 0;border-top:1px dashed rgba(120,170,255,.16);font-size:14px;line-height:1.45;color:#dfe6f2}
.cam .rv-chl .rv-ck{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#f9a8d4;padding-top:2px}
.cam .rv-plan{flex:1 1 440px;min-width:0;max-width:600px}
.cam .rv-wh .rv-base{fill:none;stroke:rgba(139,188,255,.2);stroke-width:1.3;stroke-dasharray:3 3}
.cam .rv-wh .rv-on{fill:none;stroke-width:1.8;stroke-dasharray:100;stroke-dashoffset:0;opacity:0;transition:opacity .35s}
.cam .rv-wh .rv-pk{opacity:0;offset-rotate:0deg}
.cam .rv-wh .rv-sp{fill:#101a2e;stroke:#8bbcff;stroke-width:1.2}
.cam .rv-wh .rv-rg{fill:none;stroke-width:1.3;transform-box:fill-box;transform-origin:center;opacity:0}
.cam .rv-wh .rv-tg g,.cam .rv-wh .rv-v-a,.cam .rv-wh .rv-v-b,.cam .rv-wh .rv-v-c,.cam .rv-wh .rv-v-0{opacity:0;transition:opacity .3s}
.cam .rv-wh .rv-rt{opacity:0;transition:opacity .35s}
.cam .rv-wh .rv-pk2{opacity:0}
.cam .rv-wh .rv-led{fill:#334155}
@keyframes rv-pkm{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes rv-dra{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes rv-drb{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes rv-drc{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes rv-rga{from{transform:scale(.6);opacity:.9}to{transform:scale(2.6);opacity:0}}
@keyframes rv-rgb{from{transform:scale(.6);opacity:.9}to{transform:scale(2.6);opacity:0}}
@keyframes rv-rgc{from{transform:scale(.6);opacity:.9}to{transform:scale(2.6);opacity:0}}
.cam .rv-zrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 0;border-top:1px dashed rgba(120,170,255,.16)}
.cam .rv-zrow:is(:where(:not(.ms-p>*)):first-child,:where(.ms-p>*).ms-i1){border-top:0}
.cam .rv-zrow b{font-size:15px;font-weight:600;color:#e8edf5}
.cam .rv-zrow small{grid-column:1 / -1;font:500 11px var(--mono);letter-spacing:.05em;color:#7d92b3}
.cam .rv-src{display:inline-flex;align-items:center;gap:7px;font:600 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#e8edf5}
.cam .rv-src i{width:9px;height:9px;border-radius:50%}
.cam .rv-wsplit{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:6px}
.cam .rv-wpa{flex:440 1 0;min-width:280px}
.cam .rv-wpb{flex:170 1 0;min-width:150px;max-width:220px}
.cam .rv-wh.zl-a .rv-zl .rv-v-a{opacity:1}
.cam .rv-wh.zl-c .rv-zl .rv-v-c{opacity:1}
.cam .rv-wh.zl-0 .rv-zl .rv-v-0{opacity:1}
.cam .rv-wh.zl-a .rv-zl .rv-on{opacity:1;stroke:#f472b6;animation:rv-dra .9s ease-out both}
.cam .rv-wh.zl-a .rv-zl .rv-pk{fill:#f472b6;animation:rv-pkm 1.6s linear infinite}
.cam .rv-wh.zl-a .rv-zl .rv-sp{fill:#f472b6;fill-opacity:.25;stroke:#f472b6}
.cam .rv-wh.zl-a .rv-zl .rv-rg{stroke:#f472b6;animation:rv-rga 2s ease-out infinite}
.cam .rv-wh.zl-a .rv-zl .rv-led{fill:#f472b6}
.cam .rv-wh.zl-a .rv-r-a-l{opacity:1}
.cam .rv-wh.zl-a .rv-r-a-l .rv-pk2{animation:rv-pkm 1.4s linear infinite}
.cam .rv-wh.zl-c .rv-zl .rv-on{opacity:1;stroke:#f5c46b;animation:rv-drc .9s ease-out both}
.cam .rv-wh.zl-c .rv-zl .rv-pk{fill:#f5c46b;animation:rv-pkm 1.6s linear infinite}
.cam .rv-wh.zl-c .rv-zl .rv-sp{fill:#f5c46b;fill-opacity:.25;stroke:#f5c46b}
.cam .rv-wh.zl-c .rv-zl .rv-rg{stroke:#f5c46b;animation:rv-rgc 2s ease-out infinite}
.cam .rv-wh.zl-c .rv-zl .rv-led{fill:#f5c46b}
.cam .rv-wh.zl-c .rv-r-c-l{opacity:1}
.cam .rv-wh.zl-c .rv-r-c-l .rv-pk2{animation:rv-pkm 1.4s linear infinite}
.cam .rv-wh.zk-a .rv-zk .rv-v-a{opacity:1}
.cam .rv-wh.zk-b .rv-zk .rv-v-b{opacity:1}
.cam .rv-wh.zk-a .rv-zk .rv-on{opacity:1;stroke:#f472b6;animation:rv-dra .9s ease-out both}
.cam .rv-wh.zk-a .rv-zk .rv-pk{fill:#f472b6;animation:rv-pkm 1.6s linear infinite}
.cam .rv-wh.zk-a .rv-zk .rv-sp{fill:#f472b6;fill-opacity:.25;stroke:#f472b6}
.cam .rv-wh.zk-a .rv-zk .rv-rg{stroke:#f472b6;animation:rv-rga 2s ease-out infinite}
.cam .rv-wh.zk-a .rv-zk .rv-led{fill:#f472b6}
.cam .rv-wh.zk-a .rv-r-a-k{opacity:1}
.cam .rv-wh.zk-a .rv-r-a-k .rv-pk2{animation:rv-pkm 1.4s linear infinite}
.cam .rv-wh.zk-b .rv-zk .rv-on{opacity:1;stroke:#4d9eff;animation:rv-drb .9s ease-out both}
.cam .rv-wh.zk-b .rv-zk .rv-pk{fill:#4d9eff;animation:rv-pkm 1.6s linear infinite}
.cam .rv-wh.zk-b .rv-zk .rv-sp{fill:#4d9eff;fill-opacity:.25;stroke:#4d9eff}
.cam .rv-wh.zk-b .rv-zk .rv-rg{stroke:#4d9eff;animation:rv-rgb 2s ease-out infinite}
.cam .rv-wh.zk-b .rv-zk .rv-led{fill:#4d9eff}
.cam .rv-wh.zk-b .rv-r-b-k{opacity:1}
.cam .rv-wh.zk-b .rv-r-b-k .rv-pk2{animation:rv-pkm 1.4s linear infinite}
.cam .rv-wh.zb-b .rv-zb .rv-v-b{opacity:1}
.cam .rv-wh.zb-0 .rv-zb .rv-v-0{opacity:1}
.cam .rv-wh.zb-b .rv-zb .rv-on{opacity:1;stroke:#4d9eff;animation:rv-drb .9s ease-out both}
.cam .rv-wh.zb-b .rv-zb .rv-pk{fill:#4d9eff;animation:rv-pkm 1.6s linear infinite}
.cam .rv-wh.zb-b .rv-zb .rv-sp{fill:#4d9eff;fill-opacity:.25;stroke:#4d9eff}
.cam .rv-wh.zb-b .rv-zb .rv-rg{stroke:#4d9eff;animation:rv-rgb 2s ease-out infinite}
.cam .rv-wh.zb-b .rv-zb .rv-led{fill:#4d9eff}
.cam .rv-wh.zb-b .rv-r-b-b{opacity:1}
.cam .rv-wh.zb-b .rv-r-b-b .rv-pk2{animation:rv-pkm 1.4s linear infinite}
.cam .rv-wh.zt-a .rv-zt .rv-v-a{opacity:1}
.cam .rv-wh.zt-0 .rv-zt .rv-v-0{opacity:1}
.cam .rv-wh.zt-a .rv-zt .rv-on{opacity:1;stroke:#f472b6;animation:rv-dra .9s ease-out both}
.cam .rv-wh.zt-a .rv-zt .rv-pk{fill:#f472b6;animation:rv-pkm 1.6s linear infinite}
.cam .rv-wh.zt-a .rv-zt .rv-sp{fill:#f472b6;fill-opacity:.25;stroke:#f472b6}
.cam .rv-wh.zt-a .rv-zt .rv-rg{stroke:#f472b6;animation:rv-rga 2s ease-out infinite}
.cam .rv-wh.zt-a .rv-zt .rv-led{fill:#f472b6}
.cam .rv-wh.zt-a .rv-r-a-t{opacity:1}
.cam .rv-wh.zt-a .rv-r-a-t .rv-pk2{animation:rv-pkm 1.4s linear infinite}
@keyframes rv-bub{0%,20%{transform:translateX(12px)}70%,100%{transform:none}}
.cam .rv-z .rv-bub{animation:rv-bub 3.2s ease-in-out infinite alternate}
@keyframes rv-beam{0%,100%{opacity:.55}50%{opacity:1}}
.cam .rv-z .rv-beam{animation:rv-beam 2.6s ease-in-out infinite}
.cam .rv-z .rv-cr{transform-box:fill-box;transform-origin:center;animation:rv-ring 2.1s ease-out infinite}
@keyframes rv-wv{0%,100%{opacity:.15}40%{opacity:1}}
.cam .rv-z .rv-wv{animation:rv-wv 1.4s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.cam .rv-z *{animation:none!important}}
@media (prefers-reduced-motion: reduce){.cam .rv-hero .rv-sf,.cam .rv-hero .rv-fh,.cam .rv-hero .rv-glint,.cam .rv-sur .rv-rg,.cam .rv-wh .rv-rg,.cam .rv-wh .rv-pk,.cam .rv-wh .rv-pk2,.cam .rv-z .rv-cr{opacity:0!important}}
@keyframes cv-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes cv-in{from{opacity:0}to{opacity:1}}
@keyframes cv-ring{from{transform:scale(.4);opacity:.85}to{transform:scale(2.4);opacity:0}}
@keyframes cv-pkm{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
.cam .cv-tx{font:600 11.5px var(--mono);letter-spacing:.06em;fill:#cfe0ff}
.cam .cv-hero .cv-scr,.cam .cv-hero .cv-dp{transform-box:view-box;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.cam .cv-hero .cv-scr{transform-origin:170px 158px}
.cam .cv-hero .cv-dp{transform-origin:43px 300px}
.cam .cv-hero .cv-c0,.cam .cv-hero .cv-c1,.cam .cv-hero .cv-c2,.cam .cv-hero .cv-warn{opacity:0;transition:opacity .4s}
.cam .cv-hero.c0 .cv-c0,.cam .cv-hero.c1 .cv-c1,.cam .cv-hero.c2 .cv-c2,.cam .cv-hero.x .cv-warn{opacity:1}
.cam .cv-hero .cv-need{transform-box:view-box;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.cam .cv-hero .cv-nl,.cam .cv-hero .cv-sl,.cam .cv-hero .cv-rb,.cam .cv-hero .cv-dm{opacity:0;transition:opacity .35s}
.cam .cv-hero .cv-ln{fill:none;stroke-width:1.3;stroke-dasharray:100;stroke-dashoffset:0}
.cam .cv-hero .cv-lg rect{fill:rgba(77,158,255,.04);stroke:rgba(139,188,255,.2)}
.cam .cv-hero .cv-lg .cv-tx{fill:#7d92b3}
.cam .cv-hero.c0 .cv-lg0 rect,.cam .cv-hero.c1 .cv-lg1 rect,.cam .cv-hero.c2 .cv-lg2 rect{fill:rgba(244,114,182,.14);stroke:#f472b6}
.cam .cv-hero.c0 .cv-lg0 .cv-tx,.cam .cv-hero.c1 .cv-lg1 .cv-tx,.cam .cv-hero.c2 .cv-lg2 .cv-tx{fill:#fff}
.cam .cv-hero .cv-sx,.cam .cv-hero .cv-tb,.cam .cv-hero .cv-bk{transform-box:view-box;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.cam .cv-hero .cv-sx{transform-origin:40px 0}
.cam .cv-hero .cv-tb{transform-origin:112px 0}
.cam .cv-hero .cv-pp{opacity:0;transition:opacity .4s}
@media (max-width:640px){.cam .cv-hero .cv-leg,.cam .cv-hero .cv-fvl{display:none}}
@media (max-width:640px){.cam .cv-hero .cv-tx{font-size:16px}}
@media (max-width:640px){.cam .cv-hero .cv-gl{opacity:0}}
.cam .cv-hero .cv-p0{opacity:1}
.cam .cv-hero.r1 .cv-p1,.cam .cv-hero.r2 .cv-p1,.cam .cv-hero.r2 .cv-p2,.cam .cv-hero.r2 .cv-p3{opacity:1;transition-delay:.5s}
.cam .cv-hero.r0 .cv-sx{transform:scaleX(0.5091)}
.cam .cv-hero.r0 .cv-bk{transform:translateX(-216px)}
.cam .cv-hero.r0 .cv-tb{transform:scaleX(0.2895)}
.cam .cv-hero.r0 .cv-d0{opacity:1}
.cam .cv-hero.r1 .cv-sx{transform:scaleX(0.7545)}
.cam .cv-hero.r1 .cv-bk{transform:translateX(-108px)}
.cam .cv-hero.r1 .cv-tb{transform:scaleX(0.6447)}
.cam .cv-hero.r1 .cv-d1{opacity:1}
.cam .cv-hero.r2 .cv-sx{transform:scaleX(1.0000)}
.cam .cv-hero.r2 .cv-bk{transform:translateX(0px)}
.cam .cv-hero.r2 .cv-tb{transform:scaleX(1.0000)}
.cam .cv-hero.r2 .cv-d2{opacity:1}
.cam .cv-hero.z55 .cv-scr{transform:scale(0.5612)}
.cam .cv-hero.z55 .cv-dp{transform:scaleY(0.5625)}
.cam .cv-hero.z55 .cv-g55{fill:#f9a8d4}
.cam .cv-hero.z65 .cv-scr{transform:scale(0.6633)}
.cam .cv-hero.z65 .cv-dp{transform:scaleY(0.6646)}
.cam .cv-hero.z65 .cv-g65{fill:#f9a8d4}
.cam .cv-hero.z75 .cv-scr{transform:scale(0.7653)}
.cam .cv-hero.z75 .cv-dp{transform:scaleY(0.7667)}
.cam .cv-hero.z75 .cv-g75{fill:#f9a8d4}
.cam .cv-hero.z98 .cv-scr{transform:scale(1.0000)}
.cam .cv-hero.z98 .cv-dp{transform:scaleY(1.0000)}
.cam .cv-hero.z98 .cv-g98{fill:#f9a8d4}
.cam .cv-hero.r0.c0 .cv-need{transform:translateY(-63px)}
.cam .cv-hero.r0.c0 .cv-n00,.cam .cv-hero.r0.c0 .cv-s00,.cam .cv-hero.r0.c0 .cv-b00{opacity:1}
.cam .cv-hero.r0.c0 .cv-s00 .cv-ln,.cam .cv-hero.r0.c0 .cv-b00 .cv-ln{animation:cv-dr00 .8s .35s ease-out both}
@keyframes cv-dr00{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r0.c1 .cv-need{transform:translateY(-42px)}
.cam .cv-hero.r0.c1 .cv-n01,.cam .cv-hero.r0.c1 .cv-s01,.cam .cv-hero.r0.c1 .cv-b01{opacity:1}
.cam .cv-hero.r0.c1 .cv-s01 .cv-ln,.cam .cv-hero.r0.c1 .cv-b01 .cv-ln{animation:cv-dr01 .8s .35s ease-out both}
@keyframes cv-dr01{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r0.c2 .cv-need{transform:translateY(-31.5px)}
.cam .cv-hero.r0.c2 .cv-n02,.cam .cv-hero.r0.c2 .cv-s02,.cam .cv-hero.r0.c2 .cv-b02{opacity:1}
.cam .cv-hero.r0.c2 .cv-s02 .cv-ln,.cam .cv-hero.r0.c2 .cv-b02 .cv-ln{animation:cv-dr02 .8s .35s ease-out both}
@keyframes cv-dr02{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r1.c0 .cv-need{transform:translateY(-100.8px)}
.cam .cv-hero.r1.c0 .cv-n10,.cam .cv-hero.r1.c0 .cv-s10,.cam .cv-hero.r1.c0 .cv-b10{opacity:1}
.cam .cv-hero.r1.c0 .cv-s10 .cv-ln,.cam .cv-hero.r1.c0 .cv-b10 .cv-ln{animation:cv-dr10 .8s .35s ease-out both}
@keyframes cv-dr10{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r1.c1 .cv-need{transform:translateY(-67.2px)}
.cam .cv-hero.r1.c1 .cv-n11,.cam .cv-hero.r1.c1 .cv-s11,.cam .cv-hero.r1.c1 .cv-b11{opacity:1}
.cam .cv-hero.r1.c1 .cv-s11 .cv-ln,.cam .cv-hero.r1.c1 .cv-b11 .cv-ln{animation:cv-dr11 .8s .35s ease-out both}
@keyframes cv-dr11{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r1.c2 .cv-need{transform:translateY(-50.4px)}
.cam .cv-hero.r1.c2 .cv-n12,.cam .cv-hero.r1.c2 .cv-s12,.cam .cv-hero.r1.c2 .cv-b12{opacity:1}
.cam .cv-hero.r1.c2 .cv-s12 .cv-ln,.cam .cv-hero.r1.c2 .cv-b12 .cv-ln{animation:cv-dr12 .8s .35s ease-out both}
@keyframes cv-dr12{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r2.c0 .cv-need{transform:translateY(-138.6px)}
.cam .cv-hero.r2.c0 .cv-n20,.cam .cv-hero.r2.c0 .cv-s20,.cam .cv-hero.r2.c0 .cv-b20{opacity:1}
.cam .cv-hero.r2.c0 .cv-s20 .cv-ln,.cam .cv-hero.r2.c0 .cv-b20 .cv-ln{animation:cv-dr20 .8s .35s ease-out both}
@keyframes cv-dr20{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r2.c1 .cv-need{transform:translateY(-92.4px)}
.cam .cv-hero.r2.c1 .cv-n21,.cam .cv-hero.r2.c1 .cv-s21,.cam .cv-hero.r2.c1 .cv-b21{opacity:1}
.cam .cv-hero.r2.c1 .cv-s21 .cv-ln,.cam .cv-hero.r2.c1 .cv-b21 .cv-ln{animation:cv-dr21 .8s .35s ease-out both}
@keyframes cv-dr21{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-hero.r2.c2 .cv-need{transform:translateY(-69.3px)}
.cam .cv-hero.r2.c2 .cv-n22,.cam .cv-hero.r2.c2 .cv-s22,.cam .cv-hero.r2.c2 .cv-b22{opacity:1}
.cam .cv-hero.r2.c2 .cv-s22 .cv-ln,.cam .cv-hero.r2.c2 .cv-b22 .cv-ln{animation:cv-dr22 .8s .35s ease-out both}
@keyframes cv-dr22{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.cam .cv-70 .cv-sp{fill:#101a2e;stroke:#8bbcff;stroke-width:1.2}
.cam .cv-70 .cv-k{opacity:.16;transition:opacity .3s}
.cam .cv-70 .cv-k .cv-wire{stroke-dasharray:3 3}
.cam .cv-70.s0 .cv-k0{opacity:1}
.cam .cv-70.s0 .cv-k0 .cv-wire{stroke-dasharray:none}
.cam .cv-70.s1 .cv-k,.cam .cv-70.s2 .cv-k{opacity:1}
.cam .cv-70.s1 .cv-k .cv-wire,.cam .cv-70.s2 .cv-k .cv-wire{stroke-dasharray:none}
.cam .cv-70.s1 .cv-k .cv-wire,.cam .cv-70.s1 .cv-k .cv-sp{animation:cv-in .2s ease-out both}
.cam .cv-70 .cv-xf{opacity:0;transition:opacity .3s}
.cam .cv-70.s2 .cv-xf{opacity:1}
.cam .cv-70 .cv-t{opacity:0}
.cam .cv-70.t1 .cv-t1,.cam .cv-70.t2 .cv-t2,.cam .cv-70.t4 .cv-t4,.cam .cv-70.t8 .cv-t8{opacity:1}
.cam .cv-70 .cv-lit{fill:#f472b6;opacity:0;transform-box:fill-box;transform-origin:center}
.cam .cv-70.s0 .cv-k0 .cv-lit{opacity:.35}
.cam .cv-70.s2 .cv-lit{opacity:.35;animation:cv-lit .45s ease-out both}
@keyframes cv-lit{from{opacity:0;transform:scale(.2)}60%{opacity:.8;transform:scale(1.25)}to{opacity:.35;transform:none}}
.cam .cv-70 .cv-rg{fill:none;stroke:#f472b6;stroke-width:1.2;transform-box:fill-box;transform-origin:center;opacity:0}
.cam .cv-70.s0 .cv-k0 .cv-rg{animation:cv-ring 2s ease-out infinite}
@keyframes cv-rg1{from{transform:scale(.6);opacity:.85}to{transform:scale(1.5);opacity:0}}
@keyframes cv-rg2{from{transform:scale(.6);opacity:.85}to{transform:scale(1.9);opacity:0}}
@keyframes cv-rg4{from{transform:scale(.6);opacity:.85}to{transform:scale(2.4);opacity:0}}
@keyframes cv-rg8{from{transform:scale(.6);opacity:.85}to{transform:scale(3);opacity:0}}
.cam .cv-70.s2 .cv-rg2{animation:cv-rg2 2s 1s ease-out infinite}
.cam .cv-70.s2 .cv-rg4{animation:cv-rg4 2s 1s ease-out infinite}
.cam .cv-70.s2.t1 .cv-rgb{animation:cv-rg1 2s 1s ease-out infinite}
.cam .cv-70.s2.t2 .cv-rgb{animation:cv-rg2 2s 1s ease-out infinite}
.cam .cv-70.s2.t4 .cv-rgb{animation:cv-rg4 2s 1s ease-out infinite}
.cam .cv-70.s2.t8 .cv-rgb{animation:cv-rg8 2s 1s ease-out infinite}
.cam .cv-70 .cv-x{opacity:0}
.cam .cv-70.s1 .cv-x{opacity:1;animation:cv-in .3s ease-out both}
.cam .cv-70 .cv-prot{opacity:.18}
.cam .cv-70.s1 .cv-prot{opacity:1;animation:cv-in .2s 2.2s both}
.cam .cv-70.s1 .cv-pled{animation:cam-blink 1.1s step-end 2.4s infinite}
.cam .cv-70 .cv-a70,.cam .cv-70.s2 .cv-a8{opacity:0}
.cam .cv-70.s2 .cv-a70{opacity:1}
.cam .cv-70 .cv-m0,.cam .cv-70 .cv-m1,.cam .cv-70 .cv-m2{opacity:0}
.cam .cv-70.s0 .cv-m0{opacity:1}
.cam .cv-70.s1 .cv-m1{opacity:1}
.cam .cv-70.s1 .cv-q{animation:cv-in .05s linear both}
.cam .cv-70.s2.t1 .cv-mt1,.cam .cv-70.s2.t2 .cv-mt2,.cam .cv-70.s2.t4 .cv-mt4,.cam .cv-70.s2.t8 .cv-mt8{opacity:1}
.cam .cv-taps{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.cam .cv-taps.off{display:none}
@media (max-width:640px){.cam .cv-70 .cv-rn{font-size:15px!important}}
@media (max-width:640px){.cam .cv-70 .cv-xf text{font-size:13px!important}}
.cam .cv-ct .cv-v-off,.cam .cv-ct .cv-v-pre,.cam .cv-ct .cv-v-call,.cam .cv-ct .cv-lap,.cam .cv-ct .cv-beams,.cam .cv-ct .cv-mute,.cam .cv-ct .cv-cs,.cam .cv-ct .cv-frame{opacity:0;transition:opacity .45s}
.cam .cv-ct.k-off .cv-v-off,.cam .cv-ct.k-pre .cv-v-pre,.cam .cv-ct.k-call .cv-v-call,.cam .cv-ct.k-pre .cv-lap,.cam .cv-ct.k-call .cv-beams,.cam .cv-ct.k-call .cv-frame{opacity:1}
.cam .cv-ct.k-pre .cv-mute,.cam .cv-ct.k-off .cv-mute,.cam .cv-ct.k-pre .cv-cs,.cam .cv-ct.k-call .cv-cs{opacity:1}
.cam .cv-ct .cv-bar{transform-box:fill-box;transform-origin:bottom}
.cam .cv-ct.k-pre .cv-bar{animation:cv-grow .6s .3s cubic-bezier(.3,.7,.3,1) both}
@keyframes cv-grow{from{transform:scaleY(0)}to{transform:none}}
.cam .cv-ct.k-call .cv-tile{animation:cv-in .4s .3s both}
.cam .cv-ct .cv-spk-hl{opacity:0}
.cam .cv-ct.k-call .cv-spk-hl{animation:cv-spk 4s 1s ease-in-out infinite}
@keyframes cv-spk{0%,40%{opacity:0}50%,90%{opacity:1}100%{opacity:0}}
.cam .cv-ct .cv-bm{fill:rgba(244,114,182,.1);stroke:rgba(244,114,182,.4);stroke-width:1}
.cam .cv-ct.k-call .cv-bm{animation:cv-bm 2.4s ease-in-out infinite}
@keyframes cv-bm{0%,100%{opacity:.35}50%{opacity:1}}
.cam .cv-ct .cv-sw{opacity:0}
.cam .cv-ct.k-pre .cv-sw,.cam .cv-ct.k-call .cv-sw{animation:cv-sw 1.6s ease-out infinite}
@keyframes cv-sw{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}100%{opacity:0;transform:translateY(8px)}}
.cam .cv-ct .cv-shut{transition:transform .6s cubic-bezier(.3,.7,.3,1)}
.cam .cv-ct.k-call .cv-shut{transform:translateX(-22px)}
.cam .cv-ct .cv-cled{fill:#334155}
.cam .cv-ct.k-call .cv-cled{fill:#4ade80}
.cam .cv-ct .cv-hd{stroke-dasharray:100;stroke-dashoffset:0}
.cam .cv-ct.k-pre .cv-hd{animation:cv-draw .6s .2s ease-out both}
.cam .cv-ct .cv-tap{transform-box:fill-box;transform-origin:center;opacity:0}
.cam .cv-ct.k-pre .cv-tap{animation:cv-tp1 .8s ease-out both}
.cam .cv-ct.k-call .cv-tap{animation:cv-tp2 .8s ease-out both}
.cam .cv-ct.k-off .cv-tap{animation:cv-tp3 .8s ease-out both}
@keyframes cv-tp1{from{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(3)}}
@keyframes cv-tp2{from{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(3)}}
@keyframes cv-tp3{from{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(3)}}
.cam .cv-ct .cv-f{opacity:0;transition:opacity .35s}
.cam .cv-ct .cv-fp{opacity:0;offset-rotate:0deg}
.cam .cv-ct .cv-bx rect{fill:#0b1324;stroke:rgba(139,188,255,.3);stroke-width:1}
.cam .cv-ct .cv-bx text{opacity:.45;transition:opacity .3s}
.cam .cv-panel{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:18px;border:1px solid rgba(244,114,182,.35);background:linear-gradient(180deg,#0e1628,#070b14);box-shadow:0 30px 60px -30px rgba(244,114,182,.35),inset 0 0 0 6px #05070c}
.cam .cv-pb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cam .cv-pb button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:84px;padding:10px 6px;border:1px solid rgba(120,170,255,.22);border-radius:10px;background:#0b1324;color:#c9d2e0;font:700 14px var(--sans);cursor:pointer}
.cam .cv-pb button i{width:26px;height:26px;border-radius:50%;border:2px solid currentColor;display:block}
.cam .cv-pb button:hover{border-color:#f472b6;color:#fff}
.cam .cv-pb button.on{border-color:#f472b6;background:rgba(244,114,182,.16);color:#fff;box-shadow:0 0 0 4px rgba(244,114,182,.1)}
.cam .cv-pr{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px;padding:9px 0;border-top:1px dashed rgba(120,170,255,.16);font-size:13.5px;color:#dfe6f2}
@media (max-width:640px){.cam .cv-ct .cv-bx .lbl{font-size:12.5px!important}}
@media (max-width:640px){.cam .cv-ct .cv-bx .lbl2{font-size:9.5px!important}}
@media (max-width:640px){.cam .cv-ct .lbl2{font-size:11px!important}}
.cam .cv-pr .cv-pk{font:600 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#7d92b3;padding-top:2px}
.cam .cv-ct.k-pre .cv-f-lap_sw{opacity:1}
.cam .cv-ct.k-pre .cv-f-lap_sw .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-pre .cv-f-sw_disp{opacity:1}
.cam .cv-ct.k-pre .cv-f-sw_disp .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-pre .cv-f-sw_dsp{opacity:1}
.cam .cv-ct.k-pre .cv-f-sw_dsp .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-pre .cv-f-dsp_spk{opacity:1}
.cam .cv-ct.k-pre .cv-f-dsp_spk .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-pc_sw{opacity:1}
.cam .cv-ct.k-call .cv-f-pc_sw .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-sw_disp{opacity:1}
.cam .cv-ct.k-call .cv-f-sw_disp .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-cam_pc{opacity:1}
.cam .cv-ct.k-call .cv-f-cam_pc .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-mic_dsp{opacity:1}
.cam .cv-ct.k-call .cv-f-mic_dsp .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-dsp_pc{opacity:1}
.cam .cv-ct.k-call .cv-f-dsp_pc .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-pc_dsp{opacity:1}
.cam .cv-ct.k-call .cv-f-pc_dsp .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-call .cv-f-dsp_spk{opacity:1}
.cam .cv-ct.k-call .cv-f-dsp_spk .cv-fp{animation:cv-pkm 1.4s linear infinite}
.cam .cv-ct.k-pre .cv-bx-lap rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-pre .cv-bx-lap text{opacity:1}
.cam .cv-ct.k-pre .cv-bx-sw rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-pre .cv-bx-sw text{opacity:1}
.cam .cv-ct.k-pre .cv-bx-disp rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-pre .cv-bx-disp text{opacity:1}
.cam .cv-ct.k-pre .cv-bx-dsp rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-pre .cv-bx-dsp text{opacity:1}
.cam .cv-ct.k-pre .cv-bx-spk rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-pre .cv-bx-spk text{opacity:1}
.cam .cv-ct.k-call .cv-bx-pc rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-pc text{opacity:1}
.cam .cv-ct.k-call .cv-bx-cam rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-cam text{opacity:1}
.cam .cv-ct.k-call .cv-bx-sw rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-sw text{opacity:1}
.cam .cv-ct.k-call .cv-bx-dsp rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-dsp text{opacity:1}
.cam .cv-ct.k-call .cv-bx-disp rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-disp text{opacity:1}
.cam .cv-ct.k-call .cv-bx-spk rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-spk text{opacity:1}
.cam .cv-ct.k-call .cv-bx-mic rect{stroke:#f472b6;fill:rgba(244,114,182,.1)}
.cam .cv-ct.k-call .cv-bx-mic text{opacity:1}
.cam .cv-rd{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px}
.cam .cv-rd div{display:flex;flex-direction:column;gap:4px;min-width:0}
.cam .cv-rd b{font-size:14.5px;font-weight:600;color:#e8edf5}
@keyframes cv-pul{0%,100%{opacity:.35}50%{opacity:1}}
.cam .cv-z .cv-pul{animation:cv-pul 2.4s ease-in-out infinite}
@keyframes cv-cyc{0%,40%{transform:translateY(0)}55%,95%{transform:translateY(-74px)}100%{transform:translateY(0)}}
.cam .cv-z .cv-cyc{animation:cv-cyc 6s ease-in-out infinite}
.cam .cv-z .cv-cr{transform-box:fill-box;transform-origin:center;animation:cv-ring 2s ease-out infinite}
@keyframes cv-wv{0%,100%{opacity:.15}40%{opacity:1}}
.cam .cv-z .cv-wv{animation:cv-wv 1.4s ease-in-out infinite}
@keyframes cv-lv{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.55)}}
.cam .cv-z .cv-lv{transform-box:fill-box;transform-origin:left;animation:cv-lv 3.2s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.cam .cv-z *{animation:none!important}}
@media (prefers-reduced-motion: reduce){.cam .cv-70 .cv-rg,.cam .cv-ct .cv-fp,.cam .cv-ct .cv-tap,.cam .cv-ct .cv-sw,.cam .cv-z .cv-cr{opacity:0!important}}
@media (prefers-reduced-motion: reduce){.cam .cv-ct.k-pre .cv-sw,.cam .cv-ct.k-call .cv-sw{opacity:1!important}}
@media (prefers-reduced-motion: reduce){.cam .cv-ct.k-call .cv-spk-hl{opacity:1}}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-v20-latin-variable.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
