/* ===== v3: ajustes tras la revisión ===== */

/* portada: retrato de festejo en arco dorado */
.cover-photo{position:relative;width:min(72vw,300px);aspect-ratio:3/3.7;margin:10px auto -34px;border-radius:999px 999px 28px 28px;overflow:hidden;z-index:1;
  box-shadow:0 0 0 2px rgba(217,201,163,.85),0 0 0 7px rgba(10,10,11,.9),0 0 0 8.5px rgba(217,201,163,.4),0 30px 80px rgba(0,0,0,.8),0 0 70px color-mix(in srgb,var(--accent) 30%,transparent)}
.cover-photo img,.cover-photo .ph{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.cover-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,11,0) 55%,rgba(10,10,11,.88) 100%),radial-gradient(circle at 50% 0,rgba(255,236,190,.14),transparent 55%);pointer-events:none}
.hero3d{position:relative;z-index:2}

/* recuerdos: foto completa, sin zoom, sobre fondo borroso de la misma foto */
.slide{height:min(100svh,820px)}
.sl .im{display:flex;align-items:center;justify-content:center;padding:8svh 0 21svh}
.sl .im::before{content:'';position:absolute;inset:-40px;background:var(--u) center/cover no-repeat;filter:blur(34px) brightness(.5) saturate(1.15)}
.sl .im img,.sl .im video,.sl .im .ph{position:relative;width:100%;height:100%;max-width:1100px;object-fit:contain}
.sl.on .im{animation:none!important}

/* vida en números: doble fila */
.wrapped{grid-template-columns:1fr 1fr;gap:12px;max-width:760px}
.wcard{min-height:0;padding:20px 10px 18px;border-radius:22px}
.wcard:last-child:nth-child(odd){grid-column:1/-1}
.wico .ico{width:62px;height:62px}
.wnum{font-size:clamp(40px,12.5vw,84px);margin-top:2px}
.wlab{font-size:clamp(14px,3.7vw,20px);line-height:1.25;margin-top:2px}
.wdat{font-size:clamp(13px,3.3vw,17px);margin-top:4px}

/* regalos: tarjetas más pequeñas que caben completas en el celular */
.gifts{max-width:340px;gap:20px}
@media(min-width:820px){.gifts{max-width:none;grid-template-columns:repeat(3,300px);justify-content:center}}
.gc{width:min(100%,300px);margin:0 auto;aspect-ratio:1.45/1}
.gc.main{width:min(100%,320px)}
.gc-reveal{padding:11px 12px}
.gc-reveal h3{font-size:clamp(15px,4.3vw,18px);line-height:1.15}
.gc-reveal p{font-size:12px;line-height:1.3}
.gc-reveal small{font-size:10px;line-height:1.3}
.gc-reveal .copy,.gc-reveal .ics{min-height:34px;padding:5px 12px;font-size:9.5px;margin-top:5px;align-self:flex-start;border-radius:999px;font:600 9.5px var(--f-sans);letter-spacing:.12em;text-transform:uppercase}
.gc-reveal .ics{background:transparent;color:var(--gold);border:1px solid var(--gold);margin-left:6px}
.gc-reveal .im .ph .ico{width:60px;height:60px}
.gc .lock{font-size:10.5px}

/* selector de ocasiones: carrusel 3D */
.occ-stage{--R:330px;perspective:1000px;perspective-origin:50% 40%;height:238px;margin:6px 0 4px;touch-action:pan-y;cursor:grab;position:relative}
.occ-stage:active{cursor:grabbing}
.occ-ring{position:absolute;left:50%;top:6px;width:0;height:0;transform-style:preserve-3d;transform:translateZ(calc(var(--R)*-1)) rotateY(calc(var(--a,0deg)*-1));transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.occ-ring.nodrag{transition:none}
.occ3{position:absolute;left:-66px;top:0;width:132px;height:196px;min-height:0;padding:12px 8px;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;
  transform:rotateY(calc(var(--i)*(360deg/var(--n)))) translateZ(var(--R));backface-visibility:hidden;-webkit-backface-visibility:hidden;
  background:linear-gradient(165deg,color-mix(in srgb,var(--oc) 22%,#17140f),#0b0a09 70%);border:1px solid color-mix(in srgb,var(--oc) 55%,transparent);
  box-shadow:0 18px 40px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.12),0 0 24px color-mix(in srgb,var(--oc) 22%,transparent);transition:box-shadow .5s,filter .5s}
.occ3-ico .ico{width:86px;height:86px;transition:transform .6s}
.occ3-n{font:600 12px/1.25 var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.occ3:not(.front){filter:brightness(.6)}
.occ3.front{box-shadow:0 22px 50px rgba(0,0,0,.8),0 0 0 1.5px var(--oc),0 0 46px color-mix(in srgb,var(--oc) 55%,transparent)}
.occ3.front .occ3-ico .ico{transform:scale(1.12) rotate(-4deg);animation:floaty 3.4s ease-in-out infinite}
.occ-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin:2px 0 26px}
.occ-nav button{width:48px;height:48px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);font-size:26px;line-height:1;display:grid;place-items:center}
.occ-hint{font:300 11px var(--f-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}

/* cápsula del tiempo */
.capsule{max-width:560px;margin:0 auto;padding:26px 20px;text-align:center}
.cap-ico{animation:floaty 4s ease-in-out infinite}
.cap-lock{font:italic 400 clamp(19px,4.6vw,24px)/1.4 var(--f-serif);color:var(--silver);margin:6px 0}
.cap-count{font:300 14px var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.cap-count b{font:700 clamp(34px,10vw,52px) var(--f-display);color:var(--gold);margin:0 6px 0 10px;font-variant-numeric:tabular-nums}
.cap-msg{font:400 clamp(26px,6vw,34px)/1.25 var(--f-script);color:#e7dcc0;margin:10px 0}
.cap-self{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;text-align:left}
.cap-self label{display:block;font:600 11px var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.cap-self textarea{width:100%;border-radius:14px;border:1px solid var(--line);background:rgba(0,0,0,.45);color:var(--ink);font:400 16px/1.5 var(--f-sans);padding:12px;resize:vertical}
.cap-self .btn{margin:8px 0 0}
@media(prefers-reduced-motion:reduce){.occ-ring{transition:none}.occ3.front .occ3-ico .ico,.cap-ico{animation:none!important}}

.sl-cap .yr{color:#f3e2b4;text-shadow:0 2px 16px #000,0 0 4px #000}
.sl-cap .pi{color:#fff}
