﻿@import "tailwindcss";
:root{--paper:#f5efe7;--ink:#544841;--rose:#9c6670;--rose-dark:#75464f;--gold:#b69a6b}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}body{font-family:Georgia,"Times New Roman",serif}button{font:inherit}.app-shell{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(circle at 8% 20%,rgba(182,154,107,.13),transparent 25%),radial-gradient(circle at 95% 75%,rgba(156,102,112,.12),transparent 27%),linear-gradient(135deg,#f8f3ed,#efe5da)}.app-shell:before,.app-shell:after{content:"";position:fixed;width:260px;height:260px;border:1px solid rgba(182,154,107,.25);border-radius:50%;pointer-events:none}.app-shell:before{left:-180px;top:18%;box-shadow:30px 30px 0 rgba(182,154,107,.045),60px 60px 0 rgba(182,154,107,.035)}.app-shell:after{right:-185px;bottom:10%;box-shadow:-30px -30px 0 rgba(156,102,112,.04),-60px -60px 0 rgba(156,102,112,.03)}
.masthead{height:96px;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(22px,4vw,64px);border-bottom:1px solid rgba(84,72,65,.12);background:rgba(248,243,237,.75);backdrop-filter:blur(18px);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:14px;background:none;border:0;color:inherit;cursor:pointer;text-align:left}.monogram{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gold);border-radius:50%;color:var(--rose-dark);position:relative;letter-spacing:-3px;font-size:24px}.monogram:before,.monogram:after{content:"✦";position:absolute;font-size:8px;color:var(--gold);background:var(--paper);padding:2px;top:25px}.monogram:before{left:-6px}.monogram:after{right:-6px}.monogram i{font-size:13px;color:var(--gold);padding:0 3px;letter-spacing:0}.brand-copy{display:grid}.brand-copy strong{font-weight:400;font-size:21px}.brand-copy small{font-family:Arial,sans-serif;font-size:9px;text-transform:uppercase;letter-spacing:.18em;margin-top:5px;color:#8b7a71}nav{display:flex;gap:8px}nav button{border:0;background:transparent;color:#75665d;padding:12px 18px;border-radius:99px;cursor:pointer;font-family:Arial,sans-serif;font-size:13px;letter-spacing:.04em}nav button.active{background:#fffaf4;color:var(--rose-dark);box-shadow:0 4px 18px rgba(84,72,65,.08)}nav span{font-size:10px;display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:3px;background:var(--rose);color:white;border-radius:50%}
.booth{width:min(1180px,92vw);margin:auto;padding:42px 0 30px;display:grid;grid-template-columns:.76fr 1.24fr;grid-template-areas:"intro camera" "controls camera";column-gap:clamp(36px,6vw,90px);align-items:center}.intro{grid-area:intro;align-self:end;padding-bottom:25px}.eyebrow{margin:0 0 14px;font:600 10px/1 Arial,sans-serif;letter-spacing:.25em;text-transform:uppercase;color:var(--rose)}.intro h1,.album-heading h1{font-size:clamp(42px,5vw,66px);font-weight:400;line-height:.98;margin:0;letter-spacing:-.045em}.intro h1 em,.album-heading em{color:var(--rose);font-weight:400}.intro>p:last-child{font:14px/1.65 Arial,sans-serif;max-width:330px;color:#796a62;margin:24px 0 0}
.camera-card{grid-area:camera;position:relative;width:min(100%,560px);aspect-ratio:3/4;background:#d8cdc4;border:10px solid rgba(255,253,250,.9);box-shadow:0 22px 65px rgba(72,54,47,.19);justify-self:center;overflow:hidden}.camera-card video,.camera-card .preview{width:100%;height:100%;object-fit:cover;display:block}.camera-card video{transform:scaleX(-1)}.camera-card:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(84,72,65,.14);pointer-events:none}.corner{position:absolute;z-index:3;width:34px;height:34px;border-color:rgba(255,255,255,.85);border-style:solid}.tl{top:18px;left:18px;border-width:2px 0 0 2px}.tr{top:18px;right:18px;border-width:2px 2px 0 0}.bl{bottom:18px;left:18px;border-width:0 0 2px 2px}.br{bottom:18px;right:18px;border-width:0 2px 2px 0}
.pose,.countdown,.camera-error,.thanks{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;background:rgba(55,42,39,.38);backdrop-filter:blur(2px)}.pose small{font:10px Arial,sans-serif;text-transform:uppercase;letter-spacing:.3em}.pose strong{font-size:clamp(34px,5vw,58px);font-weight:400;font-style:italic;margin-top:10px}.countdown{font-size:clamp(110px,18vw,190px);background:rgba(55,42,39,.28);animation:count .85s ease-out;text-shadow:0 5px 30px rgba(0,0,0,.22)}.camera-error{padding:20px;background:rgba(91,69,64,.88);font:15px Arial,sans-serif}.camera-error button{border:1px solid white;border-radius:99px;color:white;background:transparent;padding:12px 20px}@keyframes count{from{transform:scale(.55);opacity:.15}to{transform:scale(1);opacity:1}}.thanks{background:linear-gradient(145deg,#8b5962,#684148)}.thanks>span{font-size:38px;color:#e8c9cc;animation:pulse 1s infinite alternate}.thanks h2{font-weight:400;font-size:36px;line-height:1.15}.thanks p{font:13px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}.phase-thanks .corner{border-color:#d6bd92}@keyframes pulse{to{transform:scale(1.14)}}
.controls{grid-area:controls;align-self:start;padding-top:10px}.primary,.secondary{min-height:58px;border-radius:99px;padding:0 28px;cursor:pointer;border:0;font:600 14px Arial,sans-serif;letter-spacing:.04em;transition:.2s}.primary{color:white;background:var(--rose-dark);box-shadow:0 12px 30px rgba(117,70,79,.23)}.primary:hover,.secondary:hover{transform:translateY(-2px)}.primary:disabled{opacity:.45}.shutter{min-width:210px;display:flex;align-items:center;justify-content:center;gap:10px}.shutter>span{width:15px;height:15px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.22)}.review-title{font-size:24px;margin:0 0 14px}.review-actions{display:flex;flex-direction:column;gap:10px;max-width:290px}.secondary{color:var(--rose-dark);background:transparent;border:1px solid rgba(117,70,79,.4)}.hold{font:12px Arial,sans-serif;color:#88786f;letter-spacing:.08em}
.album-section{min-height:calc(100svh - 150px);padding:42px 4vw 20px;display:grid;grid-template-columns:.65fr 1.35fr;gap:7vw;width:min(1180px,94vw);margin:auto;align-items:center}.album-heading h1{font-size:clamp(40px,5vw,62px)}.album-stage{position:relative;perspective:1600px;display:grid;place-items:center}.album-page{width:min(520px,75vw);background:#fffaf3;padding:24px 24px 34px;box-shadow:10px 14px 45px rgba(73,56,49,.2),-2px 0 #e1d4c7;transform-origin:left center;transition:transform .68s cubic-bezier(.4,.05,.2,1),opacity .35s;position:relative}.album-page:after{content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:rgba(182,154,107,.32)}.album-page.turning{transform:rotateY(-78deg);opacity:.25}.photo-mat{aspect-ratio:4/3;overflow:hidden;background:#ddd}.photo-mat img{width:100%;height:100%;object-fit:cover}.album-page p{margin:22px 0 5px;text-align:center;font-style:italic;font-size:20px;color:var(--rose-dark)}.album-page small{display:block;text-align:center;font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:.13em;color:#96847a}.arrow{position:absolute;z-index:2;width:54px;height:54px;border-radius:50%;border:1px solid rgba(117,70,79,.3);background:rgba(255,250,244,.86);color:var(--rose-dark);font-size:35px;cursor:pointer}.arrow.left{left:0}.arrow.right{right:0}.page-no{position:absolute;bottom:-38px;font:10px Arial,sans-serif;letter-spacing:.16em}.empty{text-align:center;padding:60px 20px;border:1px solid rgba(182,154,107,.35);background:rgba(255,250,244,.45)}.empty>span{display:inline-grid;place-items:center;width:90px;height:90px;border:1px solid var(--gold);border-radius:50%;color:var(--rose-dark);font-size:28px}.empty h2{font-size:28px;font-weight:400;line-height:1.25;margin:22px 0}
footer{height:54px;padding:0 4vw;display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid rgba(84,72,65,.1);color:#8d7e75;font:10px Arial,sans-serif;letter-spacing:.08em}footer i{width:7px;height:7px;background:#82936b;border-radius:50%;margin-left:15px}footer>span{color:var(--gold);font:15px Georgia,serif}
@media(max-width:800px){.masthead{height:78px;padding:9px 16px}.brand-copy small{display:none}.brand-copy strong{font-size:16px}.monogram{width:52px;height:52px;font-size:20px}.monogram:before,.monogram:after{top:19px}nav button{padding:10px 11px;font-size:11px}.booth{padding:24px 0 18px;grid-template-columns:1fr;grid-template-areas:"intro" "camera" "controls";gap:20px}.intro{text-align:center;padding:0}.intro h1{font-size:clamp(36px,10vw,52px)}.intro>p:last-child{display:none}.camera-card{width:min(100%,490px);aspect-ratio:3/4;border-width:7px}.controls{text-align:center;padding:0}.shutter{margin:auto}.review-title{text-align:center}.review-actions{margin:auto;flex-direction:row;max-width:490px}.review-actions button{flex:1;padding:0 18px}.album-section{display:block;padding-top:30px}.album-heading{text-align:center;margin-bottom:35px}.album-heading h1{font-size:39px}.arrow.left{left:-4px}.arrow.right{right:-4px}footer p{display:none}}
@media(max-width:480px){.brand-copy{display:none}.camera-card{max-height:58svh;width:auto;max-width:100%}.booth{width:94vw}.intro h1{font-size:35px}.intro .eyebrow{margin-bottom:9px}.review-actions{gap:7px}.primary,.secondary{font-size:12px;min-height:54px}.album-page{width:78vw;padding:14px 14px 25px}.arrow{width:44px;height:44px}.masthead nav button{padding:9px}}
.masthead .brand>span:last-child{display:grid}.masthead nav a{display:inline-flex;align-items:center;text-decoration:none;border:0;background:transparent;color:#75665d;padding:12px 18px;border-radius:99px;font:13px Arial,sans-serif;letter-spacing:.04em}.masthead nav a.active{background:#fffaf4;color:var(--rose-dark);box-shadow:0 4px 18px rgba(84,72,65,.08)}
.overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;background:rgba(55,42,39,.38);backdrop-filter:blur(2px)}.overlay.hidden,.camera-card video.hidden{display:none}.overlay>small{font:10px Arial,sans-serif;text-transform:uppercase;letter-spacing:.3em}.overlay>strong{font-size:clamp(34px,5vw,58px);font-weight:400;font-style:italic;margin-top:10px}.overlay .countdown{position:static;background:transparent;backdrop-filter:none}.overlay .preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.overlay .thanks{position:absolute}.sync{margin-top:18px;color:#806f66;font:11px/1.4 Arial,sans-serif;letter-spacing:.06em}.album-heading>.sync{margin-top:20px}.empty p{font:14px Arial,sans-serif;color:#7c6d64}
@media(max-width:800px){.masthead .brand>span:last-child small{display:none}.masthead nav a{padding:10px 11px;font-size:11px}.intro .sync{margin:10px auto 0}.overlay .preview{height:100%}}
.booth{width:min(1320px,95vw);grid-template-columns:.55fr 1.45fr;column-gap:clamp(24px,4vw,64px)}
.camera-card{width:min(100%,680px);max-height:calc(100svh - 180px)}
.autoplay-note{font:10px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.admin-section{width:min(1180px,94vw);margin:auto;padding:38px 0 70px;min-height:calc(100svh - 150px)}.admin-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px}.admin-head h1{font-size:clamp(38px,5vw,58px);font-weight:400;margin:0}.admin-stats{font:12px Arial,sans-serif;color:#796a62}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px}.admin-card{background:#fffaf3;padding:12px;box-shadow:0 12px 35px rgba(73,56,49,.14);transition:.2s}.admin-card.is-hidden{opacity:.58}.admin-photo{aspect-ratio:4/3;overflow:hidden;background:#ddd;position:relative}.admin-photo img{width:100%;height:100%;object-fit:cover}.admin-meta{font:11px Arial,sans-serif;color:#786961;margin:11px 2px}.admin-actions{display:flex;gap:8px}.admin-actions button{flex:1;min-height:42px;border-radius:99px;border:1px solid rgba(117,70,79,.35);background:transparent;color:var(--rose-dark);font:600 11px Arial,sans-serif;cursor:pointer}.admin-actions .danger{color:#8b313d;border-color:rgba(139,49,61,.35)}.admin-badge{position:absolute;z-index:2;margin:10px;background:var(--rose-dark);color:white;border-radius:99px;padding:5px 9px;font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em}.admin-message{text-align:center;padding:60px 20px;font:15px Arial,sans-serif;color:#796a62}
@media(max-width:800px){.booth{width:96vw;grid-template-columns:1fr}.camera-card{width:min(100%,580px);max-height:68svh}.admin-head{align-items:start;flex-direction:column}.masthead nav a[href="/admin"]{display:none}}
/* Ajustes v1.2: álbum protagonista y administración compacta */
.album-section{width:min(1380px,96vw);grid-template-columns:.42fr 1.58fr;gap:4vw}
.album-page{width:min(720px,78vw);padding:28px 28px 38px}
.album-page .photo-mat{aspect-ratio:4/3}
.admin-section{width:min(1380px,96vw);padding-top:30px}
.admin-head{margin-bottom:20px}
.admin-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}
.admin-card{padding:8px;box-shadow:0 7px 22px rgba(73,56,49,.12)}
.admin-photo{aspect-ratio:4/3}
.admin-meta{font-size:9px;margin:7px 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-actions{gap:5px}
.admin-actions button{min-height:34px;padding:0 5px;font-size:9px}
.admin-badge{margin:6px;padding:4px 7px;font-size:8px}
@media(max-width:800px){.album-section{width:98vw}.album-page{width:min(88vw,680px);padding:18px 18px 29px}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:9px}.admin-section{width:96vw}.admin-card{padding:6px}.admin-actions button{font-size:8px;min-height:32px}}
/* Ajuste v1.3: una pulgada adicional para la fotografía del álbum */
.album-section{grid-template-columns:.34fr 1.66fr;gap:3vw}
.album-page{width:min(816px,84vw)}
@media(max-width:800px){.album-page{width:min(94vw,780px)}}
/* Ajuste v1.4: álbum panorámico, más ancho y una pulgada más bajo */
.album-section{padding-top:22px;padding-bottom:12px;grid-template-columns:.30fr 1.70fr;gap:2.5vw}
.album-page{width:min(900px,88vw);padding:20px 20px 24px}
.album-page .photo-mat{aspect-ratio:16/9;background:#e9ded3}
.album-page .photo-mat img{object-fit:contain}
.album-page p{margin-top:12px;margin-bottom:4px}
.page-no{bottom:-28px}
@media(max-width:800px){.album-section{padding-top:18px}.album-page{width:min(96vw,860px);padding:12px 12px 18px}.album-page p{margin-top:9px;font-size:17px}}
/* v2.0: gestión de usuarios */
.admin-tabs{display:flex;gap:8px;margin:-8px 0 22px;border-bottom:1px solid rgba(84,72,65,.14);padding-bottom:10px}.admin-tabs button{border:0;border-radius:99px;background:transparent;color:#75665d;padding:11px 20px;font:600 12px Arial,sans-serif;cursor:pointer}.admin-tabs button.active{background:#fffaf4;color:var(--rose-dark);box-shadow:0 4px 18px rgba(84,72,65,.08)}.admin-panel.hidden{display:none}.user-create{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;background:rgba(255,250,243,.7);border:1px solid rgba(182,154,107,.25);padding:24px;margin-bottom:20px}.user-create h2{font-weight:400;font-size:30px;margin:0 0 8px}.user-create p:last-child{font:12px/1.55 Arial,sans-serif;color:#796a62;max-width:420px}.user-create form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}.user-create label,.user-card label{display:grid;gap:6px;font:600 9px Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#806f66}.user-create input,.user-create select,.user-card input,.user-card select{width:100%;height:42px;border:1px solid rgba(117,70,79,.25);border-radius:8px;background:#fffdf9;color:var(--ink);padding:0 11px;font:13px Arial,sans-serif}.user-create .primary{min-height:42px;height:42px;padding:0 18px}.users-grid{display:grid;gap:10px}.user-card{display:grid;grid-template-columns:minmax(220px,1fr) 210px minmax(280px,1.3fr);gap:18px;align-items:end;background:#fffaf3;padding:14px 16px;box-shadow:0 6px 20px rgba(73,56,49,.1)}.user-identity{display:flex;align-items:center;gap:12px}.user-identity>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--rose-dark);color:white;font-size:18px}.user-identity div{display:grid;gap:4px}.user-identity strong{font-weight:400;font-size:17px}.user-identity small{font:9px Arial,sans-serif;color:#8b7a71}.password-row{display:flex;gap:7px}.password-row button{border:1px solid rgba(117,70,79,.35);border-radius:8px;background:transparent;color:var(--rose-dark);font:600 10px Arial,sans-serif;padding:0 12px;cursor:pointer}
@media(max-width:900px){.user-create{grid-template-columns:1fr}.user-create form{grid-template-columns:1fr 1fr}.user-card{grid-template-columns:1fr 1fr}.user-card>label:last-child{grid-column:1/-1}}
@media(max-width:560px){.user-create form,.user-card{grid-template-columns:1fr}.user-card>label:last-child{grid-column:auto}.admin-tabs button{flex:1}.password-row button{padding:0 8px}}

/* v3A: QR público y modo presentación para TV */
.album-qr{display:flex;align-items:center;gap:12px;width:fit-content;margin-top:20px;padding:9px 14px 9px 9px;border:1px solid rgba(182,154,107,.32);border-radius:12px;background:rgba(255,250,244,.72);color:var(--ink);text-decoration:none}.album-qr img{width:58px;height:58px;border-radius:5px}.album-qr span{display:grid;gap:4px}.album-qr strong{font-weight:400;font-size:15px}.album-qr small{max-width:145px;font:9px/1.35 Arial,sans-serif;color:#806f66}
.presentation-body{margin:0;overflow:hidden;background:#1c1715;color:#f7efe5}.presentation-shell{height:100svh;display:grid;grid-template-rows:82px minmax(0,1fr) 105px;background:radial-gradient(circle at 12% 12%,rgba(156,102,112,.22),transparent 26%),radial-gradient(circle at 90% 80%,rgba(182,154,107,.17),transparent 28%),#1c1715}.presentation-header{display:flex;align-items:center;justify-content:space-between;padding:10px clamp(22px,4vw,62px);border-bottom:1px solid rgba(255,255,255,.1)}.presentation-brand{display:flex;align-items:center;gap:14px}.presentation-brand .monogram{width:56px;height:56px;color:#f0d9dc}.presentation-brand .monogram:before,.presentation-brand .monogram:after{background:#1c1715;top:21px}.presentation-brand>span:last-child{display:grid;gap:3px}.presentation-brand strong{font-weight:400;font-size:20px}.presentation-brand small{font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em;color:#c3aea3}.presentation-tools{display:flex;align-items:center;gap:12px;font:12px Arial,sans-serif}.presentation-tools button,.presentation-tools a{border:1px solid rgba(255,255,255,.25);border-radius:99px;background:transparent;color:#f7efe5;text-decoration:none;padding:10px 16px;cursor:pointer}.presentation-stage{position:relative;display:grid;place-items:center;overflow:hidden;padding:18px 5vw}.presentation-photo{position:absolute;inset:18px 5vw;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;opacity:1;transform:scale(1);transition:opacity .9s ease,transform 6.5s linear}.presentation-photo.entering{opacity:0;transform:scale(1.025)}.presentation-photo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 34px rgba(0,0,0,.38))}.presentation-photo figcaption{padding-top:9px;font-size:16px;font-style:italic;color:#d9c7bd}.presentation-photo figcaption span{color:var(--gold);padding:0 7px}.presentation-empty{text-align:center;color:#d9c7bd}.presentation-empty>span{display:inline-grid;place-items:center;width:110px;height:110px;border:1px solid var(--gold);border-radius:50%;font-size:34px;color:#e8c9cc}.presentation-empty h1{font-weight:400;font-size:34px}.presentation-footer{height:auto;padding:10px clamp(22px,4vw,62px);display:flex;align-items:center;justify-content:flex-start;gap:15px;border-top:1px solid rgba(255,255,255,.1);color:#d8c7bd}.presentation-footer img{width:78px;height:78px;border-radius:6px}.presentation-footer>div{display:grid;gap:4px}.presentation-footer p{margin:0;font:10px Arial,sans-serif;text-transform:uppercase;letter-spacing:.15em}.presentation-footer strong{font-weight:400}.presentation-footer>p:last-child{margin-left:auto}
@media(max-width:800px){.masthead nav a[href="/presentacion"]{display:none}.album-qr{margin:16px auto 0}.presentation-shell{grid-template-rows:70px minmax(0,1fr) 88px}.presentation-brand>span:last-child{display:none}.presentation-tools span,.presentation-tools a{display:none}.presentation-tools button{padding:9px 12px}.presentation-footer img{width:64px;height:64px}.presentation-footer>div{display:none}.presentation-footer>p:last-child{margin-left:auto}.presentation-photo{inset:12px 2vw}.presentation-stage{padding:12px 2vw}}

/* v3A: consentimiento por fotografía y acciones públicas */
.photo-consent{display:flex;align-items:flex-start;gap:10px;max-width:390px;margin:0 0 14px;padding:12px 14px;border:1px solid rgba(117,70,79,.24);border-radius:12px;background:rgba(255,250,244,.68);cursor:pointer}.photo-consent input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--rose-dark);flex:0 0 auto}.photo-consent span{display:grid;gap:4px}.photo-consent strong{font:600 12px Arial,sans-serif;color:var(--rose-dark)}.photo-consent small{font:10px/1.4 Arial,sans-serif;color:#75665d}.album-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}.album-actions a,.album-actions button{min-height:34px;padding:0 16px;display:inline-flex;align-items:center;border:1px solid rgba(117,70,79,.32);border-radius:99px;background:transparent;color:var(--rose-dark);text-decoration:none;font:600 10px Arial,sans-serif;cursor:pointer}.consent-note{font:9px Arial,sans-serif!important;text-transform:uppercase;letter-spacing:.1em;color:#9b8b82!important;margin-top:11px!important}.admin-badges{position:absolute;z-index:2;inset:0 0 auto 0;display:flex;align-items:flex-start;justify-content:space-between;gap:5px;padding:6px;pointer-events:none}.admin-badges .admin-badge{position:static;margin:0}.admin-badge.consent{margin-left:auto}.admin-badge.consent.yes{background:#687c5a}.admin-badge.consent.no{background:#716a66}
@media(max-width:800px){.photo-consent{margin:0 auto 12px;text-align:left}.album-actions{margin-top:7px}.album-actions a,.album-actions button{min-height:31px}}

/* v3.1: filtros, selección múltiple y papelera recuperable */
.photo-admin-toolbar{display:grid;gap:10px;margin-bottom:16px}.photo-filters{display:flex;gap:7px;flex-wrap:wrap}.photo-filters button,.selection-toolbar button{min-height:36px;padding:0 13px;border:1px solid rgba(117,70,79,.25);border-radius:99px;background:rgba(255,250,244,.65);color:#75665d;font:600 10px Arial,sans-serif;cursor:pointer}.photo-filters button.active{background:var(--rose-dark);border-color:var(--rose-dark);color:white}.selection-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:rgba(255,250,243,.72);border:1px solid rgba(182,154,107,.23)}.selection-toolbar label{display:flex;align-items:center;gap:7px;font:600 10px Arial,sans-serif;color:var(--rose-dark)}.selection-toolbar input,.photo-select input{accent-color:var(--rose-dark)}.selection-toolbar>span{margin-right:auto;font:10px Arial,sans-serif;color:#796a62}.selection-toolbar button{min-height:32px;background:#fffdf9}.selection-toolbar button.danger{color:#8b313d;border-color:rgba(139,49,61,.3)}.selection-toolbar button:disabled{opacity:.35;cursor:not-allowed}.photo-select{display:flex;align-items:center;gap:5px;padding:0 2px 7px;font:9px Arial,sans-serif;color:#796a62;cursor:pointer}.photo-select input{margin:0}.admin-card.is-deleted{opacity:.68;background:#eee7df}.admin-card.is-deleted .admin-photo img{filter:grayscale(.55)}.admin-badge.trash{background:#8b313d}.admin-card.is-deleted .admin-actions .danger{font-size:8px}
@media(max-width:700px){.photo-filters{display:grid;grid-template-columns:repeat(2,1fr)}.photo-filters button{padding:0 7px}.selection-toolbar>span{width:100%;order:-1}.selection-toolbar button{flex:1;min-width:105px}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-card.is-deleted .admin-actions{display:grid}.admin-card.is-deleted .admin-actions button{width:100%}}

/* v3.1.1: navegación completa y actualización del álbum en tablet */
.album-updates{min-height:16px;margin:8px 0 0;color:var(--rose-dark);font:600 10px/1.4 Arial,sans-serif;letter-spacing:.04em}
@media(min-width:560px) and (max-width:900px){.masthead{padding-left:12px;padding-right:12px}.masthead .brand{gap:8px}.masthead .brand>span:last-child strong{font-size:14px}.masthead nav{gap:2px}.masthead nav a,.masthead nav button{display:inline-flex!important;padding:9px 8px!important;font-size:10px!important}.masthead nav a[href="/admin"],.masthead nav a[href="/presentacion"]{display:inline-flex!important}}
@media(max-width:559px){.masthead{height:auto;min-height:78px;align-items:center}.masthead nav{max-width:235px;justify-content:flex-end;flex-wrap:wrap;gap:2px}.masthead nav a,.masthead nav button{padding:7px 8px!important;font-size:9px!important}.masthead nav a[href="/presentacion"]{display:inline-flex}.masthead nav a[href="/admin"]{display:none}}

.device-config{
  margin-top:12px;
  min-height:38px;
  padding:0 16px;
  font-size:10px;
}


/* ==========================================================
   V3.2.0 — PRESENTACION DE BODA
   ========================================================== */

.presentation-body.wedding-presentation{
  margin:0;
  overflow:hidden;
  background:#efe5dc;
  color:#594b45;
}

.wedding-presentation .presentation-shell{
  height:100svh;
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-rows:88px minmax(0,1fr) 112px;
  background:
    radial-gradient(circle at 12% 20%,rgba(182,154,107,.22),transparent 31%),
    radial-gradient(circle at 87% 72%,rgba(156,102,112,.19),transparent 32%),
    linear-gradient(135deg,#fbf7f1 0%,#efe3d9 52%,#f7eee7 100%);
  color:#594b45;
}

.wedding-presentation .presentation-shell:before,
.wedding-presentation .presentation-shell:after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  border:1px solid rgba(182,154,107,.20);
  border-radius:50%;
  pointer-events:none;
}

.wedding-presentation .presentation-shell:before{
  left:-275px;
  top:10%;
  box-shadow:
    40px 40px 0 rgba(182,154,107,.035),
    80px 80px 0 rgba(182,154,107,.025);
}

.wedding-presentation .presentation-shell:after{
  right:-295px;
  bottom:5%;
  box-shadow:
    -40px -40px 0 rgba(156,102,112,.035),
    -80px -80px 0 rgba(156,102,112,.025);
}

.presentation-ambient{
  position:absolute;
  border-radius:50%;
  filter:blur(60px);
  pointer-events:none;
  opacity:.45;
}

.ambient-one{
  width:340px;
  height:340px;
  left:8%;
  top:22%;
  background:rgba(200,166,139,.26);
}

.ambient-two{
  width:390px;
  height:390px;
  right:5%;
  bottom:12%;
  background:rgba(163,111,119,.17);
}

.wedding-presentation .presentation-header{
  position:relative;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px clamp(24px,4vw,68px);
  border-bottom:1px solid rgba(84,72,65,.11);
  background:rgba(250,246,240,.70);
  backdrop-filter:blur(18px);
}

.wedding-presentation .presentation-brand{
  color:#594b45;
}

.wedding-presentation .presentation-brand strong{
  color:#594b45;
}

.wedding-presentation .presentation-brand small{
  color:#9c6670;
}

.wedding-presentation .presentation-brand .monogram{
  color:#75464f;
  border-color:#b69a6b;
}

.wedding-presentation .presentation-brand .monogram:before,
.wedding-presentation .presentation-brand .monogram:after{
  background:#f7efe7;
}

.wedding-presentation .presentation-tools{
  color:#75665d;
}

.wedding-presentation .presentation-tools button,
.wedding-presentation .presentation-tools a{
  border:1px solid rgba(117,70,79,.25);
  color:#75464f;
  background:rgba(255,250,244,.55);
}

.wedding-presentation .presentation-stage{
  position:relative;
  z-index:3;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:28px 5vw 20px;
}

.wedding-presentation .presentation-photo{
  position:absolute;
  inset:26px 5vw 18px;
  margin:0;
  display:grid;
  place-items:center;
  opacity:1;
  transform:scale(1);
  transition:
    opacity 1.1s ease,
    transform 7.5s ease;
}

.wedding-presentation .presentation-photo.entering{
  opacity:0;
  transform:scale(1.025);
}

.wedding-presentation .presentation-photo.leaving{
  opacity:0;
  transform:scale(.985);
}

.presentation-photo-frame{
  height:100%;
  max-width:min(82vw,1180px);
  min-width:min(56vw,850px);
  padding:18px 18px 13px;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  background:rgba(255,252,247,.96);
  border:1px solid rgba(182,154,107,.34);
  box-shadow:
    0 28px 70px rgba(83,63,54,.20),
    0 4px 12px rgba(83,63,54,.09);
  transform:rotate(-.2deg);
}

.presentation-photo-mat{
  min-height:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#eee4da;
  border:1px solid rgba(84,72,65,.10);
}

.presentation-photo-mat img{
  width:100%;
  height:100%;
  max-height:calc(100svh - 255px);
  object-fit:contain;
  filter:none;
}

.presentation-photo-caption{
  min-height:61px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  padding:10px 14px 3px;
}

.caption-mark{
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid #b69a6b;
  border-radius:50%;
  color:#9c6670;
  font-size:13px;
}

.presentation-photo-caption div{
  display:grid;
  gap:3px;
}

.presentation-photo-caption p{
  margin:0;
  font-size:16px;
  font-style:italic;
  color:#685851;
}

.presentation-photo-caption small{
  font:9px Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.15em;
  color:#9a887e;
}

.wedding-presentation .presentation-empty{
  position:relative;
  z-index:3;
  text-align:center;
  color:#685851;
}

.wedding-presentation .presentation-empty>span{
  width:118px;
  height:118px;
  display:inline-grid;
  place-items:center;
  border:1px solid #b69a6b;
  border-radius:50%;
  font-size:32px;
  color:#9c6670;
  background:rgba(255,250,244,.44);
}

.wedding-presentation .presentation-empty p{
  margin:22px 0 8px;
  font:10px Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.25em;
  color:#9c6670;
}

.wedding-presentation .presentation-empty h1{
  font-size:clamp(38px,5vw,62px);
  line-height:1.05;
  font-weight:400;
  margin:0;
}

.presentation-pulse{
  position:absolute;
  z-index:20;
  left:50%;
  bottom:125px;
  transform:translate(-50%,20px);
  opacity:0;
  padding:10px 20px;
  border-radius:99px;
  background:#75464f;
  color:white;
  font:11px Arial,sans-serif;
  letter-spacing:.06em;
  pointer-events:none;
  transition:.35s ease;
}

.presentation-pulse.show{
  opacity:1;
  transform:translate(-50%,0);
}

.wedding-presentation .presentation-footer{
  position:relative;
  z-index:10;
  display:flex;
  align-items:center;
  gap:24px;
  padding:12px clamp(24px,4vw,68px);
  border-top:1px solid rgba(84,72,65,.11);
  background:rgba(250,246,240,.72);
  color:#685851;
  backdrop-filter:blur(16px);
}

.presentation-footer-copy{
  display:grid;
  gap:4px;
}

.presentation-footer-copy p{
  margin:0;
  font:9px Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.17em;
  color:#9c6670;
}

.presentation-footer-copy strong{
  font-weight:400;
  font-size:18px;
}

.presentation-qr{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:11px;
}

.presentation-qr img{
  width:72px;
  height:72px;
  border-radius:7px;
  background:white;
  padding:3px;
}

.presentation-qr span{
  display:grid;
  gap:4px;
}

.presentation-qr small{
  font:9px Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#9c6670;
}

.presentation-qr strong{
  font-size:13px;
  font-weight:400;
}

.wedding-presentation #presentationCount{
  min-width:125px;
  margin:0;
  text-align:right;
  font:10px Arial,sans-serif;
  color:#806f66;
}


/* ==========================================================
   V3.2.0 — CAMARA ADMIN
   ========================================================== */

.admin-camera-section{
  margin-bottom:22px;
  padding:18px 20px;
  background:rgba(255,250,243,.72);
  border:1px solid rgba(182,154,107,.27);
}

.admin-camera-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}

.admin-camera-heading h2{
  margin:0 0 7px;
  font-size:28px;
  font-weight:400;
}

.admin-camera-heading>div>p:last-child{
  max-width:620px;
  margin:0;
  font:12px/1.55 Arial,sans-serif;
  color:#796a62;
}

.admin-camera-panel{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(84,72,65,.12);
}

.admin-camera-panel.hidden,
.admin-camera-view .hidden,
.admin-camera-controls .hidden{
  display:none;
}

.admin-camera-view{
  width:min(100%,780px);
  aspect-ratio:4/3;
  margin:auto;
  position:relative;
  overflow:hidden;
  background:#ded4cb;
  border:8px solid #fffaf3;
  box-shadow:0 14px 35px rgba(73,56,49,.15);
}

.admin-camera-view video,
.admin-camera-view img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.admin-camera-message{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  padding:9px 15px;
  border-radius:99px;
  background:rgba(83,63,54,.88);
  color:white;
  font:11px Arial,sans-serif;
  white-space:nowrap;
}

.admin-camera-controls{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px;
  margin-top:16px;
}

.admin-camera-controls button{
  min-width:130px;
}


@media(max-width:800px){

  .wedding-presentation .presentation-shell{
    grid-template-rows:72px minmax(0,1fr) 88px;
  }

  .presentation-photo-frame{
    min-width:0;
    width:92vw;
    padding:10px 10px 8px;
  }

  .presentation-photo-mat img{
    max-height:calc(100svh - 210px);
  }

  .presentation-footer-copy{
    display:none;
  }

  .presentation-qr{
    margin-left:0;
  }

  .presentation-qr img{
    width:59px;
    height:59px;
  }

  .admin-camera-heading{
    display:grid;
  }

  .admin-camera-heading .primary{
    width:100%;
  }

  .admin-camera-view{
    border-width:5px;
  }
}



/* ==========================================================
   V3.2.1
   ========================================================== */

.admin-add-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  justify-content:flex-end;
}

.admin-upload-status{
  min-height:20px;
  margin-top:10px;
  text-align:right;
  color:#806f66;
  font:11px/1.4 Arial,sans-serif;
}

/* La fotografía es la protagonista de Presentación. */
.wedding-presentation .presentation-stage{
  isolation:isolate;
}

.wedding-presentation .presentation-empty{
  z-index:2;
}

.wedding-presentation .presentation-photo{
  z-index:4;
}

/* Nunca permitir que el estado vacío quede visualmente
   atravesando una foto. */
.wedding-presentation .presentation-photo ~ .presentation-empty{
  display:none!important;
}

@media(max-width:800px){

  .admin-add-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  .admin-add-actions button{
    width:100%;
  }

  .admin-upload-status{
    text-align:center;
  }
}


/* ===== V3.2.2 PRESENTACION FULLSCREEN ===== */

.presentation-body.wedding-presentation{
  margin:0;
  overflow:hidden;
  background:#eee5dd;
}

.presentation-fullscreen{
  position:relative;
  width:100vw;
  height:100svh;
  min-height:100svh;
  overflow:hidden;
  background:#eee5dd;
}

.presentation-stage-full{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
  display:grid;
  place-items:center;
}

.presentation-stage-full .presentation-photo{
  position:absolute;
  inset:0;
  margin:0;
  width:100%;
  height:100%;
  overflow:hidden;
  opacity:1;
  transition:
    opacity 1.05s ease,
    transform 7.5s ease;
}

.presentation-stage-full .presentation-photo.entering{
  opacity:0;
  transform:scale(1.018);
}

.presentation-stage-full .presentation-photo.leaving{
  opacity:0;
  transform:scale(.992);
}


/* Fondo difuminado generado desde la propia foto */

.presentation-photo-backdrop{
  position:absolute;
  inset:-45px;

  background-image:
    linear-gradient(
      rgba(40,30,26,.10),
      rgba(40,30,26,.10)
    ),
    var(--photo-bg);

  background-size:cover;
  background-position:center;

  filter:
    blur(30px)
    saturate(.95);

  transform:scale(1.10);
}


/* Marco principal */

.presentation-stage-full .presentation-photo-frame{
  position:absolute;
  inset:20px;

  display:grid;
  place-items:center;

  overflow:hidden;

  border:
    1px solid
    rgba(182,154,107,.76);

  outline:
    10px solid
    rgba(255,252,247,.89);

  outline-offset:-12px;

  box-shadow:
    0 10px 40px
    rgba(48,35,30,.15);
}


.presentation-stage-full
.presentation-photo-frame:after{

  content:"";

  position:absolute;

  inset:13px;

  border:
    1px solid
    rgba(255,255,255,.70);

  pointer-events:none;

  z-index:3;
}


.presentation-stage-full
.presentation-photo-frame img{

  width:100%;
  height:100%;

  object-fit:contain;
  object-position:center;

  position:relative;

  z-index:2;

  filter:
    drop-shadow(
      0 12px 32px
      rgba(30,20,17,.18)
    );
}


/* Elementos visuales */

.presentation-brand-overlay,
.presentation-message-overlay,
.presentation-actions-overlay,
.presentation-script-overlay,
.presentation-qr-overlay,
.presentation-count-overlay{

  position:absolute;
  z-index:20;
}


/* J&F */

.presentation-brand-overlay{

  top:48px;
  left:58px;

  display:flex;
  align-items:center;

  gap:14px;

  padding:
    10px 15px
    10px 10px;

  border-radius:16px;

  background:
    rgba(255,250,244,.78);

  border:
    1px solid
    rgba(182,154,107,.24);

  backdrop-filter:
    blur(8px);
}


.presentation-brand-overlay
.monogram{

  width:72px;
  height:72px;

  font-size:27px;
}


.presentation-brand-copy{

  display:grid;
  gap:5px;
}


.presentation-brand-copy strong{

  color:#594842;

  font-size:25px;

  font-weight:400;
}


.presentation-brand-copy small{

  color:#9c6670;

  font:
    10px Arial,
    sans-serif;

  letter-spacing:.24em;
}


/* Mensaje superior derecho */

.presentation-message-overlay{

  top:58px;
  right:60px;

  display:grid;

  justify-items:end;

  gap:4px;

  padding:
    11px 15px;

  border-radius:14px;

  background:
    rgba(255,250,244,.73);

  border:
    1px solid
    rgba(182,154,107,.20);

  backdrop-filter:
    blur(8px);

  color:#9c6670;

  text-transform:
    uppercase;
}


.presentation-message-overlay strong,
.presentation-message-overlay span{

  font:
    500 10px
    Arial,
    sans-serif;

  letter-spacing:.21em;
}


.presentation-message-overlay i{

  font-style:normal;
  font-size:15px;
}


/* Controles discretos */

.presentation-actions-overlay{

  top:132px;
  right:60px;

  display:flex;
  gap:7px;

  opacity:.08;

  transition:
    opacity .25s ease;
}


.presentation-actions-overlay:hover,
.presentation-actions-overlay:focus-within{

  opacity:1;
}


.presentation-actions-overlay button,
.presentation-actions-overlay a{

  border:
    1px solid
    rgba(117,70,79,.28);

  border-radius:99px;

  background:
    rgba(255,250,244,.90);

  color:#75464f;

  text-decoration:none;

  padding:
    8px 12px;

  font:
    10px Arial,
    sans-serif;

  cursor:pointer;
}


/* Texto inferior izquierdo */

.presentation-script-overlay{

  left:68px;
  bottom:55px;

  display:grid;

  color:white;

  text-shadow:
    0 2px 13px
    rgba(25,18,16,.75);

  pointer-events:none;
}


.presentation-script-overlay span{

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-style:italic;

  font-size:
    clamp(
      22px,
      2.4vw,
      39px
    );

  line-height:.94;
}


.presentation-script-overlay i{

  margin-top:11px;

  font-style:normal;

  font-size:18px;
}


/* QR */

.presentation-qr-overlay{

  right:60px;
  bottom:58px;

  display:flex;

  align-items:end;

  gap:9px;

  padding:
    7px 9px;

  border-radius:12px;

  background:
    rgba(255,250,244,.87);

  backdrop-filter:
    blur(8px);
}


.presentation-qr-overlay img{

  width:76px;
  height:76px;

  padding:3px;

  background:white;

  border-radius:6px;
}


.presentation-qr-overlay span{

  display:grid;
  gap:3px;
}


.presentation-qr-overlay small{

  color:#9c6670;

  font:
    8px Arial,
    sans-serif;

  text-transform:
    uppercase;

  letter-spacing:.14em;
}


.presentation-qr-overlay strong{

  color:#5d4d46;

  font:
    13px Georgia,
    serif;
}


/* contador */

.presentation-count-overlay{

  right:61px;
  bottom:32px;

  margin:0;

  color:white;

  text-shadow:
    0 2px 8px
    rgba(25,18,16,.78);

  font:
    9px Arial,
    sans-serif;

  text-transform:
    uppercase;

  letter-spacing:.18em;
}


/* aviso foto nueva */

.presentation-fullscreen
.presentation-pulse{

  position:absolute;

  z-index:30;

  left:50%;
  bottom:32px;

  transform:
    translate(-50%,20px);

  opacity:0;

  padding:
    10px 20px;

  border-radius:99px;

  background:#75464f;

  color:white;

  font:
    11px Arial,
    sans-serif;

  transition:
    .35s ease;
}


.presentation-fullscreen
.presentation-pulse.show{

  opacity:1;

  transform:
    translate(-50%,0);
}


/* estado inicial */

.presentation-stage-full
.presentation-empty{

  z-index:5;

  text-align:center;

  padding:30px;

  color:#685851;

  background:
    rgba(255,250,244,.75);

  border:
    1px solid
    rgba(182,154,107,.28);

  backdrop-filter:
    blur(10px);
}


.presentation-stage-full
.presentation-empty > span{

  width:110px;
  height:110px;

  display:inline-grid;
  place-items:center;

  border:
    1px solid
    #b69a6b;

  border-radius:50%;

  color:#9c6670;

  font-size:32px;
}


.presentation-stage-full
.presentation-empty p{

  margin:
    18px 0 8px;

  color:#9c6670;

  font:
    10px Arial,
    sans-serif;

  letter-spacing:.22em;

  text-transform:
    uppercase;
}


.presentation-stage-full
.presentation-empty h1{

  margin:0;

  color:#685851;

  font-size:
    clamp(
      34px,
      4.2vw,
      60px
    );

  font-weight:400;

  line-height:1.02;
}


/* Tablet / móvil */

@media(max-width:800px){

  .presentation-stage-full
  .presentation-photo-frame{

    inset:10px;

    outline-width:6px;

    outline-offset:-8px;
  }


  .presentation-brand-overlay{

    top:24px;
    left:24px;

    padding:7px;
  }


  .presentation-brand-overlay
  .monogram{

    width:52px;
    height:52px;

    font-size:20px;
  }


  .presentation-brand-copy strong{

    font-size:16px;
  }


  .presentation-brand-copy small{

    font-size:8px;
  }


  .presentation-message-overlay{

    top:26px;
    right:24px;

    padding:
      8px 10px;
  }


  .presentation-actions-overlay{

    top:88px;
    right:24px;
  }


  .presentation-script-overlay{

    left:27px;
    bottom:35px;
  }


  .presentation-qr-overlay{

    right:24px;
    bottom:39px;
  }


  .presentation-qr-overlay img{

    width:58px;
    height:58px;
  }


  .presentation-qr-overlay span{

    display:none;
  }


  .presentation-count-overlay{

    right:25px;
    bottom:20px;
  }
}


/* ==========================================================
   HOTFIX v3.2.2a — CENTRADO Y RESET DE PRESENTACION
   ========================================================== */

.presentation-stage-full{
  position:absolute !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
  overflow:hidden !important;
}

.presentation-stage-full .presentation-photo{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
}

.presentation-stage-full .presentation-photo-frame{
  position:absolute !important;

  top:20px !important;
  right:20px !important;
  bottom:20px !important;
  left:20px !important;

  width:auto !important;
  height:auto !important;

  max-width:none !important;
  min-width:0 !important;
  max-height:none !important;
  min-height:0 !important;

  margin:0 !important;
  padding:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  grid-template-columns:none !important;
  grid-template-rows:none !important;

  transform:none !important;

  background:rgba(245,238,231,.18) !important;

  overflow:hidden !important;
}

.presentation-stage-full .presentation-photo-frame img{
  position:relative !important;

  width:100% !important;
  height:100% !important;

  max-width:100% !important;
  max-height:100% !important;

  min-width:0 !important;
  min-height:0 !important;

  margin:0 auto !important;
  padding:0 !important;

  display:block !important;

  object-fit:contain !important;
  object-position:center center !important;

  transform:none !important;
}

.presentation-photo-backdrop{
  position:absolute !important;
  inset:-40px !important;

  width:auto !important;
  height:auto !important;

  background-position:center center !important;
  background-size:cover !important;
}

@media(max-width:800px){

  .presentation-stage-full .presentation-photo-frame{
    top:10px !important;
    right:10px !important;
    bottom:10px !important;
    left:10px !important;
  }
}



/* ==========================================================
   V3.2.3 — AJUSTE VISUAL PRESENTACION
   ========================================================== */

/* Ya no se utilizan estos elementos */
.presentation-message-overlay,
.presentation-qr-overlay{
  display:none !important;
}

/* Mover "Un recuerdo de nuestro día" a la esquina inferior derecha */
.presentation-script-overlay{
  left:auto !important;
  right:62px !important;
  bottom:58px !important;

  display:grid !important;
  justify-items:end !important;

  text-align:right !important;

  color:white !important;

  text-shadow:
    0 2px 13px
    rgba(25,18,16,.78) !important;

  pointer-events:none !important;
}

/* Dejar espacio al contador debajo del texto */
.presentation-count-overlay{
  right:62px !important;
  bottom:30px !important;
}

/* Los controles siguen discretos arriba a la derecha */
.presentation-actions-overlay{
  top:54px !important;
  right:60px !important;
}

/* Tablet */
@media(max-width:800px){

  .presentation-script-overlay{
    right:24px !important;
    bottom:42px !important;
  }

  .presentation-count-overlay{
    right:24px !important;
    bottom:20px !important;
  }

  .presentation-actions-overlay{
    top:28px !important;
    right:24px !important;
  }
}
