/* All selectors scoped to .hma-calendar to avoid altering the WordPress theme. */
.hma-calendar{--hma-gold:#e4c27d;--hma-white:#fff4dd;position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% -10%,#30476d 0%,#101b34 51%,#0a1125 100%);color:var(--hma-white);border-radius:20px;overflow:hidden;box-shadow:0 20px 70px rgba(7,12,27,.24);font-family:Georgia,'Times New Roman',serif;line-height:1.45;margin:24px auto;max-width:1020px;box-sizing:border-box}
.hma-calendar *{box-sizing:border-box}
.hma-inner{position:relative;z-index:1;max-width:880px;margin:auto;padding:52px clamp(16px,5vw,60px) 27px}
.hma-glow{position:absolute;pointer-events:none;z-index:-1;width:230px;height:230px;border-radius:50%;filter:blur(65px);opacity:.17;background:#c9a567}
.hma-glow-left{top:14%;left:-150px}.hma-glow-right{bottom:10%;right:-130px}
.hma-calendar:before,.hma-calendar:after{position:absolute;inset:0;content:"";pointer-events:none;z-index:0}
.hma-calendar:before{background-image:radial-gradient(1px 1px at 7% 15%,#ffedc0 90%,transparent),radial-gradient(2px 2px at 92% 7%,#fff0cd 80%,transparent),radial-gradient(1px 1px at 20% 41%,#eecf95 90%,transparent),radial-gradient(1px 1px at 76% 36%,#fff0cc 90%,transparent),radial-gradient(1px 1px at 15% 86%,#fff4df 90%,transparent),radial-gradient(2px 2px at 84% 83%,#f2cf97 90%,transparent);opacity:.5}
.hma-calendar:after{inset:15px;border:1px solid rgba(220,181,107,.28);border-radius:12px}
.hma-header{text-align:center;margin-bottom:35px}
.hma-kicker,.hma-dialog-kicker{font-family:Arial,sans-serif;letter-spacing:.25em;font-size:11px;font-weight:600;color:var(--hma-gold)}
.hma-heading{font:normal clamp(26px,4.6vw,43px)/1.17 Georgia,'Times New Roman',serif!important;color:#ffe4ad!important;margin:13px auto 11px!important;max-width:670px;text-wrap:balance}
.hma-subtitle{color:#decbaa;font:italic 17px/1.6 Georgia,'Times New Roman',serif;margin:0!important}
.hma-preview-label{display:inline-block;margin-top:12px;padding:6px 12px;border:1px solid #e4c27d;border-radius:30px;font:12px Arial,sans-serif;color:#ffe4ad}
.hma-doors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(8px,1.8vw,16px);max-width:740px;margin:0 auto;perspective:900px}
.hma-door{appearance:none;-webkit-appearance:none;position:relative;display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:wait;aspect-ratio: .84;min-width:0;box-shadow:none!important;outline-offset:4px}
.hma-door:focus-visible{outline:3px solid #fff1c9}
.hma-door-frame{display:block;position:relative;width:100%;height:100%;border:1px solid rgba(231,190,113,.75);border-radius:7px;background:linear-gradient(130deg,#2c3850,#17253f);box-shadow:inset 0 0 0 4px rgba(10,17,34,.66),0 3px 10px rgba(0,0,0,.2);transform-style:preserve-3d}
.hma-door-face{position:absolute;inset:4px;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid rgba(220,179,102,.33);border-radius:3px;background:linear-gradient(145deg,#314362 0%,#24314c 49%,#111d33 100%);backface-visibility:hidden;transform-origin:left center;transition:transform .6s cubic-bezier(.2,.7,.3,1),filter .3s;box-shadow:inset 0 0 22px rgba(0,0,0,.18)}
.hma-door-star{font-size:clamp(10px,1.3vw,16px);color:#b89e6f;line-height:1}
.hma-number{font:normal clamp(21px,3.2vw,34px)/1.15 Georgia,'Times New Roman',serif;color:#f5d6a0;text-shadow:0 1px 10px #ac854f66;margin:3px 0}
.hma-door-detail{font-size:12px;color:#b89e6f}
.hma-door-behind{position:absolute;inset:4px;display:flex;align-items:center;justify-content:center;color:#f9d9a3;font:32px Georgia,serif;background:radial-gradient(circle at center,#6e5260,#302947);border-radius:3px}
.hma-door.is-locked{cursor:pointer;opacity:.63}
.hma-door.is-locked .hma-door-face{filter:saturate(.55)}
.hma-door.is-locked .hma-number{color:#b5a68c}
.hma-door.is-ready,.hma-door.is-visited{cursor:pointer}
.hma-door.is-ready:hover .hma-door-face,.hma-door.is-ready:focus-visible .hma-door-face{filter:brightness(1.25)}
.hma-door.is-ready:hover{transform:translateY(-2px)}
.hma-door.is-visited .hma-door-frame{border-color:#f2d7a2;background:#2a344b}
.hma-door.is-visited .hma-door-star{color:#f7d2a0}
.hma-door.is-opening .hma-door-face{transform:rotateY(-99deg)}
.hma-door.is-opening{z-index:3}
.hma-hint{text-align:center;color:#c8b795!important;font:13px/1.6 Arial,sans-serif!important;min-height:26px;margin:25px auto 0!important}
.hma-footer{text-align:center;color:#d1b57f;letter-spacing:.03em;font:italic 15px Georgia,serif;margin-top:16px}
.hma-footer span{padding-left:6px}
.hma-dialog{width:min(90vw,540px);max-height:min(85vh,700px);border:1px solid #cfac70;border-radius:14px;padding:0;background:#f9f0dd;color:#313044;box-shadow:0 25px 90px #0008;overflow:auto}
.hma-dialog::backdrop{background:rgba(5,9,21,.8);backdrop-filter:blur(5px)}
.hma-dialog-shell{position:relative;padding:clamp(30px,6vw,55px) clamp(22px,5vw,54px) 35px;text-align:center;background:radial-gradient(ellipse at top,#fffaf0,#f5ead4)}
.hma-dialog-shell:before{content:"";position:absolute;inset:13px;border:1px solid #d2b988;border-radius:7px;pointer-events:none}
.hma-close{position:absolute;top:19px;right:21px;z-index:2;line-height:1;font:normal 30px Arial,sans-serif;color:#695d57;background:transparent;border:0;cursor:pointer;padding:3px 8px}
.hma-close:hover{color:#302c37}.hma-dialog-kicker{color:#a4834e;font-size:10px}
.hma-dialog-day{font:normal 22px Georgia,serif;color:#a88956;padding:20px 0 8px}
.hma-dialog-title{font:normal clamp(25px,4vw,35px)/1.25 Georgia,serif!important;color:#433747!important;margin:0 0 23px!important}
.hma-dialog-content{font:17px/1.85 Georgia,'Times New Roman',serif;color:#3f3c43;overflow-wrap:anywhere;text-align:center}
.hma-dialog-content p{margin:0 0 16px;color:inherit}
.hma-dialog-content a{color:#6d4d7a;text-decoration:underline}
.hma-dialog-bottom{border-top:1px solid #ddcaab;margin:23px auto 0;padding-top:19px;color:#9b7547;font:italic 16px Georgia,serif}
.hma-dialog-bottom span{font-style:normal;padding-left:5px}
.hma-snow{position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:radial-gradient(2px 2px at 16% 23%,#fff 80%,transparent),radial-gradient(2px 2px at 64% 60%,#fff 80%,transparent),radial-gradient(1px 1px at 92% 17%,#fff 80%,transparent);background-size:185px 230px;animation:hma-snow 24s linear infinite}
.hma-calendar.hma-no-snow .hma-snow{display:none}
@keyframes hma-snow{to{background-position:45px 330px,35px 340px,-40px 400px}}
@media(max-width:650px){.hma-calendar{border-radius:10px}.hma-inner{padding:39px 18px 25px}.hma-doors{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.hma-heading{font-size:29px!important}.hma-subtitle{font-size:15px}.hma-calendar:after{inset:9px}}
@media(max-width:360px){.hma-doors{gap:6px}.hma-number{font-size:23px}.hma-inner{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){.hma-snow{animation:none}.hma-door-face{transition:none}.hma-door.is-ready:hover{transform:none}}
/* v1.1: optional private photo / graphic in the heart-message dialog. */
.hma-dialog-body{display:flex;flex-direction:column;gap:18px;align-items:center;width:100%}
.hma-dialog-body .hma-dialog-content{width:100%}
.hma-dialog-image{display:block;width:auto;max-width:100%;height:auto;max-height:52vh;object-fit:contain;border-radius:10px;border:1px solid rgba(175,137,75,.38);box-shadow:0 8px 25px rgba(69,48,22,.18)}
.hma-dialog-body .hma-dialog-content p:last-child{margin-bottom:0}

/* v1.1.1: user-defined colors; only active after saving a custom palette.
   Previously installed calendars retain the original appearance by default. */
.hma-calendar.hma-custom-colors{--hma-gold:var(--hma-c-accent);--hma-white:var(--hma-c-text);background:radial-gradient(ellipse at 50% -10%,var(--hma-c-highlight) 0%,var(--hma-c-background) 58%,var(--hma-c-background) 100%);color:var(--hma-c-text)}
.hma-calendar.hma-custom-colors:after{border-color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-glow{background:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-kicker{color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-heading{color:var(--hma-c-heading)!important}
.hma-calendar.hma-custom-colors .hma-subtitle{color:var(--hma-c-secondary)}
.hma-calendar.hma-custom-colors .hma-preview-label{border-color:var(--hma-c-accent);color:var(--hma-c-heading)}
.hma-calendar.hma-custom-colors .hma-door:focus-visible{outline-color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-door-frame{border-color:var(--hma-c-accent);background:linear-gradient(130deg,var(--hma-c-door),var(--hma-c-background))}
.hma-calendar.hma-custom-colors .hma-door-face{border-color:var(--hma-c-accent);background:linear-gradient(145deg,var(--hma-c-door),var(--hma-c-door) 46%,var(--hma-c-background) 100%)}
.hma-calendar.hma-custom-colors .hma-door-star,.hma-calendar.hma-custom-colors .hma-door-detail{color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-number{color:var(--hma-c-accent);text-shadow:none}
.hma-calendar.hma-custom-colors .hma-door-behind{background:var(--hma-c-interior);color:var(--hma-c-text)}
.hma-calendar.hma-custom-colors .hma-door.is-locked .hma-number{color:var(--hma-c-secondary)}
.hma-calendar.hma-custom-colors .hma-door.is-visited .hma-door-frame{border-color:var(--hma-c-accent);background:var(--hma-c-door)}
.hma-calendar.hma-custom-colors .hma-door.is-visited .hma-door-star{color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-hint{color:var(--hma-c-text)!important}
.hma-calendar.hma-custom-colors .hma-footer{color:var(--hma-c-secondary)}
.hma-calendar.hma-custom-colors .hma-dialog{border-color:var(--hma-c-accent);background:var(--hma-c-dialog-bg);color:var(--hma-c-dialog-text)}
.hma-calendar.hma-custom-colors .hma-dialog-shell{background:var(--hma-c-dialog-bg)}
.hma-calendar.hma-custom-colors .hma-dialog-shell:before{border-color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-close{color:var(--hma-c-dialog-text)}
.hma-calendar.hma-custom-colors .hma-close:hover{color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-dialog-kicker,.hma-calendar.hma-custom-colors .hma-dialog-day,.hma-calendar.hma-custom-colors .hma-dialog-bottom{color:var(--hma-c-secondary)}
.hma-calendar.hma-custom-colors .hma-dialog-title{color:var(--hma-c-dialog-title)!important}
.hma-calendar.hma-custom-colors .hma-dialog-content,.hma-calendar.hma-custom-colors .hma-dialog-content p{color:var(--hma-c-dialog-text)}
.hma-calendar.hma-custom-colors .hma-dialog-content a{color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-dialog-bottom{border-top-color:var(--hma-c-accent)}
.hma-calendar.hma-custom-colors .hma-dialog-image{border-color:var(--hma-c-accent)}
/* Annual calendar: visibility determined by the uncached server-status endpoint. */
.hma-calendar[hidden]{display:none!important}
.hma-calendar .hma-credit{text-align:center;margin:15px auto 0;color:inherit;opacity:.78;font:12px/1.5 Arial,sans-serif}

/* Avoid a flash of closed doors when calendar is hidden outside December. */
.hma-calendar[data-hma-outside="hide"]:not(.hma-status-ready){display:none!important}
