.ct-viewport{touch-action:none;-webkit-user-select:none;user-select:none;background-color:var(--ct-bg,#0b0713);background-image:var(--ct-bg-img,none);background-size:var(--ct-bg-size,auto);cursor:grab;color:var(--ct-text,#f0ecff);--ct-inv:1;border-radius:18px;position:relative;overflow:hidden}.ct-viewport.is-panning{cursor:grabbing}.ct-viewport[data-tool=pin],.ct-viewport[data-tool=circle],.ct-viewport[data-tool=poly],.ct-viewport.is-aiming{cursor:crosshair}.ct-layer{transform-origin:0 0;will-change:transform;width:0;height:0;position:absolute;top:0;left:0}.ct-map{pointer-events:none;max-width:none;box-shadow:0 0 0 1px var(--ct-map-edge,#ffffff1a);filter:var(--ct-map-filter,none);border-radius:2px;display:block;position:absolute;top:0;left:0}.ct-shapes{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.ct-pins,.ct-fx{width:0;height:0;position:absolute;top:0;left:0}.ct-empty{text-align:center;pointer-events:none;color:var(--ct-muted,#a99fc4);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:26px;display:flex;position:absolute;inset:0}.ct-empty[hidden]{display:none}.ct-empty-btn{pointer-events:auto}.ct-empty-ico{opacity:.85;font-size:3.2rem}.ct-empty p{max-width:34ch;margin:0;font-size:.86rem;line-height:1.6}.ct-empty p:first-of-type{color:var(--ct-text,#f0ecff);font-size:1rem}.ct-empty b{color:var(--ct-accent,#8deeff)}.ct-pin{transform:translate(-50%,-100%)scale(var(--ct-inv));transform-origin:50% 100%;font:inherit;color:inherit;cursor:pointer;z-index:4;background:0 0;border:0;flex-direction:column;align-items:center;gap:0;padding:0;transition:filter .18s,opacity .18s;display:flex;position:absolute}.ct-pin:focus-visible{outline:none}.ct-pin:focus-visible .ct-pin-head{box-shadow:0 0 0 3px var(--ct-accent,#8deeff)}.ct-pin-head{background:var(--ct-pin-bg,linear-gradient(140deg,#8deeff,#a96ae7));border:2px solid var(--ct-pin-border,#ffffffd9);border-radius:50% 50% 50% 4px;place-items:center;width:30px;height:30px;transition:transform .18s,background .18s,border-color .18s;display:grid;transform:rotate(-45deg);box-shadow:0 6px 14px #00000073}.ct-pin-glyph{color:var(--ct-pin-text,#0d0a16);font-size:.78rem;font-weight:900;line-height:1;transform:rotate(45deg)}.ct-pin-stem{background:var(--ct-pin-border,#ffffffd9);border-radius:0 0 2px 2px;width:2px;height:7px;margin-top:-2px}.ct-pin-label{text-align:center;max-width:132px;color:var(--ct-text,#f0ecff);background:var(--ct-label-bg,#0c0818d1);border:1px solid var(--ct-label-border,#ffffff29);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;margin-top:3px;padding:2px 7px;font-size:.62rem;font-weight:700;line-height:1.35;overflow:hidden}.ct-pin:hover .ct-pin-head{transform:rotate(-45deg)scale(1.14)}@keyframes ct-flota{0%,to{transform:translate(-50%,-100%)scale(var(--ct-inv))}50%{transform:translate(-50%,calc(-100% - 5px))scale(var(--ct-inv))}}.ct-pin.is-option{animation:2.6s ease-in-out infinite ct-flota}.ct-pin.is-option:nth-child(2n){animation-delay:-.55s}.ct-pin.is-option:nth-child(3n){animation-delay:-1.15s}.ct-pin.is-option:nth-child(5n){animation-delay:-1.8s}.ct-pin.is-correct-mark .ct-pin-head{background:var(--ct-ok,#3ddc97);border-color:#eafff5}.ct-pin.is-correct-mark .ct-pin-glyph:after{content:"✓";margin-left:2px}.ct-pin.is-right .ct-pin-head{background:var(--ct-ok,#3ddc97);border-color:#eafff5}.ct-pin.is-wrong .ct-pin-head{background:var(--ct-bad,#ff6b81);border-color:#ffe6ea}.ct-pin.is-off{opacity:.32;pointer-events:none;filter:grayscale();animation:none}.ct-pin.is-off .ct-pin-label{opacity:.5}.ct-pin.is-gold{z-index:6;animation:none}.ct-pin.is-gold .ct-pin-head{background:var(--ct-gold,#ffc94a);border-color:#fff6dd;box-shadow:0 0 0 3px #ffc94a47,0 8px 18px #00000080}@keyframes ct-shake{0%,to{transform:translate(-50%,-100%)scale(var(--ct-inv))rotate(0deg)}22%{transform:translate(calc(-50% - 5px),-100%)scale(var(--ct-inv))rotate(-6deg)}58%{transform:translate(calc(-50% + 5px),-100%)scale(var(--ct-inv))rotate(6deg)}}.ct-pin.shake{animation:.36s ct-shake}@keyframes ct-pop{0%{transform:translate(-50%,-100%)scale(var(--ct-inv))}45%{transform:translate(-50%,-100%)scale(calc(var(--ct-inv)*1.35))}to{transform:translate(-50%,-100%)scale(var(--ct-inv))}}.ct-pin.pop{animation:.42s ct-pop}.ct-shape-body{fill:#0000;stroke:none}.ct-edit .ct-shape-body{fill:var(--ct-zone-fill,#8deeff24);stroke:var(--ct-zone-line,#8deeff);stroke-width:2px;stroke-dasharray:7 5;pointer-events:auto;cursor:move}.ct-edit .ct-shape-g:hover .ct-shape-body{fill:var(--ct-zone-fill-hi,#8deeff3d)}.ct-edit .ct-shape-g.is-selected .ct-shape-body{stroke:var(--ct-gold,#ffc94a);stroke-dasharray:none;stroke-width:2.5px}.ct-shape-g.is-revealed .ct-shape-body{fill:#3ddc9733;stroke:var(--ct-ok,#3ddc97);stroke-width:3px;stroke-dasharray:none;animation:.5s ct-revelar}@keyframes ct-revelar{0%{opacity:0;stroke-width:9px}to{opacity:1;stroke-width:3px}}.ct-shape-g.is-hot .ct-shape-body{fill:#ffc94a1f;stroke:var(--ct-gold,#ffc94a);stroke-width:2px;stroke-dasharray:10 8;animation:1.6s ease-in-out infinite ct-latido}@keyframes ct-latido{0%,to{opacity:.45}50%{opacity:1}}.ct-handle{fill:var(--ct-gold,#ffc94a);stroke:#1a1030;stroke-width:2px;pointer-events:auto;cursor:grab;transform:scale(var(--ct-inv));transform-origin:50%;transform-box:fill-box}.ct-handle-radius{fill:var(--ct-accent,#8deeff)}.ct-handle:hover{fill:#fff}.ct-draft-line{fill:#8deeff1a;stroke:var(--ct-accent,#8deeff);stroke-width:2px;stroke-dasharray:6 5}.ct-draft-dot{fill:var(--ct-accent,#8deeff);stroke:#14092a;stroke-width:2px;transform:scale(var(--ct-inv));transform-origin:50%;transform-box:fill-box}.ct-foco-velo{fill:#04020cc7}.ct-onda{pointer-events:none;width:26px;height:26px;transform:scale(var(--ct-inv));transform-origin:50%;z-index:3;border-radius:50%;margin:-13px 0 0 -13px;position:absolute}.ct-onda:before,.ct-onda:after{content:"";border:2.5px solid;border-radius:50%;animation:1.1s cubic-bezier(.15,.7,.3,1) forwards ct-expandir;position:absolute;inset:0}.ct-onda:after{animation-delay:.16s}@keyframes ct-expandir{0%{opacity:.95;transform:scale(.35)}to{opacity:0;transform:scale(3.6)}}.ct-onda.is-cold{color:#6aa8ff}.ct-onda.is-warm{color:#ffab40}.ct-onda.is-hot{color:#ff7043}.ct-onda.is-good{color:var(--ct-ok,#3ddc97)}.ct-onda.is-miss:before,.ct-onda.is-miss:after{display:none}.ct-onda.is-miss{color:var(--ct-bad,#ff6b81);text-align:center;font-size:20px;font-weight:900;line-height:26px;animation:1.5s forwards ct-fallo}.ct-onda.is-miss:first-letter{color:inherit}@keyframes ct-fallo{0%{opacity:0;transform:scale(calc(var(--ct-inv)*.5))}22%{opacity:1;transform:scale(calc(var(--ct-inv)*1.15))}75%{opacity:1;transform:scale(var(--ct-inv))}to{opacity:0;transform:scale(var(--ct-inv))}}.ct-cam{z-index:20;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.ct-cam button{border:1px solid var(--ct-cam-border,#ffffff2e);background:var(--ct-cam-bg,#0e091cdb);width:34px;height:34px;color:var(--ct-text,#f0ecff);cursor:pointer;-webkit-backdrop-filter:blur(8px);border-radius:11px;font-size:1rem;font-weight:800;line-height:1;transition:border-color .15s,background .15s}.ct-cam button:hover{border-color:var(--ct-accent,#8deeff)}.ct-zoom-label{z-index:20;font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--ct-muted,#a99fc4);background:var(--ct-cam-bg,#0e091ccc);border:1px solid var(--ct-cam-border,#ffffff24);pointer-events:none;border-radius:999px;padding:3px 9px;font-size:.68rem;font-weight:800;position:absolute;bottom:16px;left:14px}.ct-viewport.pl-drop-target{outline:3px dashed var(--ct-accent,#8deeff);outline-offset:-6px}.ct-modal{z-index:6000;-webkit-backdrop-filter:blur(6px);background:#05020eb8;place-items:center;padding:1.2rem;display:grid;position:fixed;inset:0}.ct-modal[hidden]{display:none}.ct-modal-card{background:var(--ct-modal-bg,#150d28);border:1px solid var(--ct-modal-border,#ffffff29);border-radius:20px;width:min(430px,100%);animation:.22s ct-modal-in;overflow:hidden;box-shadow:0 26px 60px #0009}@keyframes ct-modal-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.ct-modal-body{padding:1.3rem 1.35rem 1.2rem}.ct-modal-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--ct-gold,#ffc94a);margin:0 0 .45rem;font-size:.62rem;font-weight:800}.ct-modal-body h3{color:var(--ct-text,#f0ecff);margin:0 0 .6rem;font-size:1.1rem;line-height:1.35}.ct-modal-body p{color:var(--ct-muted,#a99fc4);margin:0 0 1rem;font-size:.88rem;line-height:1.65}.ct-modal-close{border:1px solid var(--ct-accent,#8deeff);width:100%;color:var(--ct-accent,#8deeff);font:inherit;cursor:pointer;background:0 0;border-radius:12px;padding:.65rem 1rem;font-weight:800;transition:background .15s,color .15s}.ct-modal-close:hover{background:var(--ct-accent,#8deeff);color:#0d0a16}.ct-skin-atlas{--ct-bg:#0a0715;--ct-bg-img:radial-gradient(circle at 16% 20%,#8deeff24,transparent 46%),radial-gradient(circle at 82% 78%,#a96ae729,transparent 44%);--ct-text:#f0ecff;--ct-muted:#a99fc4;--ct-accent:#8deeff;--ct-ok:#3ddc97;--ct-bad:#ff6b81;--ct-gold:#ffc94a;--ct-pin-bg:linear-gradient(140deg,#8deeff,#a96ae7);--ct-pin-text:#0d0a16;--ct-zone-fill:#8deeff24;--ct-zone-line:#8deeff;--ct-map-edge:#ffffff1f}.ct-skin-satelite{--ct-bg:#03050c;--ct-bg-img:radial-gradient(circle at 50% 50%,#3ddc971a,transparent 60%),linear-gradient(#3ddc970d 1px,transparent 1px),linear-gradient(90deg,#3ddc970d 1px,transparent 1px);--ct-bg-size:auto,34px 34px,34px 34px;--ct-text:#dcffee;--ct-muted:#79a897;--ct-accent:#3ddc97;--ct-ok:#7dffc4;--ct-bad:#ff5f6d;--ct-gold:#d8ff5a;--ct-pin-bg:linear-gradient(140deg,#7dffc4,#1fa37a);--ct-pin-text:#04140d;--ct-zone-fill:#3ddc9724;--ct-zone-line:#3ddc97;--ct-map-edge:#3ddc973d;--ct-map-filter:saturate(1.08)contrast(1.06);--ct-label-bg:#03120cd9;--ct-label-border:#3ddc9747;--ct-cam-bg:#04140edb;--ct-cam-border:#3ddc9742;--ct-modal-bg:#06180f;--ct-modal-border:#3ddc9747}.ct-skin-pergamino{--ct-bg:#241a10;--ct-bg-img:radial-gradient(circle at 20% 24%,#ffd69624,transparent 48%),radial-gradient(circle at 78% 76%,#784e2847,transparent 46%);--ct-text:#3a2a17;--ct-muted:#7a6244;--ct-accent:#b6733a;--ct-ok:#4f8a4a;--ct-bad:#b03a3a;--ct-gold:#a8761f;--ct-pin-bg:linear-gradient(140deg,#f0d9a8,#c08b45);--ct-pin-text:#2f2010;--ct-pin-border:#3c2814cc;--ct-zone-fill:#b0733a33;--ct-zone-line:#8a5a26;--ct-map-edge:#3c281459;--ct-map-filter:sepia(.22)saturate(1.05);--ct-label-bg:#f8ebd0eb;--ct-label-border:#78542c66;--ct-cam-bg:#f6e8cbe6;--ct-cam-border:#78542c57;--ct-modal-bg:#f6e8cb;--ct-modal-border:#78542c66}.ct-skin-neon{--ct-bg:#06040f;--ct-bg-img:radial-gradient(circle at 18% 22%,#e55ab138,transparent 46%),radial-gradient(circle at 84% 76%,#8deeff2e,transparent 44%),linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);--ct-bg-size:auto,auto,26px 26px,26px 26px;--ct-text:#ffe9fb;--ct-muted:#c39fce;--ct-accent:#ff6ec7;--ct-ok:#5cffd0;--ct-bad:#ff5470;--ct-gold:#ffe14a;--ct-pin-bg:linear-gradient(140deg,#ff6ec7,#7b5cff);--ct-pin-text:#14061a;--ct-zone-fill:#ff6ec729;--ct-zone-line:#ff6ec7;--ct-map-edge:#ff6ec74d;--ct-map-filter:saturate(1.12);--ct-label-bg:#14061edb;--ct-label-border:#ff6ec74d;--ct-cam-bg:#12061ce0;--ct-cam-border:#ff6ec747;--ct-modal-bg:#170a24;--ct-modal-border:#ff6ec752}@media (prefers-reduced-motion:reduce){.ct-pin.is-option,.ct-shape-g.is-hot .ct-shape-body{animation:none}.ct-onda:before,.ct-onda:after{animation-duration:.4s}.ct-modal-card{animation:none}}body.perf-low .ct-pin.is-option,body.perf-low .ct-shape-g.is-hot .ct-shape-body{animation:none}body.perf-low .ct-cam button,body.perf-low .ct-modal{-webkit-backdrop-filter:none}body.perf-low .ct-map{filter:none}@media (width<=640px){.ct-pin-head{width:34px;height:34px}.ct-pin-glyph{font-size:.84rem}.ct-pin-label{max-width:108px;font-size:.6rem}.ct-cam button{width:38px;height:38px;font-size:1.05rem}.ct-cam{bottom:10px;right:10px}.ct-empty-ico{font-size:2.6rem}.ct-empty p{font-size:.8rem}}@media (pointer:coarse){.ct-handle{r:10}.ct-cam button{min-width:44px;min-height:44px}}