/* Per-calendar styles; FREE code and server-side date lock are unchanged. */
.vdcc-calendar.vdcc-pro-active .vdcc-door:not(.vdcc-locked){background:var(--vdcc-pro-open)!important}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-locked{background:var(--vdcc-pro-locked)!important}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-advent{border:3px solid #ffe2a0!important;box-shadow:0 0 0 3px rgba(255,199,65,.48),0 0 22px rgba(255,203,92,.8),0 3px 12px rgba(0,0,0,.34)!important;z-index:2}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-advent .vdcc-door-number{color:#fff9d1}
.vdcc-calendar.vdcc-pro-snow .vdcc-scene::after{content:"";position:absolute;inset:-60% 0 0;z-index:4;pointer-events:none;opacity:.55;background-image:radial-gradient(2px 2px at 15px 25px,#fff 95%,transparent),radial-gradient(3px 3px at 85px 100px,#fff 95%,transparent),radial-gradient(2px 2px at 140px 75px,#fff 95%,transparent),radial-gradient(4px 4px at 185px 175px,#fff 90%,transparent);background-size:220px 220px,260px 260px,320px 320px,380px 380px;animation:vdcc-pro-snowfall 16s linear infinite}
@keyframes vdcc-pro-snowfall{from{transform:translate3d(0,-12%,0)}to{transform:translate3d(25px,38%,0)}}
/* Dramatic PRO animations play BEFORE FREE opens its content modal. */
.vdcc-calendar.vdcc-pro-active .vdcc-door[class*="vdcc-pro-opening-"]{z-index:5!important;pointer-events:none;backface-visibility:visible;will-change:transform,opacity,filter}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-swing{transform-origin:0% 50%;animation:vdcc-pro-door-swing 1.05s cubic-bezier(.24,.74,.23,1) forwards!important}
@keyframes vdcc-pro-door-swing{
  0%{transform:translate(-50%,-50%) perspective(650px) rotateY(0);filter:brightness(1)}
  35%{transform:translate(-50%,-50%) perspective(650px) rotateY(-35deg);filter:brightness(1.6)}
  78%,100%{transform:translate(-50%,-50%) perspective(650px) rotateY(-112deg);filter:brightness(1.3)}
}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-magic{animation:vdcc-pro-door-magic 1.1s cubic-bezier(.22,.68,.15,1) forwards!important}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-magic::after{content:"✦ ✧ ✦";position:absolute;left:50%;top:50%;white-space:nowrap;font-size:clamp(18px,4vw,36px);color:#fff1a1;text-shadow:0 0 14px #ffdd54,0 0 26px #ffad2f;pointer-events:none;animation:vdcc-pro-door-sparkles 1.1s ease-out forwards}
@keyframes vdcc-pro-door-magic{
  0%{transform:translate(-50%,-50%) scale(1) rotate(0);filter:brightness(1);opacity:1}
  37%{transform:translate(-50%,-50%) scale(1.65) rotate(10deg);filter:brightness(2.2);opacity:1}
  75%{transform:translate(-50%,-50%) scale(2.05) rotate(-15deg);filter:brightness(2.5);opacity:.78}
  100%{transform:translate(-50%,-50%) scale(.18) rotate(35deg);filter:brightness(2);opacity:0}
}
@keyframes vdcc-pro-door-sparkles{
  0%{transform:translate(-50%,-50%) scale(.4);opacity:0}
  30%{transform:translate(-50%,-110%) scale(1);opacity:1}
  100%{transform:translate(-50%,-190%) scale(2.5);opacity:0}
}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-flip{animation:vdcc-pro-door-flip .95s cubic-bezier(.23,.8,.25,1) forwards!important}
@keyframes vdcc-pro-door-flip{
  0%{transform:translate(-50%,-50%) perspective(600px) rotateX(0) rotateZ(0) scale(1);opacity:1}
  35%{transform:translate(-50%,-50%) perspective(600px) rotateX(190deg) rotateZ(-18deg) scale(1.45);opacity:1}
  75%{transform:translate(-50%,-50%) perspective(600px) rotateX(520deg) rotateZ(20deg) scale(1.35);opacity:1}
  100%{transform:translate(-50%,-50%) perspective(600px) rotateX(720deg) rotateZ(0) scale(.24);opacity:0}
}
@media(prefers-reduced-motion:reduce){
 .vdcc-calendar.vdcc-pro-snow .vdcc-scene::after,.vdcc-calendar.vdcc-pro-active .vdcc-door[class*="vdcc-pro-opening-"]{animation:none!important;will-change:auto}
}

/* Text-door riddle answers are hidden by native <details> until the reader opens them. */
.vdcc-modal-content .vdcc-pro-answer{border:1px solid rgba(146,97,37,.38);border-radius:9px;margin:16px 0;background:rgba(255,245,222,.28);overflow:hidden}
.vdcc-modal-content .vdcc-pro-answer>summary{display:list-item;cursor:pointer;font-weight:700;padding:12px 15px;line-height:1.4;list-style-position:inside;color:#5b3817}
.vdcc-modal-content .vdcc-pro-answer>summary:focus-visible{outline:3px solid #316eb9;outline-offset:-3px}
.vdcc-modal-content .vdcc-pro-answer[open]>summary{border-bottom:1px solid rgba(146,97,37,.24)}
.vdcc-modal-content .vdcc-pro-answer-content{padding:5px 16px 12px}
.vdcc-modal-content .vdcc-pro-answer-content p:last-child{margin-bottom:0}

/* PRO 0.1.6: image + text, including optional concealed answers. */
.vdcc-modal:has(.vdcc-pro-composite){width:min(820px,100%);padding:clamp(20px,3vw,32px)}
.vdcc-modal-content .vdcc-pro-composite{display:grid;grid-template-columns:minmax(0,43%) minmax(0,1fr);gap:clamp(12px,2.4vw,22px);align-items:start;text-align:left}
.vdcc-modal-content .vdcc-pro-composite-media{min-width:0;display:flex;justify-content:center;align-items:flex-start}
.vdcc-modal-content .vdcc-pro-composite-media .vdcc-modal-image{display:block;max-width:100%;max-height:min(52dvh,330px);width:auto;height:auto;object-fit:contain;margin:0 auto;border-radius:9px}
.vdcc-modal-content .vdcc-pro-composite-text{min-width:0;overflow-wrap:anywhere;font-size:clamp(14px,1.5vw,16px);line-height:1.45}
.vdcc-modal-content .vdcc-pro-composite-text p{margin:0 0 10px!important;line-height:1.45}
.vdcc-modal-content .vdcc-pro-composite-text .vdcc-pro-answer{margin:10px 0}
.vdcc-modal:has(.vdcc-pro-composite) .vdcc-modal-title{font-size:clamp(20px,3.2vw,28px)!important;margin-bottom:14px!important}
@media(max-width:600px){
  .vdcc-modal:has(.vdcc-pro-composite){padding:28px 15px 17px}
  .vdcc-modal-content .vdcc-pro-composite{grid-template-columns:1fr;gap:10px;text-align:left}
  .vdcc-modal-content .vdcc-pro-composite-media .vdcc-modal-image{max-height:min(23dvh,170px);max-width:min(68vw,220px)}
  .vdcc-modal-content .vdcc-pro-composite-text{text-align:center;font-size:14px}
  .vdcc-modal:has(.vdcc-pro-composite) .vdcc-modal-title{font-size:20px!important;margin-bottom:8px!important}
  .vdcc-modal-content .vdcc-pro-composite-text .vdcc-pro-answer{text-align:left}
}
