*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8fcff;color:#23425a;font-family:Montserrat,Arial,sans-serif;overflow-x:hidden}
:root{--blue:#9fd8ff;--blue2:#cfeeff;--blue3:#eaf7ff;--deep:#4b86b4;--ink:#23425a;--gold:#d8b675;--white:#fff;--shadow:0 18px 55px rgba(77,139,182,.18)}
.hidden{display:none!important}.eyebrow{font-size:13px;letter-spacing:.24em;font-weight:700;color:#5f91b2}.compact{padding:54px 20px}.sound-btn,.start-fallback{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:5;border:0;border-radius:999px;padding:13px 22px;background:rgba(255,255,255,.92);color:#376b8d;font-weight:700;box-shadow:var(--shadow)}
.video-intro{
  position:fixed;inset:0;z-index:100;
  min-height:100svh;
  display:grid;grid-template-columns:minmax(150px,1fr) minmax(320px,760px) minmax(150px,1fr);
  align-items:center;gap:24px;padding:26px 4vw;
  background:
    radial-gradient(circle at 50% 44%,rgba(255,255,255,.98) 0 11%,rgba(226,244,255,.86) 34%,transparent 58%),
    linear-gradient(135deg,#8ec8ee 0%,#dff4ff 32%,#f9fdff 50%,#d9f0ff 68%,#83bce4 100%);
  overflow:hidden;
}
.cinema-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.cinema-bg:before,.cinema-bg:after{
  content:"";position:absolute;width:48vw;height:48vw;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);filter:blur(.2px)
}
.cinema-bg:before{left:-26vw;top:-18vw;box-shadow:0 0 0 35px rgba(255,255,255,.06),0 0 0 72px rgba(255,255,255,.035)}
.cinema-bg:after{right:-26vw;bottom:-20vw;box-shadow:0 0 0 35px rgba(255,255,255,.06),0 0 0 72px rgba(255,255,255,.035)}
.star{position:absolute;color:#fff6d4;text-shadow:0 0 18px rgba(255,250,214,.95);animation:glimmer 2.5s ease-in-out infinite}
.s1{left:7%;top:13%;font-size:25px}.s2{left:18%;bottom:19%;font-size:18px;animation-delay:.5s}.s3{right:8%;top:18%;font-size:28px;animation-delay:1s}.s4{right:19%;bottom:15%;font-size:20px;animation-delay:1.4s}.s5{left:30%;top:8%;font-size:14px;animation-delay:.8s}.s6{right:31%;bottom:8%;font-size:15px;animation-delay:1.8s}
@keyframes glimmer{0%,100%{opacity:.25;transform:scale(.75) rotate(0)}50%{opacity:1;transform:scale(1.35) rotate(12deg)}}

.video-center{position:relative;z-index:3;text-align:center;display:flex;flex-direction:column;align-items:center;min-width:0}
.video-kicker{margin:0 0 3px;font-size:14px;font-weight:800;letter-spacing:.26em;color:#4d83a6}
.video-title{margin:0 0 10px;font:400 clamp(48px,6vw,78px)/.9 "Great Vibes",cursive;color:#5b99c2;text-shadow:0 5px 22px rgba(86,154,197,.15)}
.video-frame{
  position:relative;width:min(100%,720px);height:min(68vh,610px);
  display:grid;place-items:center;padding:10px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:30px;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(218,241,255,.84));
  box-shadow:0 30px 80px rgba(41,102,145,.22),inset 0 0 0 1px rgba(121,178,215,.18);
}
.video-frame:before,.video-frame:after{
  content:"✦";position:absolute;z-index:4;color:#d8b675;font-size:22px;
  width:46px;height:46px;display:grid;place-items:center;border-radius:50%;
  background:rgba(255,255,255,.92);box-shadow:0 10px 24px rgba(70,120,150,.14)
}
.video-frame:before{left:-16px;top:-16px}.video-frame:after{right:-16px;bottom:-16px}
.frame-glow{position:absolute;inset:12%;background:#92d4ff;filter:blur(55px);opacity:.32;border-radius:45%;pointer-events:none}
.video-frame video{
  position:relative;z-index:2;
  width:100%;height:100%;object-fit:contain;
  background:#eaf7ff;
  border-radius:22px;
  box-shadow:0 12px 32px rgba(45,95,128,.16)
}
.video-missing{
  position:absolute;inset:10px;z-index:6;border-radius:22px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:28px;text-align:center;
  background:linear-gradient(145deg,#fafdff,#dff3ff);
  color:#447896
}
.video-missing span{font-size:30px;color:#d7b36e}.video-missing b{font:700 27px "Cormorant Garamond",serif;margin:10px 0}.video-missing p{font-size:15px;line-height:1.55}
.sound-btn,.start-fallback{
  position:static;transform:none;margin-top:12px;z-index:5;
  border:1px solid rgba(78,137,174,.2);border-radius:999px;
  padding:13px 22px;background:rgba(255,255,255,.94);
  color:#376b8d;font-weight:800;font-size:14px;
  box-shadow:0 10px 30px rgba(62,121,159,.14);cursor:pointer
}
.video-note{margin:9px 0 0;font-size:13px;font-weight:600;color:#557e98}

.video-side{
  position:relative;z-index:2;min-height:360px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#487d9f
}
.video-side p{font:600 clamp(20px,2.2vw,32px)/1.15 "Cormorant Garamond",serif;margin:16px 0}
.side-xv{font:600 clamp(56px,7vw,100px)/1 "Cormorant Garamond",serif;color:rgba(255,255,255,.96);text-shadow:0 8px 25px rgba(79,137,176,.22)}
.tiny-crown{font-size:30px;color:#d8b675}.magic-clock{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.86);box-shadow:inset 0 0 0 6px rgba(255,255,255,.16);font:700 30px "Cormorant Garamond",serif;color:#fff}.crystal{font-size:48px;color:rgba(255,255,255,.95);transform:rotate(45deg);text-shadow:0 0 24px rgba(255,255,255,.8)}
.ornament-line{width:1px;height:74px;background:linear-gradient(transparent,rgba(255,255,255,.9),transparent)}.ornament-line.short{height:42px}

.letter-scene{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:radial-gradient(circle at 50% 15%,#fff 0,#dff3ff 35%,#b7dfff 70%,#89bfe6 100%);overflow:hidden}.sky-glow{position:absolute;width:70vw;height:70vw;background:rgba(255,255,255,.5);filter:blur(80px);border-radius:50%}
.envelope-rain{position:absolute;inset:0;pointer-events:none}.rain-envelope{position:absolute;top:-50px;font-size:24px;opacity:.65;animation:fall linear forwards;filter:drop-shadow(0 5px 5px rgba(80,130,170,.12))}@keyframes fall{to{transform:translateY(115vh) rotate(260deg);opacity:.1}}
.envelope-wrap{position:relative;z-index:3}.envelope{position:relative;width:min(420px,86vw);height:270px;perspective:1000px;filter:drop-shadow(0 25px 30px rgba(66,121,160,.22))}.back{position:absolute;inset:0;background:linear-gradient(145deg,#d5efff,#a8d6f4);border-radius:12px}.front{position:absolute;inset:0;z-index:4;background:linear-gradient(145deg,#b8e0f8,#8fc6ea);clip-path:polygon(0 38%,50% 76%,100% 38%,100% 100%,0 100%);border-radius:12px}.flap{position:absolute;left:0;right:0;top:0;height:190px;z-index:5;background:linear-gradient(145deg,#d8f1ff,#9fcef0);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;animation:openFlap 1s 1.1s forwards}.letter{position:absolute;left:26px;right:26px;top:20px;height:230px;z-index:3;background:#fffdf9;border-radius:8px;box-shadow:0 10px 25px rgba(53,100,130,.13);animation:riseLetter 1.35s 1.6s forwards}.seal{position:absolute;z-index:7;left:50%;top:115px;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#9bcff0,#6faed8);color:white;font:700 26px "Cormorant Garamond",serif;animation:sealFade .45s 1s forwards}.letter-content{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;color:#3f708f;text-align:center}.letter-content p{font-size:15px;letter-spacing:.18em;margin:5px}.letter-content h1{font:400 66px/1 "Great Vibes",cursive;margin:10px 0;color:#5e9bc1}.letter-content strong{font:600 20px "Cormorant Garamond",serif;letter-spacing:.08em}.letter-content small{font:600 17px "Cormorant Garamond",serif;margin-top:10px}.spark{color:var(--gold);font-size:25px}
@keyframes openFlap{to{transform:rotateX(180deg);z-index:2}}@keyframes riseLetter{to{transform:translateY(-175px) scale(1.06);height:320px}}@keyframes sealFade{to{opacity:0;transform:translate(-50%,-50%) scale(.5)}}
.music-btn{position:fixed;right:15px;bottom:15px;z-index:50;width:48px;height:48px;border:0;border-radius:50%;background:#79b9e4;color:#fff;font-size:19px;box-shadow:var(--shadow)}
.hero{min-height:72vh;display:grid;place-items:center;text-align:center;position:relative;background:radial-gradient(circle at top,#fff 0,#edf9ff 45%,#d6efff 100%);overflow:hidden}.hero-inner{position:relative;z-index:2;max-width:820px}.name{font:400 clamp(92px,17vw,170px)/.8 "Great Vibes",cursive;color:#6faed8;margin:20px 0}.phrase{font:600 24px/1.35 "Cormorant Garamond",serif;color:#426f8d;margin:20px auto;max-width:650px}.date-box{display:flex;justify-content:center;gap:15px;align-items:center;margin:24px 0}.date-box>span{font:600 68px/1 "Cormorant Garamond",serif;color:#5c9bc4}.date-box div{text-align:left;border-left:1px solid #9fc6dd;padding-left:15px}.date-box b,.date-box small{display:block;font-size:15px;letter-spacing:.22em}.quick-info{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.quick-info span{background:rgba(255,255,255,.72);border:1px solid rgba(119,174,210,.22);padding:11px 16px;border-radius:999px;font-size:14px}
.magic-particles{position:absolute;inset:0;background-image:radial-gradient(circle,#cdb47e 1px,transparent 1.5px);background-size:44px 44px;opacity:.12}
.story-card{background:#f6fbff}.paper-card{max-width:760px;margin:auto;text-align:center;background:white;padding:42px 36px;border-radius:30px;box-shadow:var(--shadow);border:1px solid #dceef9}.paper-card h3,.section-title h3,.dress-note h3,.rsvp-card h3{font:600 clamp(36px,6vw,58px)/1 "Cormorant Garamond",serif;margin:10px 0 15px;color:#4d88af}.paper-card>p:not(.eyebrow){font:600 19px/1.6 "Cormorant Garamond",serif}.signature{font:400 52px "Great Vibes",cursive;color:#67a6ce;margin-top:15px}
.memories{background:linear-gradient(180deg,#eef9ff,#fff)}.section-title{text-align:center;max-width:780px;margin:0 auto 26px}.section-title>p:last-child{font-size:16px}.carousel-wrap{position:relative;max-width:1100px;margin:auto}.carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:10px 4px 18px;scrollbar-width:none}.carousel::-webkit-scrollbar{display:none}.photo-card{flex:0 0 min(72vw,330px);height:430px;border-radius:24px;overflow:hidden;position:relative;scroll-snap-align:center;background:#dceffc;box-shadow:var(--shadow)}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-caption{position:absolute;left:0;right:0;bottom:0;padding:55px 20px 18px;background:linear-gradient(transparent,rgba(34,75,104,.82));color:white}.photo-caption b,.photo-caption span{display:block}.photo-caption span{font:600 18px "Cormorant Garamond",serif;margin-top:5px}.placeholder{display:grid;place-items:center;text-align:center;padding:30px;color:#5b8fb0}.placeholder div{font-size:50px}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:42px;height:42px;border-radius:50%;border:0;background:white;color:#6198ba;font-size:30px;box-shadow:var(--shadow)}.carousel-btn.left{left:-12px}.carousel-btn.right{right:-12px}
.details{background:#dff3ff}.mini-grid{max-width:980px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mini-grid article{background:white;border-radius:24px;padding:24px;text-align:center;box-shadow:0 10px 30px rgba(78,136,176,.1)}.mini-grid span{color:var(--gold)}.mini-grid b{display:block;margin:7px}.mini-grid p{margin:5px;font-size:14px}.dress-note{max-width:760px;margin:28px auto 0;text-align:center;background:#f9fdff;padding:30px;border-radius:26px}.dress-note h3{font-size:39px}.dress-note p{font-size:16px;line-height:1.6}
.rsvp{background:#f8fcff;padding-bottom:70px}.rsvp-card{max-width:820px;margin:auto;background:white;padding:38px;border-radius:30px;box-shadow:var(--shadow)}.rsvp-card{text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.rsvp form{display:grid;gap:14px;margin-top:24px;text-align:left}.rsvp label{display:grid;gap:7px;font-size:14px;font-weight:700;color:#4d7894}.rsvp input,.rsvp select,.rsvp textarea{width:100%;padding:14px;border-radius:14px;border:1px solid #cfe5f3;background:#fbfeff;font:inherit;outline:none}.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{border-color:#79b9e4;box-shadow:0 0 0 4px rgba(121,185,228,.12)}.submit-btn{width:100%;border:0;border-radius:999px;padding:16px 22px;background:linear-gradient(135deg,#8bcaef,#5aa4d5);color:white;font-size:16px;font-weight:800;cursor:pointer;box-shadow:var(--shadow)}.form-message{margin-top:16px;background:#e9f7ff;color:#3f7191;padding:16px;border-radius:16px}
footer{text-align:center;padding:34px;background:#cfeeff;color:#477d9f}.footer-name{font:400 60px "Great Vibes",cursive}.admin-body,.admin-page{min-height:100vh;background:#edf8ff}.admin-login{width:min(420px,90vw);margin:10vh auto;background:white;padding:35px;border-radius:24px;box-shadow:var(--shadow);display:grid;gap:12px;text-align:center}.admin-login input{padding:14px;border:1px solid #d3e7f3;border-radius:12px}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 4vw}.admin-header h3{font:600 42px "Cormorant Garamond",serif;color:#4d88af;margin:5px}.admin-link{display:inline-block;padding:10px 14px;background:white;border-radius:999px;text-decoration:none;color:#4f86a7;margin-left:8px}.admin-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;padding:0 4vw 40px}.admin-box{background:white;border-radius:24px;padding:22px;box-shadow:var(--shadow)}.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}.thumbs b,.thumbs small,.thumbs a{display:block;font-size:11px;margin-top:4px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:9px;border-bottom:1px solid #e8f1f6;white-space:nowrap;text-align:left}.error{color:#b33}
@media(max-width:760px){.compact{padding:42px 16px}.hero{min-height:68vh}.phrase{font-size:21px}.mini-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.photo-card{height:390px}.carousel-btn{display:none}.admin-grid{grid-template-columns:1fr}.admin-header{align-items:flex-start;flex-direction:column}.thumbs{grid-template-columns:repeat(2,1fr)}.letter-content h1{font-size:58px}.letter-content p{font-size:13px}.letter-content strong{font-size:18px}.letter-content small{font-size:16px}}

@media(max-width:900px){
  .video-intro{grid-template-columns:95px minmax(280px,1fr) 95px;gap:12px;padding:18px}
  .video-frame{height:min(67vh,580px)}
  .video-side p{font-size:20px}.ornament-line{height:45px}.side-xv{font-size:58px}
}
@media(max-width:650px){
  .video-intro{grid-template-columns:1fr;padding:14px 14px 20px}
  .video-side{display:none}
  .video-kicker{font-size:11px}.video-title{font-size:56px;margin-bottom:7px}
  .video-frame{width:100%;height:min(70vh,610px);border-radius:24px;padding:8px}
  .video-frame video,.video-missing{border-radius:18px}
  .video-note{font-size:12px}
}


/* ===== V4 · VIDEO RESPONSIVE REAL ===== */
.video-intro{
  grid-template-columns:minmax(120px,.8fr) minmax(280px,1.35fr) minmax(120px,.8fr);
  gap:clamp(12px,2vw,28px);
  padding:clamp(14px,2.2vw,30px);
}

.video-center{
  width:100%;
  min-width:0;
  max-width:820px;
  margin:auto;
}

.video-title{
  font-size:clamp(44px,5.2vw,76px);
  margin:0 0 8px;
}

.video-kicker{
  font-size:clamp(10px,1vw,14px);
  letter-spacing:.24em;
}

.video-frame{
  /* JS coloca width/height exactos según la proporción real del video */
  width:560px;
  height:420px;
  max-width:100%;
  max-height:68svh;
  padding:clamp(6px,.7vw,10px);
  border-radius:clamp(20px,2vw,30px);
  transition:width .28s ease,height .28s ease;
}

.video-frame video{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:clamp(15px,1.6vw,22px);
  background:#071119;
}

.video-side{
  min-height:300px;
  align-self:center;
}

.side-xv{
  font-size:clamp(48px,6vw,92px);
}

.video-side p{
  font-size:clamp(18px,2vw,29px);
}

.magic-clock{
  width:clamp(64px,6vw,82px);
  height:clamp(64px,6vw,82px);
  font-size:clamp(24px,2.4vw,30px);
}

/* Laptop / tablet horizontal */
@media(max-width:1050px){
  .video-intro{
    grid-template-columns:110px minmax(280px,1fr) 110px;
    gap:10px;
    padding:16px;
  }
  .video-side p{font-size:19px}
  .side-xv{font-size:54px}
  .ornament-line{height:42px}
}

/* Tablet vertical y celulares grandes */
@media(max-width:780px){
  .video-intro{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:12px;
  }
  .video-side{display:none!important}
  .video-center{
    width:100%;
    max-width:none;
  }
  .video-kicker{
    font-size:10px;
    margin-bottom:2px;
  }
  .video-title{
    font-size:clamp(46px,12vw,64px);
    margin-bottom:7px;
  }
  .video-frame{
    max-width:calc(100vw - 24px);
    max-height:72svh;
    border-radius:22px;
  }
  .video-frame:before,.video-frame:after{
    width:36px;height:36px;font-size:18px;
  }
  .video-frame:before{left:-8px;top:-8px}
  .video-frame:after{right:-8px;bottom:-8px}
  .video-note{
    font-size:12px;
    margin-top:7px;
  }
  .sound-btn,.start-fallback{
    padding:11px 18px;
    font-size:13px;
    margin-top:9px;
  }
}

/* Celulares pequeños */
@media(max-width:430px){
  .video-intro{padding:9px}
  .video-title{font-size:50px}
  .video-frame{
    max-width:calc(100vw - 18px);
    max-height:70svh;
    padding:6px;
    border-radius:19px;
  }
  .video-frame video{border-radius:14px}
  .video-note{font-size:11px}
}

/* En pantallas bajitas, el video manda y reducimos textos */
@media(max-height:700px){
  .video-title{font-size:48px;margin-bottom:4px}
  .video-kicker{font-size:9px}
  .video-frame{max-height:72svh}
  .video-note{display:none}
  .video-side{min-height:220px}
}


/* ===== V5 · FOTO / MYSQL ===== */
.photo-upload-label{grid-column:auto}
.photo-preview-box{
  position:relative;
  margin-top:8px;
  padding:9px;
  border-radius:18px;
  background:linear-gradient(145deg,#f9fdff,#e5f5ff);
  border:1px solid #c9e5f5;
  text-align:center;
}
.photo-preview-box img{
  display:block;
  width:100%;
  height:220px;
  object-fit:contain;
  border-radius:13px;
  background:#eef8fe;
}
.remove-photo{
  margin-top:8px;
  border:0;
  background:#fff;
  color:#517f9d;
  border-radius:999px;
  padding:8px 14px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 5px 15px rgba(70,120,150,.1);
}
.db-warning{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-bottom:18px;
  padding:14px 16px;
  border-radius:16px;
  background:#fff3e8;
  border:1px solid #efd3b6;
  color:#835a3d;
  text-align:left;
  font-size:13px;
  line-height:1.45;
}
.db-warning strong{font-size:14px}
@media(max-width:760px){
  .photo-preview-box img{height:190px}
}


/* ===== ACCESO PEQUEÑO AL ADMINISTRADOR ===== */
.admin-access{
  position:fixed;
  top:12px;
  right:12px;
  z-index:250;
  display:flex;
  align-items:center;
  gap:5px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(91,153,194,.22);
  color:#568caf;
  text-decoration:none;
  font-family:Montserrat,Arial,sans-serif;
  box-shadow:0 6px 18px rgba(65,119,155,.10);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  opacity:.72;
  transition:.2s ease;
}
.admin-access:hover{
  opacity:1;
  transform:translateY(-1px);
  background:rgba(255,255,255,.94);
}
.admin-access span{
  font-size:14px;
  line-height:1;
}
.admin-access small{
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
}
@media(max-width:600px){
  .admin-access{
    top:8px;
    right:8px;
    padding:6px 8px;
  }
  .admin-access small{display:none}
  .admin-access span{font-size:13px}
}


/* ===== V7 · CORRECCIÓN CELULAR ===== */
html,body{
  width:100%;
  min-height:100%;
  background:#dff3ff !important;
}

.video-intro{
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.98) 0 8%, rgba(232,247,255,.96) 28%, rgba(194,227,248,.96) 58%, rgba(130,190,229,.98) 100%) !important;
}

@media(max-width:780px){
  .video-intro{
    position:fixed;
    inset:0;
    width:100vw;
    height:100svh;
    min-height:100svh;
    display:flex !important;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:10px 10px 18px;
    overflow:hidden;
    background:
      radial-gradient(circle at 50% 12%, #ffffff 0%, #eaf8ff 26%, #cdeaff 56%, #8ec6ea 100%) !important;
  }

  .cinema-bg{
    display:block !important;
    position:absolute;
    inset:0;
    z-index:0;
    opacity:1;
  }

  .cinema-bg:before{
    content:"";
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 16% 20%, rgba(255,255,255,.9) 0 2px, transparent 3px),
      radial-gradient(circle at 82% 14%, rgba(255,248,210,.95) 0 2px, transparent 3px),
      radial-gradient(circle at 70% 78%, rgba(255,255,255,.8) 0 2px, transparent 3px),
      radial-gradient(circle at 28% 72%, rgba(255,248,210,.9) 0 2px, transparent 3px);
    background-size:120px 120px,145px 145px,160px 160px,135px 135px;
    animation:mobileSparkles 8s linear infinite;
  }

  @keyframes mobileSparkles{
    from{transform:translateY(0)}
    to{transform:translateY(-24px)}
  }

  .video-center{
    position:relative;
    z-index:3;
    width:100%;
    height:100%;
    max-width:none;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
  }

  .video-kicker{
    display:block !important;
    margin:0 0 3px;
    font-size:10px;
    letter-spacing:.2em;
    color:#4a86ac;
  }

  .video-title{
    display:block !important;
    font-size:50px;
    line-height:.82;
    color:#5e9fc9;
    margin:0 0 8px;
    text-shadow:0 4px 16px rgba(78,145,190,.16);
  }

  .video-frame{
    width:calc(100vw - 20px) !important;
    height:auto !important;
    max-width:560px !important;
    max-height:72svh !important;
    aspect-ratio:auto;
    padding:6px;
    border-radius:20px;
    background:rgba(255,255,255,.92);
    box-shadow:0 20px 55px rgba(46,105,145,.22);
  }

  .video-frame video{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:68svh !important;
    object-fit:contain !important;
    background:#071119;
    border-radius:15px;
  }

  .video-frame:before,
  .video-frame:after{
    display:none;
  }

  .sound-btn,
  .start-fallback{
    position:relative;
    z-index:7;
    margin-top:9px;
    background:#ffffff;
    color:#4f86a8;
    border:1px solid #b9ddf3;
    box-shadow:0 8px 22px rgba(67,127,168,.15);
  }

  .video-note{
    margin-top:6px;
    color:#4d7793;
    font-size:11px;
  }

  .admin-access{
    z-index:300;
    background:rgba(255,255,255,.88);
  }
}

@media(max-width:430px){
  .video-title{font-size:46px}
  .video-frame{
    width:calc(100vw - 14px) !important;
    max-height:70svh !important;
  }
  .video-frame video{
    max-height:66svh !important;
  }
}

/* V8 · AR CTA */
.ar-cta{background:linear-gradient(180deg,#f8fcff,#dff3ff)}
.ar-cta-card{max-width:900px;margin:auto;background:white;border:1px solid #d3eaf7;border-radius:30px;padding:30px;display:grid;grid-template-columns:1fr auto;gap:25px;align-items:center;box-shadow:var(--shadow)}
.ar-cta-card h3{font-size:38px;margin:7px 0 10px}.ar-cta-card p:not(.eyebrow){line-height:1.55}
.ar-actions{display:grid;gap:10px;min-width:220px}.ar-link{display:flex;text-decoration:none;justify-content:center}.ar-link-secondary{display:flex;justify-content:center;text-align:center}
@media(max-width:760px){.ar-cta-card{grid-template-columns:1fr;text-align:center;padding:24px}.ar-actions{min-width:0}.ar-cta-card h3{font-size:32px}}

/* V9 · QR visible en administración */
.ar-admin-card{max-width:900px}
.admin-qr-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.admin-qr-row img{width:190px;height:190px;object-fit:contain;background:white;padding:8px;border:1px solid #d4e8f4;border-radius:16px}
.admin-qr-row>div{flex:1;min-width:240px}
.admin-qr-row p{line-height:1.55;word-break:break-word}
@media(max-width:600px){.admin-qr-row{justify-content:center;text-align:center}.admin-qr-row img{width:170px;height:170px}}


/* V10 · Ocultar completamente controles nativos del video introductorio */
#introVideo::-webkit-media-controls,
#introVideo::-webkit-media-controls-enclosure,
#introVideo::-webkit-media-controls-panel,
#introVideo::-webkit-media-controls-play-button,
#introVideo::-webkit-media-controls-timeline,
#introVideo::-webkit-media-controls-current-time-display,
#introVideo::-webkit-media-controls-time-remaining-display,
#introVideo::-webkit-media-controls-fullscreen-button,
#introVideo::-webkit-media-controls-mute-button {
  display:none !important;
  -webkit-appearance:none !important;
}
#introVideo{
  pointer-events:none;
  user-select:none;
  -webkit-user-select:none;
}

/* V17 · No mostrar botón de activar sonido */
#soundBtn,#enableSound,#soundToggle,.sound-btn,.enable-sound{
  display:none !important;
}


/* =========================================================
   V18 · INTRO AJUSTADO AL ALTO REAL DE CUALQUIER PANTALLA
   ========================================================= */
.video-intro{
  height:100vh !important;
  height:100dvh !important;
  min-height:0 !important;
  padding:
    max(10px, env(safe-area-inset-top))
    clamp(12px,2.2vw,30px)
    max(10px, env(safe-area-inset-bottom)) !important;
  align-items:center !important;
  overflow:hidden !important;
}

.video-center{
  height:100% !important;
  max-height:100% !important;
  min-height:0 !important;
  justify-content:center !important;
  overflow:visible !important;
}

.video-kicker{
  flex:0 0 auto;
  margin:0 0 2px !important;
}

.video-title{
  flex:0 0 auto;
  margin:0 0 clamp(5px,1vh,10px) !important;
  line-height:.82 !important;
}

.video-frame{
  flex:0 1 auto;
  min-height:0 !important;
  max-width:100% !important;
  max-height:none !important;
  margin:0 auto !important;
  box-sizing:border-box !important;
}

.video-frame video{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
}

.video-note{
  flex:0 0 auto;
  margin:clamp(4px,.8vh,8px) 0 0 !important;
}

.start-fallback{
  flex:0 0 auto;
  margin-top:6px !important;
}

/* Portátiles de poco alto: compactar título y adornos */
@media (max-height:760px){
  .video-kicker{font-size:11px !important;letter-spacing:.20em !important}
  .video-title{font-size:clamp(42px,7vh,62px) !important}
  .video-note{font-size:11px !important}
  .video-side{transform:scale(.90)}
}

@media (max-height:620px){
  .video-intro{padding-top:7px !important;padding-bottom:7px !important}
  .video-kicker{font-size:9px !important}
  .video-title{font-size:40px !important;margin-bottom:4px !important}
  .video-note{font-size:10px !important;margin-top:3px !important}
  .video-side{transform:scale(.78)}
}

/* Celular: reservar casi toda la altura útil al video */
@media (max-width:650px){
  .video-intro{
    display:block !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
  .video-center{
    width:100% !important;
    height:100% !important;
    display:flex !important;
  }
  .video-frame{
    max-width:calc(100vw - 20px) !important;
  }
}


/* =============================================================
   V19 · OVERRIDE FINAL DEL INTRO
   Esta sección gana sobre todas las versiones antiguas.
   ============================================================= */
html,body{margin:0!important;padding:0!important}

#videoIntro.video-intro{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  min-height:0!important;
  max-height:none!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(120px,1fr) minmax(280px,760px) minmax(120px,1fr)!important;
  grid-template-rows:1fr!important;
  align-items:center!important;
  justify-items:center!important;
  gap:clamp(10px,2vw,26px)!important;
  padding:10px clamp(12px,3vw,38px)!important;
}

#videoIntro .video-center{
  position:relative!important;
  z-index:5!important;
  width:100%!important;
  height:auto!important;
  max-height:calc(100dvh - 20px)!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  margin:0!important;
  padding:0!important;
}

#videoIntro .video-kicker{
  flex:0 0 auto!important;
  margin:0 0 2px!important;
  font-size:clamp(9px,1.2vh,13px)!important;
  line-height:1.15!important;
}

#videoIntro .video-title{
  flex:0 0 auto!important;
  margin:0 0 6px!important;
  font-size:clamp(42px,7.2vh,68px)!important;
  line-height:.82!important;
}

#videoIntro .video-frame{
  position:relative!important;
  flex:0 0 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:min(58vw,700px)!important;
  max-height:calc(100dvh - 145px)!important;
  aspect-ratio:var(--intro-ratio,16/9)!important;
  margin:0 auto!important;
  padding:7px!important;
  box-sizing:border-box!important;
}

#videoIntro #introVideo{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  background:#05090d!important;
}

#videoIntro .video-note{
  flex:0 0 auto!important;
  margin:5px 0 0!important;
  line-height:1.1!important;
  font-size:clamp(9px,1.2vh,12px)!important;
}

#videoIntro .video-side{
  align-self:center!important;
  max-height:76dvh!important;
  overflow:hidden!important;
}

/* Laptop y pantallas de poco alto */
@media(max-height:760px){
  #videoIntro.video-intro{padding-top:6px!important;padding-bottom:6px!important}
  #videoIntro .video-title{font-size:clamp(38px,6.4vh,54px)!important;margin-bottom:4px!important}
  #videoIntro .video-kicker{font-size:9px!important}
  #videoIntro .video-frame{max-height:calc(100dvh - 118px)!important}
  #videoIntro .video-note{font-size:9px!important;margin-top:3px!important}
  #videoIntro .video-side{transform:scale(.82)!important}
}

/* Pantallas muy bajitas */
@media(max-height:620px){
  #videoIntro .video-frame{max-height:calc(100dvh - 96px)!important}
  #videoIntro .video-title{font-size:36px!important}
  #videoIntro .video-note{display:none!important}
  #videoIntro .video-side{transform:scale(.70)!important}
}

/* Tablet / móvil */
@media(max-width:780px){
  #videoIntro.video-intro{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:center!important;
    padding:
      max(7px,env(safe-area-inset-top))
      8px
      max(7px,env(safe-area-inset-bottom))!important;
  }
  #videoIntro .video-side{display:none!important}
  #videoIntro .video-center{
    width:100%!important;
    max-height:100%!important;
  }
  #videoIntro .video-title{
    font-size:clamp(38px,11vw,54px)!important;
  }
  #videoIntro .video-frame{
    max-width:calc(100vw - 16px)!important;
    max-height:calc(100dvh - 120px)!important;
  }
}

@media(max-width:430px){
  #videoIntro .video-kicker{font-size:8px!important}
  #videoIntro .video-title{font-size:42px!important;margin-bottom:4px!important}
  #videoIntro .video-frame{
    max-width:calc(100vw - 12px)!important;
    max-height:calc(100dvh - 105px)!important;
    padding:5px!important;
  }
  #videoIntro .video-note{font-size:9px!important}
}


/* =========================================================
   V23 · AJUSTE FINAL DE PANTALLA
   ========================================================= */
#videoIntro.video-intro{
  overflow:hidden!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  height:100vh!important;
  height:100dvh!important;
}
#videoIntro .video-center{
  height:100%!important;
  max-height:100dvh!important;
  justify-content:center!important;
  overflow:hidden!important;
  padding:8px 0!important;
}
#videoIntro .video-frame{
  flex:0 0 auto!important;
  margin:4px auto!important;
  overflow:hidden!important;
}
#videoIntro #introVideo{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
}
@media(min-width:781px){
  #videoIntro .video-kicker{margin-top:0!important}
  #videoIntro .video-title{
    font-size:clamp(42px,6vh,58px)!important;
    margin-bottom:4px!important;
  }
  #videoIntro .video-frame{
    max-height:52dvh!important;
    max-width:47vw!important;
  }
  #videoIntro .video-note{
    margin-top:4px!important;
  }
}
@media(max-width:780px){
  #videoIntro .video-frame{
    max-width:calc(100vw - 20px)!important;
    max-height:68dvh!important;
  }
}


/* V24 · Visualización más grande en PC, sin salir de pantalla */
@media(min-width:781px){
  #videoIntro .video-frame{
    max-width:56vw!important;
    max-height:62dvh!important;
  }
  #videoIntro .video-title{
    font-size:clamp(42px,6.4vh,62px)!important;
    margin-bottom:3px!important;
  }
  #videoIntro .video-kicker{
    margin-bottom:1px!important;
  }
}
@media(max-width:780px){
  #videoIntro .video-frame{
    max-width:calc(100vw - 16px)!important;
    max-height:72dvh!important;
  }
}
