/* Prickly's Advent */
.ad-main{max-width:1060px;margin:0 auto;padding:30px 22px 90px;color:var(--text)}
.ad-head{text-align:center;margin-bottom:36px}
.ad-kick{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.ad-head h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,7vw,72px);line-height:1.04;margin:0 0 14px;color:#FFF6DC}
.ad-head h1 em{font-style:italic;color:var(--honey)}
.ad-sub{max-width:540px;margin:0 auto;font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--mist)}
.ad-status{display:inline-block;margin-top:18px;padding:8px 22px;border:1px solid rgba(232,200,136,.5);border-radius:999px;background:rgba(0,0,0,.28);font-family:var(--hand);font-size:26px;color:var(--honey)}
.ad-preview{max-width:560px;margin:0 auto 22px;padding:10px 16px;border:1px dashed rgba(255,150,50,.65);border-radius:12px;text-align:center;font-family:var(--sans);font-size:13px;color:#FFD9A8}
.ad-preview[hidden]{display:none}

.ad-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}
@media(max-width:900px){.ad-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:520px){.ad-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
.ad-door{position:relative;display:block;width:100%;aspect-ratio:3/4;padding:0;margin:0;border:0;background:none;cursor:pointer;perspective:800px;color:inherit;font-family:var(--sans);-webkit-tap-highlight-color:transparent}
.ad-door:focus-visible{outline:2px dashed #E8C888;outline-offset:4px;border-radius:12px}
.ad-inside{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:16% 7% 7%;border-radius:12px 12px 5px 5px;overflow:hidden;
  background:radial-gradient(ellipse 80% 55% at 50% 30%,rgba(255,205,100,.85),transparent 70%),linear-gradient(180deg,#8A4A14 0%,#5A2E0C 55%,#2E1706 100%);box-shadow:inset 0 0 24px rgba(0,0,0,.5)}
.ad-mark{font-size:26px;line-height:1;color:#FFF6C8;text-shadow:0 0 14px #FFB43A}
.ad-mini{margin-top:auto;font-size:11px;line-height:1.25;font-weight:600;text-align:center;color:#FFF6DC}
.ad-front{position:absolute;inset:0;display:block;border-radius:12px 12px 5px 5px;transform-origin:0 50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  background:linear-gradient(165deg,var(--tint,#5A3A22) 0%,#1a120c 130%);box-shadow:0 10px 22px rgba(0,0,0,.45),inset 0 0 0 1px rgba(232,200,136,.28);transition:transform .55s cubic-bezier(.3,1.15,.5,1)}
.ad-front::before{content:'';position:absolute;inset:9% 10% 11%;border:2px solid rgba(255,230,170,.16);border-radius:8px}
.ad-num{position:absolute;top:13%;left:50%;transform:translateX(-50%);min-width:42px;padding:3px 9px;border-radius:999px;text-align:center;font-family:var(--display);font-size:24px;line-height:1.25;color:#2A2005;
  background:radial-gradient(circle at 35% 30%,#FFF1B8,#E8C060 60%,#B98B2E);box-shadow:0 3px 8px rgba(0,0,0,.45)}
.ad-knob{position:absolute;right:15%;top:56%;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFF1B8,#B98B2E);box-shadow:0 2px 4px rgba(0,0,0,.5)}
.ad-door.open .ad-front{transform:rotateY(-112deg)}
.ad-door.locked .ad-front{filter:saturate(.65) brightness(.78)}
.ad-door.locked{cursor:not-allowed}
.ad-door.ready{animation:adGlow 2.8s ease-in-out infinite}
.ad-door.today{animation:adGlowToday 1.8s ease-in-out infinite}
.ad-door.today .ad-front::after{content:'Today';position:absolute;bottom:9%;left:0;right:0;text-align:center;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#FFE9A8}
@keyframes adGlow{0%,100%{filter:drop-shadow(0 0 0 rgba(242,196,90,0))}50%{filter:drop-shadow(0 0 10px rgba(242,196,90,.5))}}
@keyframes adGlowToday{0%,100%{filter:drop-shadow(0 0 6px rgba(242,196,90,.5))}50%{filter:drop-shadow(0 0 18px rgba(255,200,80,.95))}}
.ad-door.shake{animation:adShake .45s}
@keyframes adShake{0%,100%{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}

.ad-cards{display:grid;gap:18px;margin-top:44px}
.ad-note{padding:28px 26px;text-align:center;border:1px solid rgba(232,200,136,.4);border-radius:20px;background:linear-gradient(165deg,rgba(92,49,45,.5),rgba(24,52,37,.72))}
.ad-note[hidden]{display:none}
.ad-note h2{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(24px,4vw,32px);color:#FFF6DC;margin:0 0 8px}
.ad-note p{max-width:480px;margin:0 auto 18px;font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--mist)}
.ad-btn{display:inline-block;padding:14px 26px;border:0;border-radius:999px;background:linear-gradient(160deg,#F7DE6B,#EFC53C);color:#3F3208;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;text-decoration:none;cursor:pointer;box-shadow:0 6px 20px rgba(240,200,60,.22)}

/* what is behind a door */
.ad-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .22s ease}
.ad-modal[hidden]{display:none}
.ad-modal.show{opacity:1}
.ad-back{position:absolute;inset:0;background:rgba(5,13,9,.82);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.ad-card{position:relative;width:min(500px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:38px 32px 24px;border-radius:22px;text-align:center;border:1px solid rgba(232,200,136,.5);
  background:radial-gradient(ellipse 80% 45% at 50% 0%,rgba(255,170,70,.2),transparent 70%),linear-gradient(165deg,#1F4033,#142D21);box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 60px rgba(255,170,70,.14);
  transform:translateY(16px) scale(.97);transition:transform .35s cubic-bezier(.34,1.4,.64,1)}
.ad-modal.show .ad-card{transform:none}
.ad-x{position:absolute;right:12px;top:10px;width:36px;height:36px;border:0;border-radius:50%;background:rgba(0,0,0,.28);color:var(--gold);font-size:26px;line-height:1;cursor:pointer}
.ad-kind{margin:0 0 8px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
.ad-title{margin:0 0 14px;font-family:var(--display);font-weight:400;font-size:clamp(28px,5.5vw,38px);line-height:1.1;color:#FFF6DC}
.ad-text{margin:0 0 18px;font-family:var(--sans);font-size:17px;line-height:1.75;color:var(--text)}
.ad-extra{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:8px}
.ad-extra:empty{display:none}
.ad-extra audio{width:100%;color-scheme:dark}
.ad-answer{width:100%;border:1px dashed rgba(232,200,136,.5);border-radius:12px;background:rgba(0,0,0,.25);text-align:left}
.ad-answer summary{cursor:pointer;padding:12px 16px;font-family:var(--sans);font-size:14px;color:var(--gold)}
.ad-answer p{margin:0;padding:0 16px 14px;font-family:var(--hand);font-size:28px;color:#FFF6DC}
.ad-link{display:inline-block;padding:12px 24px;border:0;border-radius:999px;background:linear-gradient(160deg,#F7DE6B,#EFC53C);color:#3F3208;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;text-decoration:none;cursor:pointer}
.ad-link-ghost{background:transparent;color:var(--gold);border:1px solid rgba(232,200,136,.55)}
.ad-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:16px;border-top:1px dashed rgba(232,200,136,.25)}
.ad-daynum{font-family:var(--hand);font-size:22px;color:var(--gold)}
.ad-next{padding:10px 20px;border:1px solid rgba(232,200,136,.55);border-radius:999px;background:transparent;color:var(--gold);font-family:var(--sans);font-size:13px;cursor:pointer}
.ad-next:hover,.ad-x:hover{box-shadow:none}
.ad-door:hover{box-shadow:none}
@media(prefers-reduced-motion:reduce){.ad-front,.ad-card,.ad-modal{transition:none}.ad-door.ready,.ad-door.today,.ad-door.shake{animation:none}}

/* the snowman card, and a gift behind every door */
.ad-snow{display:grid;grid-template-columns:200px minmax(0,1fr);gap:26px;align-items:center;max-width:780px;margin:0 auto 38px;padding:22px 28px;border:1px solid rgba(232,200,136,.4);border-radius:22px;background:linear-gradient(165deg,rgba(92,49,45,.45),rgba(24,52,37,.75));box-shadow:0 18px 44px rgba(0,0,0,.35)}
.ad-snow[hidden]{display:none}
.ad-snow-art{border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#12303A,#0E1F17)}
.ad-snow-art svg{display:block;width:100%;height:auto}
.ad-snow-text h2{margin:0 0 8px;font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(24px,3.6vw,32px);color:#FFF6DC}
.ad-snow-text p{margin:0 0 16px;font-family:var(--sans);font-size:15.5px;line-height:1.7;color:var(--mist)}
@media(max-width:620px){.ad-snow{grid-template-columns:1fr;text-align:center}.ad-snow-art{max-width:200px;margin:0 auto}}
.ad-gift{display:flex;align-items:center;gap:14px;width:100%;margin-top:4px;padding:12px 14px;border:1px dashed rgba(232,200,136,.5);border-radius:14px;background:rgba(0,0,0,.22);text-align:left;flex-wrap:wrap}
.ad-gift-art{flex:0 0 64px;height:56px;border-radius:10px;background:linear-gradient(165deg,#173A4A,#10242F);display:flex;align-items:center;justify-content:center}
.ad-gift-art svg{display:block;width:100%;height:100%}
.ad-gift-text{display:flex;flex-direction:column;flex:1 1 120px;min-width:0}
.ad-gift-kick{font-family:var(--sans);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold)}
.ad-gift-name{font-family:var(--display);font-size:19px;color:#FFF6DC}
.ad-link-small{padding:9px 16px;font-size:11px}
