
/* Movimiento y demostraciones de producto */
.fact-hero { position:relative; isolation:isolate; }
.fact-hero:before { content:''; position:absolute; z-index:-1; inset:5% 5% 10%; background:radial-gradient(ellipse at 25% 20%,#94e9ce50,transparent 50%),radial-gradient(ellipse at 80% 70%,#67b5cd30,transparent 55%); filter:blur(35px); animation:fact-aurora 12s ease-in-out infinite alternate; pointer-events:none; }
.fact-hero h1 { letter-spacing:-.055em; background:linear-gradient(120deg,#102a2b 25%,#087861 65%,#125667); -webkit-background-clip:text; background-clip:text; color:transparent; }
.fact-code-window { position:relative; border-color:#407b6d66; box-shadow:0 30px 80px #103d3922,0 0 0 6px #05966906; transform:perspective(1200px) rotateY(-3deg) rotateX(1deg); transition:transform .6s; }
.fact-code-window:hover { transform:perspective(1200px) rotateY(0) rotateX(0); }
.fact-code-window:after { content:''; pointer-events:none; position:absolute; left:0; right:0; top:-10%; height:70px; background:linear-gradient(transparent,#47e5ae09,transparent); animation:fact-scan 9s linear infinite; }
.fact-code-window .json-key { color:#90e2cc; }.fact-code-window .json-string { color:#e8c69a; }.fact-code-window .json-number { color:#9abff1; }
.fact-live-section { background:radial-gradient(ellipse at 50% 0,#17453f,#081d25 70%); color:#edf9f4; padding:78px 24px; overflow:hidden; }
.fact-live-inner { max-width:1104px; margin:auto; }
.fact-live-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:40px; }
.fact-eyebrow { font-size:10px; font-weight:700; letter-spacing:2px; color:#80daba; }
.fact-live-heading h2 { margin-top:18px; font-size:clamp(32px,4vw,49px); line-height:1.15; letter-spacing:-1.8px; }.fact-live-heading em { font-style:normal; color:#80dfba; }
.fact-live-heading>p { max-width:350px; color:#afc9c8; font-size:14px; line-height:1.85; }.fact-live-heading>p>span { display:block; font-size:10px; color:#81a8aa; margin-top:12px; }
.fact-pipeline { display:grid; grid-template-columns:1fr 50px 1fr 50px 1fr; align-items:center; }
.fact-node { position:relative; overflow:hidden; min-width:0; border:1px solid #98d4c52b; background:#ffffff04; padding:26px 24px; border-radius:18px; min-height:260px; transition:border-color .5s,background .5s,box-shadow .5s,transform .5s; }
.fact-node-label { font-size:9px; font-weight:700; letter-spacing:1.4px; color:#a0bfbe; }
.fact-node-icon { display:grid; place-items:center; width:54px; height:54px; margin:24px 0 20px; border-radius:14px; border:1px solid #90e2c82b; background:#69d7af0b; font:600 24px ui-monospace,monospace; color:#8ce4c6; }
.fact-node h3 { font-size:21px; letter-spacing:-.5px; }.fact-node p { min-height:44px; font-size:12px; line-height:1.75; color:#9ab9bc; margin:8px 0 18px; }
.fact-node-state { display:inline-block; border-radius:20px; padding:5px 10px; font-size:10px; color:#9fb9bc; background:#ffffff08; }
.fact-node.active { border-color:#85e6bc; background:#68d6b10b; box-shadow:0 0 35px #58e7ab13; transform:translateY(-4px); }.fact-node.active .fact-node-icon { animation:fact-breathe 1s ease-in-out infinite; }.fact-node.active .fact-node-state { color:#a7f3d0; }
.fact-node.done { border-color:#75d9b36b; }.fact-node.done .fact-node-state { background:#62d6ab17; color:#8be3bc; }
.fact-connection { height:2px; background:#6cbda333; position:relative; overflow:visible; }.fact-connection i { position:absolute; width:7px; height:7px; top:-2.5px; left:0; border-radius:50%; background:#91f3cc; box-shadow:0 0 14px #91f3cc; opacity:0; }
.fact-pipeline.is-running .fact-connection i { opacity:1; animation:fact-packet 1.5s linear infinite; }.fact-pipeline.is-running .fact-connection:nth-of-type(2) i { animation-delay:.7s; }
.fact-live-footer { display:flex; justify-content:space-between; align-items:center; gap:22px; margin-top:26px; padding-top:24px; border-top:1px solid #a6d2c420; }
.fact-live-footer>p { font:11px/1.7 ui-monospace,monospace; color:#adc9c9; }.fact-live-footer>p>span { color:#83dfb8; }
.fact-live-footer button { min-height:48px; padding:12px 22px; border:1px solid #a0efd1; border-radius:10px; background:#9cecc9; color:#0a3029; font:700 13px system-ui,sans-serif; cursor:pointer; display:flex; gap:28px; align-items:center; }.fact-live-footer button:hover { background:#c0f7e0; }.fact-live-footer button:disabled { opacity:.55; cursor:wait; }
.fact-demo-receipt { display:grid; grid-template-columns:1fr auto; gap:12px; padding:20px 24px; margin-top:22px; border:1px solid #8ae4be44; border-radius:12px; background:#80dfb80b; animation:fact-result .6s ease both; }.fact-demo-receipt[hidden] { display:none; }.fact-demo-receipt>span { color:#96e9c8; font-size:10px; font-weight:700; letter-spacing:1px; }.fact-demo-receipt code { font-size:12px; color:#d5f0e7; }.fact-demo-receipt b { color:#6c9d98; margin:0 8px; }.fact-demo-receipt small { grid-column:1/-1; color:#86aaa9; font-size:10px; }
.fact-padron-card { position:relative; box-shadow:0 16px 50px #0d67530a; transition:box-shadow .4s,border-color .4s; }.fact-padron-card.is-searching { border-color:#5ed1a9; box-shadow:0 0 35px #05966918; }
.fact-padron-play { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; margin-top:20px; border:1px solid #a7dfca; border-radius:9px; padding:12px 16px; min-height:48px; background:#ecfdf5; color:#047857; font:600 13px system-ui,sans-serif; cursor:pointer; }.fact-padron-play:disabled { opacity:.6; cursor:wait; }
.fact-padron-result { display:flex; gap:12px; align-items:center; border-top:1px solid #d6eee5; margin-top:18px; padding-top:18px; animation:fact-result .5s ease both; }.fact-padron-result[hidden] { display:none; }.fact-padron-tick { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; background:#d1fae5; color:#047857; border-radius:50%; }.fact-padron-result strong { font-size:13px; }.fact-padron-result p { font-size:12px; color:#64748b; margin:4px 0; }.fact-padron-result code { font-size:11px; color:#047857; }.fact-padron-status { font-size:11px; color:#64748b; line-height:1.7; margin-top:14px; }
.fact-reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .8s cubic-bezier(.2,.8,.2,1); }.fact-reveal.is-visible { opacity:1; transform:none; }
#planes .grid>div { transition:transform .3s,box-shadow .3s; }#planes .grid>div:hover { transform:translateY(-5px); box-shadow:0 20px 45px #0f4c3c10; }
#planes .border-emerald-600 { background:linear-gradient(140deg,#f0fdf7,#fff); }
.fact-padron-play:focus-visible,.fact-live-footer button:focus-visible { outline:3px solid #34d399; outline-offset:4px; }
@keyframes fact-aurora { to { transform:translate3d(18px,15px,0) scale(1.04); } }@keyframes fact-scan { to { top:110%; } }@keyframes fact-breathe { 50% { box-shadow:0 0 24px #8ce4c633; } }@keyframes fact-packet { from { left:0; } to { left:100%; } }@keyframes fact-result { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media(max-width:1000px) { header nav { gap:14px!important; font-size:12px!important; }.fact-node { padding:22px 16px; }.fact-pipeline { grid-template-columns:1fr 24px 1fr 24px 1fr; } }
@media(max-width:767px) { .fact-code-window { transform:none; }.fact-live-section { padding:52px 20px; }.fact-live-heading { flex-direction:column; align-items:flex-start; gap:20px; }.fact-live-heading>p { max-width:none; }.fact-pipeline { grid-template-columns:1fr; gap:12px; }.fact-node { min-height:0; padding:20px; display:grid; grid-template-columns:44px 1fr; gap:8px 14px; }.fact-node-label { grid-column:1/-1; }.fact-node-icon { grid-row:2/5; margin:4px 0 0; width:44px; height:44px; font-size:20px; }.fact-node h3 { font-size:19px; }.fact-node p { min-height:0; margin:0; }.fact-node-state { justify-self:start; }.fact-connection { width:2px; height:22px; margin:auto; }.fact-connection i { top:0; left:-2px; }.fact-pipeline.is-running .fact-connection i { animation-name:fact-packet-vertical; }.fact-live-footer { flex-direction:column; align-items:stretch; }.fact-live-footer button { justify-content:center; }.fact-demo-receipt { grid-template-columns:1fr; padding:18px; }.fact-demo-receipt code { font-size:10px; }.fact-hero:before { inset:0; filter:blur(20px); } }
@keyframes fact-packet-vertical { from { top:0; } to { top:100%; } }
@media(prefers-reduced-motion:reduce) { .fact-hero:before,.fact-code-window:after,.fact-node.active .fact-node-icon,.fact-pipeline.is-running .fact-connection i { animation:none!important; }.fact-reveal { opacity:1; transform:none; transition:none; }.fact-demo-receipt,.fact-padron-result { animation:none; }.fact-code-window,#planes .grid>div,.fact-node,.fact-padron-card { transition:none; transform:none!important; } }

/* Simulación horizontal ampliable en teléfonos. */
.fact-view-actions { display:flex; justify-content:flex-end; align-items:center; gap:16px; margin-bottom:18px; }
.fact-view-actions>span { display:none; color:#9ebdbd; font-size:11px; }
.fact-view-actions button,.fact-dialog-bar button { min-height:44px; padding:10px 14px; border:1px solid #8ce4c655; border-radius:9px; color:#b5efd9; background:#8ce4c60a; font:600 12px system-ui,sans-serif; cursor:pointer; }
.fact-viewport { overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#3b9c80 #0c252a; padding:6px 2px 18px; }
.fact-viewport:focus-visible { outline:2px solid #8ce4c6; outline-offset:3px; }
.fact-pipeline { position:relative; }
.fact-dialog { position:fixed; inset:0; width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; padding:20px; border:0; overflow:auto; background:radial-gradient(ellipse at top,#17453f,#081d25 70%); color:#edf9f4; }
.fact-dialog::backdrop { background:#081d25ee; }
.fact-dialog-bar { display:flex; justify-content:space-between; align-items:center; gap:18px; max-width:1104px; margin:0 auto 24px; font-size:14px; }
.fact-dialog-bar small { display:block; color:#9ebdbd; font-size:11px; margin-top:6px; }
.fact-dialog-bar button { flex-shrink:0; }
.fact-dialog-content { max-width:1104px; margin:auto; }
body.fact-expanded { overflow:hidden; }
@media(max-width:767px) {
 .fact-view-actions { justify-content:space-between; gap:12px; }
 .fact-view-actions>span { display:block; max-width:145px; line-height:1.7; font-size:10px; }
 .fact-view-actions button { font-size:11px; }
 .fact-viewport .fact-pipeline { width:790px; grid-template-columns:1fr 32px 1fr 32px 1fr; gap:0; }
 .fact-viewport .fact-node { display:block; padding:24px 20px; min-height:276px; }
 .fact-viewport .fact-node-icon { width:52px; height:52px; margin:22px 0 18px; font-size:24px; }
 .fact-viewport .fact-node h3 { font-size:20px; }
 .fact-viewport .fact-node p { min-height:46px; margin:10px 0 16px; font-size:12px; }
 .fact-viewport .fact-connection { width:100%; height:2px; margin:0; }
 .fact-viewport .fact-connection i { left:0; top:-2.5px; }
 .fact-viewport .fact-pipeline.is-running .fact-connection i { animation-name:fact-packet; }
 .fact-dialog { padding:14px; }
 .fact-dialog-bar { align-items:flex-start; margin-bottom:18px; }
}
@media(max-height:540px) and (orientation:landscape) {
 .fact-dialog { padding:12px; }
 .fact-dialog-bar { margin-bottom:12px; }
 .fact-dialog .fact-node { min-height:220px; padding:18px; }
 .fact-dialog .fact-node-icon { margin:14px 0; width:44px; height:44px; }
 .fact-dialog .fact-node p { min-height:32px; }
 .fact-dialog .fact-live-footer { padding-top:14px; margin-top:12px; }
}

.fact-participants { display:grid; grid-template-columns:1fr 50px 1fr 50px 1fr; align-items:stretch; margin-bottom:26px; }
.fact-participant { border:1px solid #98d4c52b; border-radius:12px; padding:16px; display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; background:#ffffff03; transition:border-color .4s,background .4s; }
.fact-participant-icon { width:30px; height:30px; flex-shrink:0; display:grid; place-items:center; background:#7ce3b914; border-radius:8px; color:#9ae6c9; font:600 17px ui-monospace,monospace; }
.fact-participant>div { flex:1; min-width:100px; }
.fact-participant>div>span { font-size:8px; letter-spacing:1px; color:#84b9ac; display:block; }
.fact-participant strong { font-size:12px; display:block; line-height:1.5; margin-top:5px; }
.fact-participant p { font-size:10px; line-height:1.7; color:#96b5b6; margin-top:5px; }
.fact-participant>b { font-size:9px; color:#88aaa9; margin-left:40px; }
.fact-participant-link { align-self:center; text-align:center; color:#82c8b2; font-size:21px; }
.fact-participant.active { border-color:#94edc6; background:#78d8b50c; }
.fact-participant.active>b { color:#a6f2d3; }.fact-participant.done { border-color:#72c9a86b; }.fact-participant.done>b { color:#87ddbc; }
@media(max-width:1000px) { .fact-participants { grid-template-columns:1fr 24px 1fr 24px 1fr; } }
@media(max-width:767px) {
 .fact-circuit { width:790px; position:relative; }
 .fact-participants { grid-template-columns:1fr 32px 1fr 32px 1fr; margin-bottom:22px; }
 .fact-participant { padding:14px; }
 .fact-participant strong { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .fact-participant { transition:none; } }

.fact-response-lane { height:66px; position:relative; margin:0 0 20px; }
.fact-response-label { display:block; text-align:center; font-size:8px; font-weight:700; letter-spacing:1.6px; color:#88aaa9; }
.fact-response-line { position:absolute; top:43px; left:12%; right:12%; height:1px; background:linear-gradient(90deg,#83e9c120,#83e9c166,#83e9c120); }
.fact-response-packet { position:absolute; top:28px; left:84%; transform:translateX(-50%); display:flex; align-items:center; gap:7px; white-space:nowrap; padding:7px 12px; border:1px solid #a5f2cd; border-radius:20px; background:#164b40; color:#c0f7de; box-shadow:0 0 24px #8de8bd2b; font:600 10px system-ui,sans-serif; transition:left 850ms cubic-bezier(.4,0,.2,1); z-index:2; }
.fact-response-packet[hidden] { display:none; }
.fact-circuit.is-returning .fact-participant-link { color:#c4ffe4; text-shadow:0 0 15px #80dfb8; }
.fact-pipeline.is-returning .fact-connection i { animation-direction:reverse; background:#c0f7de; }
@media(prefers-reduced-motion:reduce) { .fact-response-packet { transition:none; } }

.fact-response-packet.is-request { background:#173b65; border-color:#84bdff; color:#d8ebff; box-shadow:0 0 24px #69afff35; }

/* Confirmación de la respuesta generada por ARCA. */
.fact-participant { position:relative; }
.fact-circuit.is-authorizing .fact-participant[data-participant="2"] { border-color:#8dbfff; box-shadow:0 0 30px #65adff25; }
.fact-circuit.is-authorizing .fact-participant[data-participant="2"] .fact-participant-icon { animation:fact-authorizing .7s ease-in-out infinite alternate; }
.fact-participant.response-ready:after { content:''; position:absolute; inset:-2px; border:2px solid #9df1cb; border-radius:inherit; pointer-events:none; animation:fact-response-ring 1s ease-out both; }
.fact-participant.response-ready .fact-participant-icon { background:#9cecc9; color:#103e32; box-shadow:0 0 24px #9cecc94a; transition:background .4s,color .4s; }
.fact-response-packet.is-generated { animation:fact-response-born .85s cubic-bezier(.22,1,.36,1) both; }
@keyframes fact-authorizing { to { opacity:.5; box-shadow:0 0 20px #84bdff66; } }
@keyframes fact-response-ring { from { opacity:1; transform:scale(1); } to { opacity:0; transform:scale(1.12); } }
@keyframes fact-response-born { 0% { opacity:.3; transform:translateX(-50%) scale(.72); filter:brightness(1.8); } 55% { opacity:1; transform:translateX(-50%) scale(1.13); } 100% { transform:translateX(-50%) scale(1); filter:brightness(1); } }
@media(prefers-reduced-motion:reduce) { .fact-circuit.is-authorizing .fact-participant-icon,.fact-participant.response-ready:after,.fact-response-packet.is-generated { animation:none!important; } }

.fact-response-packet.is-registered { background:#1e6048; border-color:#abf2cb; color:#d5ffe6; letter-spacing:1px; font-weight:800; }

.fact-response-packet.is-processing { background:#704719; border-color:#f6c66d; color:#fff0c9; box-shadow:0 0 24px #f5b84c35; }

/* Cada sector se ilumina únicamente mientras participa. */
.fact-circuit .fact-participant,.fact-circuit .fact-node { transition:opacity .45s ease,background .45s ease,border-color .45s ease,box-shadow .45s ease,transform .45s ease; }
.fact-circuit .fact-participant:not(.active),.fact-circuit .fact-node:not(.active) { opacity:.56; background:#06151d; border-color:#53777333; box-shadow:none; }
.fact-circuit .fact-participant.active { opacity:1; background:#19473f; border-color:#9cebc9; box-shadow:0 0 28px #6bdfb31a; }
.fact-circuit .fact-node.active { opacity:1; background:#17463e; border-color:#9cebc9; box-shadow:0 0 34px #6bdfb324; }
.fact-circuit .fact-participant:not(.active) .fact-participant-icon { background:#7ce3b90b; color:#87aaa2; box-shadow:none; }
.fact-circuit .fact-participant:not(.active):after { display:none; }
.fact-circuit.is-authorizing .fact-participant[data-participant="2"].active { background:#263e51; border-color:#8dbfff; box-shadow:0 0 30px #65adff25; }
@media(prefers-reduced-motion:reduce) { .fact-circuit .fact-participant,.fact-circuit .fact-node { transition:none; } }

.fact-brand-logo { display:block; width:190px; height:auto; }
@media(max-width:767px) { .fact-brand-logo { width:148px; } }

/* Invitación a probar la simulación; se detiene durante la ejecución. */
#fact-live-play:not(:disabled) { animation:fact-invite 2s ease-in-out infinite; }
#fact-live-play:hover,#fact-live-play:focus-visible { animation:none; }
@keyframes fact-invite {
 0%,100% { box-shadow:0 0 0 0 rgba(120,175,230,0); filter:brightness(1); }
 50% { box-shadow:0 0 0 7px rgba(120,175,230,.12),0 0 24px rgba(120,175,230,.24); filter:brightness(1.12); }
}
@media(prefers-reduced-motion:reduce) { #fact-live-play:not(:disabled) { animation:none; } }

#fact-live-play:not(:disabled) { animation:fact-button-call 1.2s ease-in-out infinite; }
#fact-live-play:hover,#fact-live-play:focus-visible { animation-play-state:paused; }
@keyframes fact-button-call {
 0%,100% { background-color:#9cecc9; box-shadow:0 0 0 0 rgba(124,235,187,0); }
 50% { background-color:#e3fff1; box-shadow:0 0 0 8px rgba(124,235,187,.3),0 0 38px rgba(124,235,187,.7); filter:brightness(1.18); }
}
@media(prefers-reduced-motion:reduce) { #fact-live-play:not(:disabled) { animation:none; } }

.fact-client-webhook { border:1px dashed #7dc6d65c; border-radius:9px; padding:12px; margin:12px 0; background:#6cd3df08; transition:background .4s,box-shadow .4s; }
.fact-client-webhook>span { display:block; font-size:8px; letter-spacing:1.1px; font-weight:700; color:#97dce5; }
.fact-client-webhook>small { display:block; margin-top:7px; font-size:10px; line-height:1.6; color:#b3cecc; }
.fact-circuit.is-delivering .fact-client-webhook { background:#82e3b722; border-color:#a5f2cd; box-shadow:0 0 22px #82e3b724; }
.fact-response-packet.is-accepted { background:#223e58; color:#cee9ff; border-color:#9bc9ef; }
@media(prefers-reduced-motion:reduce) { .fact-client-webhook { transition:none; } }
