/* Entrada nueva para evitar copias HTTP antiguas de la portada. */
.cover-checking #mainApp {visibility:hidden;}
.maintenance-active #mainApp,.maintenance-active #planModal,.maintenance-active .custom-cursor {display:none !important;}
.maintenance-cover {position:fixed;inset:0;z-index:1000001;overflow:hidden;isolation:isolate;display:grid;place-items:center;background:var(--cover-color,#07152f);color:white;font-family:Inter,sans-serif;}
.maintenance-cover[hidden],.maintenance-cover [hidden] {display:none !important;}
.cover-background,.cover-shade,.cover-atmosphere {position:absolute;inset:0;pointer-events:none;}
.cover-background {background-size:cover;background-position:center;transform:scale(1.06);animation:cover-drift 24s ease-in-out infinite alternate;}
.cover-shade {background:rgba(2,10,28,var(--cover-overlay,.55));}
.cover-atmosphere {opacity:var(--cover-intensity,.7);background:radial-gradient(ellipse at 50% 48%,#b4dbff1f,transparent 55%),linear-gradient(0deg,#02091670,transparent 35%,transparent 70%,#02091650);}
.cover-beam {position:absolute;top:-80%;left:20%;height:260%;width:28%;background:linear-gradient(90deg,transparent,#b6dcff14,transparent);transform:rotate(32deg);animation:cover-beam 18s ease-in-out infinite alternate;filter:blur(15px);}
.cover-beam-two {left:65%;width:18%;animation-delay:-9s;}
.cover-composition {position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(35px,7vh,70px);padding:40px 20px;max-width:100%;}
.cover-emblem {position:relative;width:clamp(180px,30vw,310px);aspect-ratio:1;display:grid;place-items:center;animation:cover-emblem 8s ease-in-out infinite;}
.cover-logo-surface {position:relative;width:78%;height:78%;border-radius:50%;background:linear-gradient(135deg,#fff,#e4ecf6);display:grid;place-items:center;overflow:hidden;border:1px solid #ffffff80;box-shadow:0 24px 80px #0006,inset 0 0 35px #c4d8ee70;}
.cover-logo {height:65%;width:65%;object-fit:contain;filter:drop-shadow(0 6px 8px #183d6b25);}
.cover-aura {position:absolute;inset:-25%;border-radius:50%;background:radial-gradient(circle,#99cfff35,transparent 65%);opacity:var(--cover-intensity,.7);animation:cover-aura 8s ease-in-out infinite alternate;}
.cover-orbit {position:absolute;inset:0;border-radius:50%;border:1px solid #cce7ff30;border-top-color:#e5f4ffbd;border-left-color:transparent;opacity:var(--cover-intensity,.7);animation:cover-orbit 20s linear infinite;}
.cover-orbit-two {inset:-14%;border-style:dashed;border-color:#b0d5ff30;animation-direction:reverse;animation-duration:36s;}
.cover-sheen {position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 40%,#fff9 50%,transparent 60%);transform:translateX(-100%);animation:cover-sheen 12s ease-in-out infinite;opacity:var(--cover-intensity,.7);}
.cover-action {display:inline-flex;align-items:center;gap:30px;border:1px solid #d0e8ff80;border-radius:100px;padding:16px 25px;background:#ffffff14;color:white;text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.02em;box-shadow:0 10px 35px #0003;transition:background .3s,transform .3s;max-width:min(90vw,500px);overflow-wrap:anywhere;}
.cover-action b {font-size:22px;font-weight:400;}
.cover-action:hover {background:#ffffff2b;transform:translateY(-3px);}
.cover-action:focus-visible,.cover-motion:focus-visible,.cover-close:focus-visible {outline:3px solid #b9dfff;outline-offset:5px;}
.cover-motion,.cover-close {position:absolute;border:1px solid #ffffff40;border-radius:5px;background:#07152f90;color:#e0ebf8;padding:9px 12px;font:11px Inter,sans-serif;cursor:pointer;}
.cover-motion {bottom:max(20px,env(safe-area-inset-bottom));right:20px;}
.cover-close {top:20px;left:20px;}
.maintenance-cover[data-effect="orbit"] .cover-beam {display:none;}
.maintenance-cover[data-effect="orbit"] .cover-orbit-one {border-width:2px;animation-duration:12s;}
.maintenance-cover[data-effect="calm"] :is(.cover-orbit,.cover-sheen,.cover-beam) {display:none;}
.cover-static * {animation:none !important;}
.cover-paused *,.cover-background-paused * {animation-play-state:paused !important;}
@keyframes cover-drift {to{transform:scale(1.13) translate(-1%,1%);}}
@keyframes cover-emblem {50%{transform:translateY(-10px);}}
@keyframes cover-aura {to{transform:scale(1.1);}}
@keyframes cover-orbit {to{transform:rotate(360deg);}}
@keyframes cover-beam {to{transform:rotate(12deg) translateX(25%);}}
@keyframes cover-sheen {0%,65%{transform:translateX(-100%);}90%,100%{transform:translateX(100%);}}
@media(max-height:480px) {.cover-emblem{width:150px;}.cover-composition{gap:20px;padding:12px;}.cover-action{padding:10px 20px;}}
@media(prefers-reduced-motion:reduce) {.maintenance-cover *{animation:none !important;transition:none !important;}.cover-motion{display:none;}}
@media print {.maintenance-cover{display:none !important;}}

/* Local photographic route: entrance angle, front gate, university name wall. */
.cover-campus-tour,.cover-shot {position:absolute;inset:0;pointer-events:none;}
.cover-campus-tour {background:var(--cover-color);}
.cover-shot {background-size:cover;background-repeat:no-repeat;}
.cover-shot-angle {background-image:url('../images/upn-colima-lateral-sin-poste.webp');background-position:70% 40%;animation:cover-campus-pan 27s ease-in-out infinite;}
.cover-shot-front {background-image:url('../images/upn-colima-frontal-sin-poste.webp');background-position:55% 38%;opacity:0;animation:cover-campus-front 27s ease-in-out infinite;}
.cover-shot-name {background-image:url('../images/upn-colima-nombre-frontal.webp');background-size:cover;background-position:35% 48%;opacity:0;animation:cover-campus-name 27s ease-in-out infinite;}
.maintenance-cover[data-background="university"] .cover-composition {transform:translateY(20vh);}
@keyframes cover-campus-pan {0%,100%{transform:scale(1.02);}50%{transform:scale(1.08) translateX(-1%);}}
@keyframes cover-campus-front {0%,20%{opacity:0;transform:scale(1.05);}34%,61%{opacity:1;transform:scale(1.01);}75%,100%{opacity:0;}}
@keyframes cover-campus-name {0%,58%{opacity:0;transform:scale(1.01);}73%,90%{opacity:1;transform:scale(1.04);}100%{opacity:0;transform:scale(1.04);}}
@media(max-width:768px) {.cover-shot-name {background-size:cover;background-position:60% center;background-color:var(--cover-color);}.cover-shot-name::after {content:'';position:absolute;inset:0;background:linear-gradient(0deg,var(--cover-color) 5%,transparent 60%);}}
@media(max-height:480px) {.maintenance-cover[data-background="university"] .cover-composition {transform:translateY(9vh);}}
@media(prefers-reduced-motion:reduce) {.cover-shot-front,.cover-shot-name {opacity:0 !important;}}

/* Default frontal photo: preserve the university name and students on phones. */
.cover-campus-photo .cover-composition {transform:translateY(20vh);}
@media(max-width:768px) {.cover-campus-photo .cover-background {background-size:cover;background-position:60% center;background-repeat:no-repeat;background-color:var(--cover-color);}}
@media(max-height:480px) {.cover-campus-photo .cover-composition {transform:translateY(9vh);}}

/* Escenario de citas: identidad anclada, lectura central y temas independientes. */
.maintenance-cover{--cover-text:#f4f7ff;--cover-accent:#bed6ff;--cover-panel:#0a1c36;--cover-control:#0a1c36e8;color:var(--cover-text)}
.maintenance-cover .cover-composition{position:absolute;inset:0;max-width:none;display:flex;justify-content:center;gap:22px;padding:75px 6vw 150px;transform:none!important}
.maintenance-cover .cover-emblem{position:absolute;left:max(28px,env(safe-area-inset-left));bottom:max(25px,env(safe-area-inset-bottom));width:350px;height:95px;aspect-ratio:auto;display:flex;justify-content:flex-start;gap:18px;animation:none}
.maintenance-cover .cover-logo-surface{width:90px;height:90px;flex-shrink:0;border-radius:22px;box-shadow:0 10px 35px #0003}
.maintenance-cover .cover-logo{width:75%;height:75%}.cover-corner-identity{display:flex;flex-direction:column;gap:6px;color:var(--cover-text);text-align:left;line-height:1.4}.cover-corner-identity strong{font:600 13px Outfit,sans-serif;max-width:210px}.cover-corner-identity>span{font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.maintenance-cover .cover-emblem>.cover-orbit{width:110px;height:110px;inset:-10px auto auto -10px}.maintenance-cover .cover-emblem>.cover-orbit-two{width:130px;height:130px;inset:-20px auto auto -20px}.maintenance-cover .cover-aura{width:180px;height:180px;inset:-45px auto auto -45px}
.cover-quote-stage{position:relative;width:min(900px,100%);text-align:center}.cover-kicker{display:block;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--cover-accent);margin-bottom:18px}.cover-quote-copy{position:relative;min-height:270px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:26px 30px;border:1px solid #bed6ff2b;border-radius:24px;background:color-mix(in srgb,var(--cover-panel) 83%,transparent);box-shadow:0 20px 90px #0001;backdrop-filter:blur(8px)}
.cover-quote-mark{display:block;font-family:Georgia,serif;font-size:80px;line-height:.7;color:var(--cover-accent);margin-top:8px;margin-bottom:20px}.cover-quote-text{font-family:Outfit,sans-serif;font-weight:500;font-size:clamp(1.7rem,3.8vw,3.5rem);line-height:1.22;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere;text-wrap:balance}.cover-quote-author{font-size:.85rem;font-weight:600;margin:22px 0 6px;color:var(--cover-text)}.cover-quote-source,.cover-quote-source-text{font:10px/1.6 Inter,sans-serif;color:var(--cover-accent);max-width:650px;text-decoration:none}.cover-quote-source:hover{text-decoration:underline}.cover-quote-controls{display:flex;justify-content:center;gap:22px;align-items:center;margin-top:18px}.cover-quote-controls button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #bed6ff70;background:var(--cover-control);color:var(--cover-text);font-size:20px;cursor:pointer}.cover-quote-count{font:11px Inter,sans-serif;min-width:45px;letter-spacing:.15em}.cover-quote-progress{display:block;width:100px;height:2px;margin:15px auto 0;background:#bed6ff40;overflow:hidden}.cover-quote-progress i{display:block;width:100%;height:100%;background:var(--cover-accent);transform-origin:left;animation:cover-quote-time 12s linear infinite}.cover-playback-paused *{animation-play-state:paused!important}.cover-quote-controls button:focus-visible,.cover-quote-source:focus-visible{outline:3px solid var(--cover-accent);outline-offset:4px}
.maintenance-cover .cover-action{background:var(--cover-control);color:var(--cover-text);border-color:var(--cover-accent);padding:12px 24px}.maintenance-cover .cover-motion,.maintenance-cover .cover-close{background:var(--cover-control);color:var(--cover-text);border-color:#bed6ff70}.maintenance-cover .cover-motion{bottom:30px;right:28px}
.maintenance-cover[data-theme="light"]{--cover-text:#172d55;--cover-accent:#294e8b;--cover-panel:#ffffff;--cover-control:#fffffff0;background:#edf3fc}.maintenance-cover[data-theme="light"] .cover-shade{background:rgba(243,247,255,var(--cover-overlay,.55))}.maintenance-cover[data-theme="light"] .cover-atmosphere{background:radial-gradient(ellipse at 50% 48%,#fff8,transparent 65%),linear-gradient(0deg,#f5f8ffe6,transparent 45%)}.maintenance-cover[data-theme="light"]:is([data-background="gradient"],[data-background="color"]) .cover-background{opacity:.12}.maintenance-cover[data-theme="light"] .cover-quote-copy{border-color:#294e8b30;box-shadow:0 20px 80px #172d5514}.maintenance-cover[data-theme="light"] .cover-corner-identity{background:#ffffffeb;border-radius:8px;padding:8px 10px}.maintenance-cover[data-theme="light"] .cover-beam{background:linear-gradient(90deg,transparent,#fff9,transparent)}
.cover-quote-editor{border:1px solid #cbd7e7;border-radius:8px;padding:15px;margin:15px 0}.cover-quote-editor legend{font-size:.8rem;font-weight:600;padding:0 7px}.cover-quote-editor textarea{width:100%;resize:vertical;min-height:80px;font:inherit}.cover-quotes-settings>summary{cursor:pointer;padding:15px 0;font-weight:600}
@keyframes cover-quote-time{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:600px){.maintenance-cover .cover-composition{padding:95px 20px 125px;gap:15px}.cover-kicker{font-size:9px;letter-spacing:.13em}.cover-quote-copy{min-height:280px;padding:24px 20px;border-radius:18px}.cover-quote-text{font-size:clamp(1.45rem,6.8vw,2.3rem)}.cover-quote-mark{font-size:60px;margin-bottom:15px}.cover-quote-author{font-size:.75rem;margin-top:18px}.cover-quote-source,.cover-quote-source-text{font-size:9px}.cover-quote-controls{margin-top:12px;gap:16px}.cover-quote-progress{margin-top:10px}.maintenance-cover .cover-emblem{left:20px;bottom:20px;width:250px;height:60px;gap:12px}.maintenance-cover .cover-logo-surface{width:58px;height:58px;border-radius:15px}.cover-corner-identity strong{font-size:11px;max-width:170px}.cover-corner-identity>span{font-size:9px}.maintenance-cover .cover-emblem>.cover-orbit{width:70px;height:70px;inset:-6px auto auto -6px}.maintenance-cover .cover-emblem>.cover-orbit-two{width:84px;height:84px;inset:-13px auto auto -13px}.maintenance-cover .cover-motion{top:18px;right:16px;bottom:auto;font-size:10px;max-width:135px}.maintenance-cover .cover-close{top:18px;left:16px;max-width:150px;font-size:10px;text-align:left}}
@media(max-height:650px){.maintenance-cover .cover-composition{padding-top:65px;padding-bottom:100px;gap:10px;overflow-y:auto}.cover-quote-copy{min-height:170px;padding:16px 24px}.cover-quote-text{font-size:clamp(1.25rem,3.6vw,2rem)}.cover-quote-mark{font-size:40px;margin:0 0 8px}.cover-quote-author{margin-top:12px}.cover-kicker{margin-bottom:10px}.cover-quote-controls{margin-top:8px}.cover-quote-progress{margin-top:6px}.maintenance-cover .cover-emblem{height:55px;bottom:15px}.maintenance-cover .cover-logo-surface{width:55px;height:55px}.maintenance-cover .cover-emblem>.cover-orbit{display:none}.cover-corner-identity strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.cover-quote-progress{display:none}.maintenance-cover .cover-emblem,.cover-quote-stage,.cover-quote-copy{transform:none!important;opacity:1!important}}
.maintenance-cover[data-theme="light"] :is(.cover-background,.cover-campus-tour,.cover-shot-name){background-color:#edf3fc}.maintenance-cover[data-theme="light"] .cover-shot-name:after{background:linear-gradient(0deg,#edf3fc 5%,transparent 60%)}
.cover-quote-copy{min-height:min(270px,40svh);max-height:min(52svh,560px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--cover-accent) transparent}

/* Composición móvil integrada: fotografía continua, cita editorial y marca anclada. */
@media (max-width: 768px) {
  #maintenanceCover {height:100dvh;min-height:0;--cover-top-alpha:calc(var(--cover-overlay,.55) * .6);--cover-mid-alpha:clamp(.4,calc(var(--cover-overlay,.55) + .2),.95);--cover-bottom-alpha:clamp(.65,calc(var(--cover-overlay,.55) + .35),1);}
  #maintenanceCover[data-theme="light"] {--cover-top-alpha:calc(var(--cover-overlay,.55) * .8);--cover-mid-alpha:clamp(.65,calc(var(--cover-overlay,.55) + .35),.97);--cover-bottom-alpha:.96;}
  #maintenanceCover .cover-background,
  #maintenanceCover .cover-shot-name {
    background-size:cover;
    background-position:60% center;
    background-repeat:no-repeat;
  }
  #maintenanceCover .cover-shot-name::after {background:none;}
  #maintenanceCover .cover-shade {
    background:linear-gradient(180deg,rgba(3,15,34,var(--cover-top-alpha)),rgba(3,15,34,var(--cover-mid-alpha)) 35%,rgba(3,15,34,var(--cover-mid-alpha)) 70%,rgba(3,15,34,var(--cover-bottom-alpha)));
  }
  #maintenanceCover[data-theme="light"] .cover-shade {
    background:linear-gradient(180deg,rgba(242,246,255,var(--cover-top-alpha)),rgba(242,246,255,var(--cover-mid-alpha)) 35%,rgba(242,246,255,var(--cover-mid-alpha)) 70%,rgba(242,246,255,var(--cover-bottom-alpha)));
  }
  #maintenanceCover .cover-composition {
    padding:calc(72px + env(safe-area-inset-top,0px)) 28px calc(112px + env(safe-area-inset-bottom,0px));
    gap:18px;
    overflow:visible;
    justify-content:center;
  }
  #maintenanceCover .cover-quote-stage {width:min(100%,480px);max-height:100%;overflow-y:auto;scrollbar-width:thin;}
  #maintenanceCover .cover-kicker {font-size:9px;letter-spacing:.16em;margin-bottom:22px;line-height:1.6;}
  #maintenanceCover .cover-quote-copy {
    min-height:0;
    max-height:calc(100dvh - 310px);
    padding:0 4px;
    border:0;
    border-radius:0;
    background:transparent;
    backdrop-filter:none;
    box-shadow:none;
    justify-content:flex-start;
    overflow-y:auto;
  }
  #maintenanceCover .cover-quote-mark {font-size:44px;line-height:.8;margin:4px 0 18px;flex-shrink:0;}
  #maintenanceCover .cover-quote-text {font-size:clamp(21px,6vw,29px);line-height:1.32;font-weight:500;letter-spacing:-.015em;flex-shrink:0;}
  #maintenanceCover .cover-quote-author {font-size:12px;margin:22px 0 6px;flex-shrink:0;}
  #maintenanceCover :is(.cover-quote-source,.cover-quote-source-text) {font-size:10px;line-height:1.6;max-width:290px;flex-shrink:0;}
  #maintenanceCover .cover-quote-controls {margin-top:24px;gap:18px;}
  #maintenanceCover .cover-quote-controls button {width:44px;height:44px;font-size:18px;background:transparent;border-color:#bed6ff65;}
  #maintenanceCover .cover-quote-count {font-size:10px;}
  #maintenanceCover .cover-quote-progress {margin-top:14px;width:72px;}
  #maintenanceCover .cover-emblem {left:max(20px,env(safe-area-inset-left));bottom:calc(22px + env(safe-area-inset-bottom,0px));width:calc(100% - 40px);height:56px;gap:12px;}
  #maintenanceCover .cover-logo-surface {width:54px;height:54px;border-radius:14px;}
  #maintenanceCover .cover-corner-identity {max-width:calc(100% - 78px);}
  #maintenanceCover .cover-corner-identity strong {font-size:11px;max-width:230px;line-height:1.4;}
  #maintenanceCover .cover-corner-identity>span {font-size:9px;letter-spacing:.08em;}
  #maintenanceCover .cover-emblem>.cover-orbit {width:66px;height:66px;inset:-6px auto auto -6px;}
  #maintenanceCover .cover-emblem>.cover-orbit-two {width:80px;height:80px;inset:-13px auto auto -13px;}
  #maintenanceCover .cover-motion {top:calc(14px + env(safe-area-inset-top,0px));right:16px;bottom:auto;min-height:40px;font-size:10px;padding:8px 12px;}
  #maintenanceCover .cover-close {top:calc(14px + env(safe-area-inset-top,0px));left:16px;max-width:145px;min-height:40px;}
  #maintenanceCover .cover-action {padding:8px 18px;font-size:12px;min-height:44px;}
  #maintenanceCover[data-theme="light"] .cover-quote-copy {box-shadow:none;}
  #maintenanceCover[data-theme="light"] .cover-quote-controls button {border-color:#294e8b55;}
}
@media (max-width:768px) and (max-height:650px) {
  #maintenanceCover .cover-composition {padding-top:64px;padding-bottom:100px;gap:10px;}
  #maintenanceCover .cover-kicker {margin-bottom:12px;}
  #maintenanceCover .cover-quote-mark {font-size:30px;margin-bottom:10px;}
  #maintenanceCover .cover-quote-text {font-size:21px;}
  #maintenanceCover .cover-quote-author {margin-top:14px;}
  #maintenanceCover .cover-quote-controls {margin-top:14px;}
  #maintenanceCover .cover-quote-copy {max-height:calc(100dvh - 285px);}
}
@media (max-width:900px) and (max-height:500px) {
  #maintenanceCover .cover-composition {padding:58px 100px 78px;gap:8px;overflow:visible;}
  #maintenanceCover .cover-quote-stage {max-height:100%;overflow-y:auto;}
  #maintenanceCover .cover-kicker,#maintenanceCover .cover-quote-mark {display:none;}
  #maintenanceCover .cover-quote-copy {min-height:0;max-height:calc(100dvh - 210px);padding:0;border:0;background:transparent;backdrop-filter:none;box-shadow:none;justify-content:flex-start;}
  #maintenanceCover .cover-quote-text {font-size:19px;line-height:1.25;}
  #maintenanceCover .cover-quote-author {font-size:11px;margin:12px 0 3px;}
  #maintenanceCover .cover-quote-controls {margin-top:8px;}
  #maintenanceCover .cover-quote-progress {display:none;}
  #maintenanceCover .cover-emblem {bottom:12px;height:46px;}
  #maintenanceCover .cover-logo-surface {width:44px;height:44px;}
  #maintenanceCover .cover-emblem>.cover-orbit {display:none;}
  #maintenanceCover .cover-motion {top:12px;right:16px;bottom:auto;}
}
