/* Ajustes compartidos de accesibilidad, rendimiento y visor. */
[hidden]{display:none!important}
:focus-visible{outline:3px solid #60a5fa;outline-offset:4px}
section[id],main[id]{scroll-margin-top:88px}
.skip-link{position:fixed;top:12px;left:12px;z-index:12000;padding:12px 18px;background:#fff;color:#0f172a;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.reveal{opacity:1;transform:none}
.reveal-pending:not(.visible){opacity:0;transform:translateY(24px)}
.brand-card{text-align:center;width:100%;font:inherit}
.brand-label{color:#526174}
.brand-hover{position:static;opacity:1;padding:0;background:none}
.brand-logo{filter:none}
.brand-card:focus-visible .brand-logo{filter:none}
.flyer-item{width:100%;padding:0;border:0;background:transparent;text-align:left}
.flyer-item:focus-visible .flyer-hover{opacity:1}
.flyer-extra:not(.visible){display:none}
.ticker-track img{width:auto}
.ticker-track:focus-within{animation-play-state:paused}
.form-input{font-size:16px}
.form-input::placeholder{color:#94a3b8}
.result-native{display:block;width:100%;margin:0 0 16px;padding:12px;border-radius:10px;border:1px solid #94a3b8;color:#e2e8f0;background:transparent;font:inherit;cursor:pointer}
.result-overlay{overflow:auto;overscroll-behavior:contain}
.result-card{max-height:calc(100dvh - 40px);overflow:auto}
footer .text-gray-600,footer .text-gray-700{color:#94a3b8}
body.bg-dark .text-gray-500{color:#94a3b8}
#sobre-mi .text-gray-500{color:#526174}
#portafolio .text-gray-400{color:#526174}
#portafolio p[style*="color:#94a3b8"]{color:#526174!important}
.lb-overlay{display:none;position:fixed;inset:0;z-index:11000;height:100vh;height:100dvh;width:100%;padding:12px;gap:10px;background:#070b14;color:#fff;grid-template-rows:auto minmax(0,1fr) auto;overscroll-behavior:contain;font-family:Inter,sans-serif}
.lb-overlay.open{display:grid}
.lb-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}
.lb-caption{margin:0;font-family:Outfit,sans-serif;font-size:clamp(15px,2.5vw,20px);font-weight:700;line-height:1.3;color:#f8fafc}
.lb-close{display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;min-height:46px;padding:8px 14px;color:#fff;border:1px solid #64748b;border-radius:10px;background:#172033;font:inherit;font-size:14px;cursor:pointer}
.lb-close span{font-size:25px;line-height:1}
.lb-stage{min-height:0;min-width:0;width:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pan-y pinch-zoom;background:#0b1020;border-radius:10px}
.lb-img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:3px;user-select:none;-webkit-user-select:none}
.lb-stage.is-zoomed{display:block;overflow:auto;touch-action:pan-x pan-y pinch-zoom;cursor:grab}
.lb-stage.is-zoomed .lb-img{max-width:none;max-height:none;width:max(100%,1100px);height:auto;border-radius:0}
.lb-feedback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;gap:16px;padding:24px}
.lb-feedback p{margin:0;max-width:400px;color:#e2e8f0;font-size:15px}
.lb-retry{pointer-events:auto;background:#2563eb;border:1px solid #60a5fa;color:#fff;padding:12px 18px;border-radius:10px;cursor:pointer;font:inherit}
.is-loading .lb-feedback:before{content:'';width:32px;height:32px;border:3px solid #334155;border-top-color:#93c5fd;border-radius:50%;animation:lbSpin .8s linear infinite}
@keyframes lbSpin{to{transform:rotate(360deg)}}
.lb-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 20px;padding-bottom:env(safe-area-inset-bottom,0px)}
.lb-pagination{display:flex;align-items:center;justify-content:center;gap:12px;width:100%}
.lb-nav{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid #60a5fa;background:#2563eb;color:#fff;font-family:Outfit,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}
.lb-nav:hover:not(:disabled){background:#1d4ed8}
.lb-nav:disabled{background:#172033;color:#94a3b8;border-color:#475569;cursor:default}
.lb-counter{flex-shrink:0;min-width:56px;text-align:center;color:#e2e8f0;font-variant-numeric:tabular-nums;font-size:14px}
.lb-zoom{min-height:44px;padding:8px 16px;border-radius:8px;border:1px solid #64748b;background:#172033;color:#f8fafc;font:inherit;font-size:13px;cursor:pointer}
.lb-zoom:disabled{opacity:.5;cursor:default}
.lb-hint{flex-basis:100%;margin:0;text-align:center;color:#cbd5e1;font-size:11px;line-height:1.4}
.cookie-banner{position:fixed;inset:auto 12px 12px;z-index:10500;max-width:760px;margin:auto;padding:18px 20px;border:1px solid #475569;border-radius:16px;background:#0a0f1e;box-shadow:0 18px 50px #0008;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;font-family:Inter,sans-serif}
.cookie-banner p{margin:0;flex:1 1 280px;color:#cbd5e1;font-size:13px;line-height:1.6}
.cookie-banner a{color:#93c5fd;text-decoration:underline}
.cookie-actions{display:flex;gap:10px}
.cookie-actions button{min-height:44px;padding:10px 18px;border:1px solid #94a3b8;border-radius:10px;background:transparent;color:#fff;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}
.cookie-actions #ckAccept{background:#2563eb;border-color:#60a5fa}
.cookie-settings{display:block;margin:20px auto 0;padding:8px 12px;min-height:44px;font:inherit;font-size:12px;color:#94a3b8;background:transparent;border:0;text-decoration:underline;cursor:pointer}
@media(min-width:768px){.lb-overlay{padding:20px 32px;gap:16px}.lb-pagination{width:auto}.lb-hint{font-size:12px}.lb-toolbar{gap:10px 24px}.lb-caption{font-size:20px}}
@media(max-width:767px){.blob{display:none}.glass-card,.navbar-glass{backdrop-filter:none;-webkit-backdrop-filter:none}footer .flex.items-center.gap-6{flex-wrap:wrap;justify-content:center;gap:16px}.wa-btn{right:16px;bottom:16px;width:52px;height:52px}.brand-card{padding:20px 12px 16px;gap:10px}.brand-logo{height:64px}.brand-action{font-size:11px}.cookie-actions{width:100%}.cookie-actions button{flex:1}.cookie-banner{bottom:76px;max-height:calc(100dvh - 100px);overflow:auto}.lb-overlay{padding-top:max(10px,env(safe-area-inset-top))}.lb-nav{flex:1;max-width:190px;padding:10px;font-size:14px}.lb-pagination{gap:8px}.lb-counter{min-width:48px}}
@media(max-height:500px) and (orientation:landscape){.lb-overlay{padding:8px 16px;gap:6px}.lb-header{min-height:36px}.lb-close,.lb-nav,.lb-zoom{min-height:36px;padding:6px 12px}.lb-hint{display:none}.lb-pagination{width:auto}.lb-toolbar{gap:8px}.lb-caption{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal,.reveal-pending:not(.visible){opacity:1;transform:none}.ticker-track{animation:none}.is-loading .lb-feedback:before{animation:none}}
