/* Mexican print-shop color, papel picado and a little December magic. */
body{--paper:#fff4da;--ink:#153e34;--red:#bb293b;--pink:#ef93bf;--lime:#f6c649;--muted:#526456;--blue:#2353b8;--sky-top:#df5368;--sky-bottom:#ffbd63;background-color:var(--paper);color:var(--ink)}
body[data-theme="rosa"]{--paper:#ffe8ef;--ink:#502041;--red:#b92463;--pink:#ed9cc5;--lime:#f5c64f;--blue:#813a9a;--sky-top:#ae3e83;--sky-bottom:#ffa177}
body[data-theme="talavera"]{--paper:#eef4ee;--ink:#173e78;--red:#b43424;--pink:#a8cbd7;--lime:#f4cd52;--blue:#2055ac;--sky-top:#267baf;--sky-bottom:#b2dce2}
body[data-theme="noche"]{--paper:#172e35;--ink:#fff2cf;--red:#ff9b8c;--pink:#dd94bb;--lime:#f3ce67;--muted:#c0d1cf;--blue:#476dbe;--sky-top:#122647;--sky-bottom:#9d729e}
body[data-theme="posada"]{--paper:#fff1cc;--ink:#254a36;--red:#ac283b;--pink:#e9a3b7;--lime:#efb63b;--blue:#20695e;--sky-top:#b82e46;--sky-bottom:#f5b348}
body[data-theme="cielo"]{--paper:#eaeaf7;--ink:#29396b;--red:#a13e71;--pink:#e4b5d7;--lime:#f5d3a0;--blue:#5559a7;--sky-top:#222e69;--sky-bottom:#df92b5}
header{position:relative;padding-top:48px;border-bottom:2px solid var(--ink)}
.brand{position:relative;isolation:isolate}.santa-hat{position:absolute;top:-5px;left:6px;width:30px;height:24px;background:#cf3046;clip-path:polygon(0 90%,30% 0,73% 12%,100% 49%,67% 46%,83% 90%);transform:rotate(-14deg);z-index:2}.brand:after{content:'';position:absolute;top:13px;left:4px;width:30px;height:7px;border-radius:5px;background:#fff8e5;transform:rotate(-14deg);z-index:3}
.christmas-lights{position:absolute;top:0;left:0;width:100%;height:30px;display:flex;justify-content:space-around;border-top:2px solid var(--ink);border-radius:0 0 50% 50%;pointer-events:none}.christmas-lights i{position:relative;width:9px;height:17px;background:#f4c849;border-radius:40% 40% 50% 50%;top:8px;box-shadow:0 3px 13px #f4c84988;transform:rotate(9deg)}.christmas-lights i:before{content:'';position:absolute;top:-5px;left:2px;width:5px;height:6px;background:#254a36}.christmas-lights i:nth-child(3n){background:#ed6c8a;box-shadow:0 3px 13px #ed6c8a88;transform:rotate(-12deg)}.christmas-lights i:nth-child(3n+2){background:#64b9ad;box-shadow:0 3px 13px #64b9ad88}
.hero{padding-top:48px;padding-bottom:48px}.edition{display:inline-block;background:var(--lime);color:#273c34;padding:7px 10px;font-size:10px;letter-spacing:1.8px;font-weight:800;transform:rotate(-3deg);box-shadow:3px 3px 0 var(--ink)}h1{font-family:Impact,'Arial Black',Arial,sans-serif;text-transform:uppercase;font-weight:900;font-size:clamp(70px,8.2vw,100px);line-height:.94;letter-spacing:-3px}h1 em{font-family:Georgia,serif;text-transform:none;font-size:.91em;letter-spacing:-5px}.eyebrow{color:var(--red)}.primary{border:1px solid var(--ink);box-shadow:4px 4px 0 var(--red);border-radius:0;font-weight:700}.handwritten{color:var(--red)}
.papel-picado{display:flex;justify-content:space-around;gap:8px;border-top:1px solid var(--ink);height:49px;margin:0 40px;overflow:hidden;pointer-events:none}.papel-picado i{position:relative;width:64px;height:43px;background:var(--red);flex-shrink:0;clip-path:polygon(0 0,100% 0,100% 85%,90% 100%,80% 85%,70% 100%,60% 85%,50% 100%,40% 85%,30% 100%,20% 85%,10% 100%,0 85%)}.papel-picado i:after{content:'';position:absolute;inset:7px 12px 11px;background:radial-gradient(ellipse at center,var(--paper) 0 23%,transparent 25%),radial-gradient(circle at 15% 20%,var(--paper) 0 3px,transparent 4px),radial-gradient(circle at 85% 20%,var(--paper) 0 3px,transparent 4px),radial-gradient(circle at 15% 80%,var(--paper) 0 3px,transparent 4px),radial-gradient(circle at 85% 80%,var(--paper) 0 3px,transparent 4px)}.papel-picado i:nth-child(3n){background:var(--blue)}.papel-picado i:nth-child(3n+2){background:var(--pink)}
.sunset{background:linear-gradient(var(--sky-top),var(--sky-bottom));border-radius:48% 48% 0 0}.postcard{border:2px solid #153e34;box-shadow:7px 8px 0 var(--blue);transform:rotate(4deg)}.postcard-caption{color:#153e34}.sticker-ticket{background:var(--lime);color:#153e34;border:2px dashed #153e34;box-shadow:4px 4px 0 var(--red)}.sticker-music{background:var(--pink);color:#153e34;border:2px solid #153e34}.tape{background:#e8b34bbb}.sea{background:repeating-linear-gradient(0deg,transparent 0 12px,#f8d6b844 13px 14px),linear-gradient(#2e9f98,#155771)}.cactus{position:absolute;width:62px;height:95px;right:19px;bottom:25px;fill:#153e34;z-index:2;transform:rotate(-4deg)}.comet{position:absolute;width:95px;height:2px;top:29px;right:25px;background:linear-gradient(90deg,transparent,#fff7d8);transform:rotate(-38deg);opacity:0}.comet:after{content:'';position:absolute;right:-1px;top:-2px;width:5px;height:5px;background:#fff7d8;border-radius:50%;box-shadow:0 0 10px white}body[data-theme="cielo"] .comet{opacity:1}body[data-theme="cielo"] .sun{opacity:.3}
.ribbon{background:var(--blue);color:#fff6dc;border:0;transform:rotate(-1deg);padding-block:14px}.ribbon i{color:#f5c84b}.calendar{padding-top:48px}h2{font-family:Georgia,serif}.calendar-heading h2{font-family:Impact,'Arial Black',Arial,sans-serif;font-size:53px;text-transform:uppercase;letter-spacing:-1px}.month{border-left:3px solid var(--red);padding-left:18px}.doors{gap:14px}.door,.door.ready{border:2px solid var(--ink);border-radius:0;color:#fff6dc;background:var(--red);font-family:Impact,'Arial Black',Arial,sans-serif;font-size:49px;box-shadow:3px 3px 0 var(--ink)}.door:nth-child(6n+2),.door:nth-child(2).ready{background:var(--pink);color:#243b33}.door:nth-child(6n+3),.door:nth-child(3).ready{background:var(--blue);color:#fff6dc;border-radius:40% 40% 0 0}.door:nth-child(6n+4),.door:nth-child(4).ready{background:var(--lime);color:#243b33}.door:nth-child(6n+5){background:#147765;color:#fff6dc}.door:nth-child(6n){background:#f07141;color:#243b33}.door:nth-child(7n){background:var(--ink);color:var(--paper)}.door:before{border:1px dashed currentColor;opacity:.4}.door:last-child{border:2px solid var(--ink);background:var(--red);color:#fff6dc}.door:disabled{opacity:1}.door-symbol{font-size:17px}.door.ready:hover{box-shadow:5px 7px 0 var(--ink)}.door.ready{outline:2px solid var(--paper);outline-offset:-6px}.door.opened:after{background:var(--paper);color:var(--ink);padding:4px;border-radius:50%}
.atmosphere-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 40px 22px;padding:13px 0;border-bottom:1px dashed var(--ink);font-size:10px;letter-spacing:1px;text-transform:uppercase}.atmosphere-bar button{min-height:44px;background:transparent;color:var(--ink);border:1px solid var(--ink);padding:8px 12px;font-size:11px}.atmosphere-bar b{display:block;margin-top:5px;font-size:12px}.local-preview select{min-width:0;max-width:100%;min-height:44px;background:var(--paper);color:var(--ink);border:1px solid var(--ink);font:inherit;padding:6px}.local-preview{flex-wrap:wrap}
.snow{position:fixed;inset:0;z-index:8;pointer-events:none;overflow:hidden}.snow i{position:absolute;left:var(--x);top:-12px;width:var(--size);height:var(--size);border-radius:50%;background:#fff;opacity:.7;box-shadow:0 0 3px #153e3455;animation:snowfall var(--duration) var(--delay) linear infinite}.snow.is-paused i{animation-play-state:paused}@keyframes snowfall{from{transform:translate3d(0,-12px,0)}to{transform:translate3d(22px,calc(100dvh + 24px),0)}}dialog{border:2px solid var(--ink);box-shadow:0 12px 45px #182b2b33}.letter{color:#342039}.shots button,.again{color:#243b33}.envelope{color:#932d4c;border-color:currentColor}.match-card.revealed,.match-card.matched{color:#243b33}
@media(max-width:760px){header{padding-top:45px}.hero{padding-top:30px;padding-bottom:35px}h1{font-size:clamp(64px,17vw,96px);letter-spacing:-2px}h1 em{letter-spacing:-3px}.edition{font-size:9px}.papel-picado{margin:0 20px;gap:8px;height:40px}.papel-picado i{width:45px;height:34px}.collage{margin-top:32px}.cactus{width:50px;height:77px}.doors{gap:10px}.door{font-size:35px;min-height:94px;box-shadow:2px 3px 0 var(--ink)}.calendar-heading h2{font-size:37px}.atmosphere-bar{margin:0 20px 18px}.ribbon{margin-top:12px}.calendar{padding-top:30px}.postcard-caption{font-size:14px}.snow i{opacity:.65}}
@media(max-width:350px){.door{font-size:30px;min-height:80px}.calendar-heading h2{font-size:32px}.postcard-caption{font-size:12px}}
@media(hover:none){.door.ready:hover{transform:none;box-shadow:2px 3px 0 var(--ink)}}
@media(prefers-reduced-motion:reduce){.snow{display:none}}

.cupido-intro{text-align:center;padding:4px 0 12px}
.cupido-seal{display:flex;align-items:center;justify-content:center;gap:5px;width:88px;height:88px;margin:4px auto 20px;border:2px solid var(--ink);border-radius:50%;background:var(--lime);color:var(--ink);font:bold 26px Georgia,serif;box-shadow:4px 4px 0 var(--red);transform:rotate(-7deg)}
.cupido-seal span{color:#932d4c;font-size:32px}
.cupido-name{font-size:11px;font-weight:700;letter-spacing:1.3px;line-height:1.7}
.cupido-counter{font-size:12px;font-weight:700;color:var(--muted)}
.cupido-dialogue{font:clamp(20px,5vw,26px)/1.55 Georgia,serif;text-align:left;overflow-wrap:anywhere}
.cupido-intro .cupido-next{display:block;width:100%;min-height:56px;margin:24px 0 16px;padding:14px 16px;white-space:normal}
.cupido-skip{min-height:44px;line-height:1.5}
.cupido-intro button:focus-visible,.envelope:focus-visible,.letter:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.heart-keepsake{margin-top:28px;padding:24px 18px;border:2px dashed var(--ink);background:#fff4d6;color:#342039;text-align:center}
.heart-keepsake h3{font:700 23px/1.3 Georgia,serif;margin:16px 0}
.heart-keepsake p{font-size:15px;line-height:1.7}
.heart-fragment{display:block;width:66px;margin:auto;font-size:70px;line-height:1;color:#956413;clip-path:polygon(0 0,100% 0,100% 54%,72% 45%,58% 72%,36% 58%,0 83%);transform:rotate(-12deg)}
.heart-keepsake .keepsake-status{font-size:12px;margin-bottom:0}
