/* The 5 premium designs, from design/Premium.dc.html (scoped under .pc).
 * Each door opens with its own animation. The animation class .anim is added
 * only at the moment a door is opened; already open doors just get .open.
 * The card is drawn at 300x540 and scaled to the screen by premium-designs.js. */
.pc{width:300px;height:540px;border-radius:26px;overflow:hidden;position:relative;box-sizing:border-box;padding:22px 16px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 50px -24px rgba(16,27,59,0.55)}
.pc .g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;position:relative}
.pc .dbtn{border:0;padding:0;margin:0;cursor:pointer;font:inherit;background:none}
@media (prefers-reduced-motion:reduce){.pc .anim,.pc .anim *,.pc .anim::before,.pc .anim::after,.pc .smoke span,.pc .lhd.today svg{animation:none !important}}
/* 1. Photo Reveal */
.pc.rv{background:#1D2440}
.pc .rv-photo{position:absolute;inset:0;width:100%;height:100%}
.pc .rv-ttl{position:relative;margin:0;font:800 26px 'Playfair Display',serif;color:#FFFFFF;text-shadow:0 2px 10px rgba(0,0,0,0.35)}
.pc .rvd{aspect-ratio:1/1;border-radius:12px;display:flex;align-items:center;justify-content:center;font:800 20px 'Playfair Display',serif;color:#FFFFFF;text-shadow:0 1px 6px rgba(0,0,0,0.4);background:rgba(255,255,255,0.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.55)}
.pc .rvd.open{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;color:transparent;text-shadow:none}
.pc .rvd.anim{animation:unfrost 1s ease forwards}
@keyframes unfrost{from{background:rgba(255,255,255,0.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:rgba(255,255,255,0.55);color:#FFFFFF}to{background:rgba(255,255,255,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);border-color:rgba(255,255,255,0);color:rgba(255,255,255,0)}}
.pc .rvd.today{box-shadow:0 0 0 2px #FFFFFF,0 0 20px rgba(255,236,200,0.75)}
.pc .rv-tag{position:relative;margin:auto 0 0;align-self:flex-start;font:600 12px 'Manrope',sans-serif;color:#FFFFFF;background:rgba(11,22,64,0.55);padding:5px 9px;border-radius:999px}
/* 2. Advent House */
.pc.vg{background-color:#0E1836;background-image:radial-gradient(rgba(255,255,255,0.75) 1px,transparent 1.5px),radial-gradient(rgba(255,255,255,0.4) 1px,transparent 1.5px);background-size:46px 46px,29px 29px;background-position:0 0,13px 17px}
.pc .vg-ttl{position:relative;margin:0;font:italic 700 30px 'Playfair Display',serif;color:#FFE9A8}
.pc .vg-moon{position:absolute;right:24px;top:24px;width:40px;height:40px;border-radius:50%;background:#FFF3C9;box-shadow:0 0 30px rgba(255,236,170,0.6)}
.pc .hs{position:absolute;left:50%;bottom:40px;width:240px;margin-left:-120px;z-index:0}
.pc .roofwrap{position:relative;height:96px;margin:0 -12px}
.pc .roof-snow{position:absolute;inset:0;background:#EEF3FA;clip-path:polygon(50% 0,100% 100%,0 100%)}
.pc .roof{position:absolute;left:8px;right:8px;top:11px;bottom:0;background:#6E2626;clip-path:polygon(50% 0,100% 100%,0 100%)}
.pc .chim{position:absolute;z-index:-1;left:176px;top:-30px;width:20px;height:84px;background:#5A1F1F;box-shadow:inset 0 6px 0 #EEF3FA}
.pc .smoke{position:absolute;left:178px;top:-44px;width:20px;height:20px}
.pc .smoke span{position:absolute;left:2px;top:0;width:14px;height:14px;border-radius:50%;background:rgba(220,228,245,0.5);animation:smoke 4s ease-out infinite}
.pc .smoke span:nth-child(2){animation-delay:1.3s}
.pc .smoke span:nth-child(3){animation-delay:2.6s}
@keyframes smoke{0%{transform:translate(0,0) scale(0.6);opacity:0}20%{opacity:0.8}100%{transform:translate(-14px,-46px) scale(1.8);opacity:0}} /* drifts left, away from the moon */
.pc .attic{position:absolute;left:50%;top:48px;margin-left:-23px}
.pc .body{background:#2E5E57;border-top:6px solid #F3E6C8;padding:14px 16px 0;position:relative}
.pc .garland{position:absolute;left:4px;right:4px;top:2px;height:8px;background:radial-gradient(circle,#FFD36B 2.4px,transparent 3px) 0 0/16px 8px repeat-x}
.pc .wgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pc .ground{display:flex;justify-content:center;align-items:flex-end;gap:16px;margin-top:12px}
.pc .ground .vw{width:42px}
.pc .vw{height:40px;border-radius:14px 14px 3px 3px;background:#16203F;border:3px solid #F3E6C8;border-bottom:5px solid #FFFFFF;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font:800 13px 'Playfair Display',serif;color:#C9D2EE}
.pc .vw.att{width:46px;height:38px;border-radius:14px 14px 3px 3px}
.pc .vw.open{background:radial-gradient(circle at 50% 60%,#FFF1B8,#FFC24A 75%);color:#6B3A10;box-shadow:0 0 18px rgba(255,200,90,0.9)}
.pc .vw.anim{animation:lighton 1.1s ease}
@keyframes lighton{0%{filter:brightness(0.25)}25%{filter:brightness(1.4)}40%{filter:brightness(0.5)}60%{filter:brightness(1.25)}100%{filter:brightness(1)}}
.pc .vw.today,.pc .hdoor.today{box-shadow:0 0 0 2px #FFE9A8,0 0 14px rgba(255,233,168,0.7)}
.pc .hdoor{position:relative;width:62px;height:72px;border-radius:31px 31px 2px 2px;background:#8E2430;border:3px solid #F3E6C8;border-bottom:0;box-sizing:border-box;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;font:800 14px 'Playfair Display',serif;color:#F3E6C8}
.pc .wreath{position:absolute;left:50%;top:12px;width:24px;height:24px;margin-left:-12px;border-radius:50%;border:5px solid #2F6B4F;box-sizing:border-box}
.pc .wreath::after{content:"";position:absolute;left:50%;bottom:-6px;width:8px;height:6px;margin-left:-4px;background:#C8323D;border-radius:2px}
.pc .hdoor.open{background:radial-gradient(circle at 50% 70%,#FFF1B8,#FFC24A 80%);color:#6B3A10;box-shadow:0 0 22px rgba(255,200,90,0.9)}
.pc .hdoor.anim{animation:lighton 1.1s ease}
.pc .vg-snow{position:absolute;left:0;right:0;bottom:0;height:44px;background:#EEF3FA;border-radius:60% 60% 0 0/18px 18px 0 0;z-index:1}
/* 3. Little Hearts */
.pc.lh{background-color:#FBF1EE;background-image:radial-gradient(rgba(201,72,91,0.10) 1.2px,transparent 1.6px);background-size:20px 20px}
.pc .lh-ttl{margin:0;font:italic 600 34px 'Playfair Display',serif;color:#9C2F43}
.pc .lhg{row-gap:10px}
.pc .lhd{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.pc .lhd svg{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);overflow:visible}
.pc .lhd path{fill:rgba(255,255,255,0.7);stroke:#C9485B;stroke-width:2.2;transition:fill .5s,stroke .5s}
.pc .lhd b{position:relative;margin-top:-4px;font:italic 600 19px 'Playfair Display',serif;color:#9C2F43}
.pc .lhd.open path{fill:#E8788A;stroke:#E8788A}
.pc .lhd.open b{color:#FFFFFF}
.pc .lhd.today path{stroke-width:3.2;fill:#FFFFFF}
.pc .lhd.today svg{animation:beat 1.6s ease-in-out infinite}
.pc .lhd.anim svg{animation:beatonce .7s ease}
.pc .lhd.anim::before,.pc .lhd.anim::after{content:"\2665";position:absolute;left:50%;top:10%;font-size:14px;color:#E8788A;opacity:0;animation:floatup 1.2s ease-out forwards;pointer-events:none}
.pc .lhd.anim::after{left:30%;font-size:10px;animation-delay:.15s;color:#C9485B}
@keyframes beat{0%,100%{transform:scale(1)}14%{transform:scale(1.08)}28%{transform:scale(1)}42%{transform:scale(1.05)}}
@keyframes beatonce{0%{transform:scale(1)}35%{transform:scale(1.22)}60%{transform:scale(0.95)}100%{transform:scale(1)}}
@keyframes floatup{0%{opacity:0;transform:translate(-50%,0)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-34px)}}
/* 4. Sealed Letters */
.pc.sl{background-color:#EFE6D6;background-image:radial-gradient(rgba(120,90,50,0.07) 1px,transparent 1px);background-size:6px 6px}
.pc .sl-ttl{margin:0;font:italic 700 30px 'Playfair Display',serif;color:#5B2A1C}
.pc .slg{row-gap:26px;margin-top:22px}
.pc .env{position:relative;height:46px}
.pc .env .back{position:absolute;inset:0;background:#E3D2B3;border-radius:4px}
.pc .env .letter{position:absolute;left:6px;right:6px;top:3px;height:38px;z-index:1;background:#FFFFFF;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,0.15);display:flex;justify-content:center;padding-top:3px;box-sizing:border-box;font:italic 700 13px 'Playfair Display',serif;color:#5B2A1C;opacity:0}
.pc .env .front{position:absolute;inset:0;z-index:2;background:#FBF6EC;border-radius:4px;clip-path:polygon(0 28%,50% 56%,100% 28%,100% 100%,0 100%)}
.pc .env .flap{position:absolute;left:0;right:0;top:0;height:56%;z-index:3;background:#F2E5CD;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center}
.pc .seal{position:absolute;z-index:4;left:50%;top:56%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:47% 53% 44% 56%/55% 45% 55% 45%;background:radial-gradient(circle at 35% 30%,#D9535C 0%,#A3202B 45%,#6A0D16 100%);box-shadow:0 2px 3px rgba(0,0,0,0.35),inset 0 -2px 3px rgba(0,0,0,0.35),inset 0 2px 2px rgba(255,255,255,0.25);display:flex;align-items:center;justify-content:center;font:italic 700 12px 'Playfair Display',serif;color:#F2C4B4;text-shadow:0 -1px 0 rgba(0,0,0,0.45)}
.pc .seal::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1.5px solid rgba(255,214,200,0.35);box-shadow:inset 0 1px 2px rgba(0,0,0,0.35)}
.pc .seal::after{content:"";position:absolute;right:-3px;bottom:2px;width:9px;height:8px;border-radius:50%;background:#8E1622}
.pc .env.open .flap{z-index:0;transform:perspective(220px) rotateX(180deg);filter:brightness(0.93)}
.pc .env.open .letter{opacity:1;transform:translateY(-33%)}
.pc .env.open .seal{opacity:0}
.pc .env.anim .flap{animation:flapup .55s ease .25s both}
.pc .env.anim .letter{animation:letterup .6s ease .7s both}
.pc .env.anim .seal{animation:sealbreak .5s ease forwards}
@keyframes flapup{from{z-index:3;transform:perspective(220px) rotateX(0);filter:brightness(1)}to{z-index:0;transform:perspective(220px) rotateX(180deg);filter:brightness(0.93)}}
@keyframes letterup{from{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(-33%)}}
@keyframes sealbreak{0%{opacity:1;transform:scale(1) rotate(0)}30%{opacity:1;transform:scale(1.2) rotate(-6deg)}100%{opacity:0;transform:translateY(22px) scale(0.5) rotate(40deg)}}
.pc .env.today .back{box-shadow:0 0 0 2px #A3202B,0 0 16px rgba(163,32,43,0.45)}
/* 5. Gift Boxes */
.pc.gb{background-color:#1A0E17;background-image:radial-gradient(rgba(242,215,138,0.35) 1px,transparent 1.5px),radial-gradient(circle at 50% 0%,#3D1F2E 0%,rgba(26,14,23,0) 70%);background-size:22px 22px,100% 100%}
.pc .gb-ttl{margin:0;font:italic 700 30px 'Playfair Display',serif;color:#E9CE8A}
.pc .gbg{row-gap:28px;margin-top:18px;column-gap:12px}
.pc .gift{position:relative;height:48px}
.pc .g-box{position:absolute;left:0;right:0;top:12px;bottom:0;border-radius:3px;overflow:hidden}
.pc .g-box::before{content:"";position:absolute;left:0;right:0;top:0;height:9px;background:rgba(0,0,0,0.45);opacity:0}
.pc .g-lid{position:absolute;left:-2px;right:-2px;top:4px;height:11px;border-radius:3px;box-shadow:0 3px 4px rgba(0,0,0,0.35);z-index:2}
.pc .g-rib{position:absolute;left:50%;top:4px;bottom:0;width:5px;margin-left:-2.5px;z-index:3}
.pc .g-bow{position:absolute;left:50%;top:-5px;width:24px;height:11px;margin-left:-12px;z-index:4}
.pc .lp{position:absolute;top:0;width:11px;height:9px;border-radius:50%;border:2.5px solid;box-sizing:border-box}
.pc .lp.l{left:0;transform:rotate(-18deg)}
.pc .lp.r{right:0;transform:rotate(18deg)}
.pc .knot{position:absolute;left:50%;top:2px;width:6px;height:6px;margin-left:-3px;border-radius:2px}
.pc .g-tag{position:absolute;right:3px;bottom:3px;z-index:3;padding:1px 6px;border-radius:3px;background:linear-gradient(180deg,#F7E3A3,#C9973E);color:#3A2410;font:italic 700 12px 'Playfair Display',serif;box-shadow:0 1px 2px rgba(0,0,0,0.4)}
.pc .g-glow{position:absolute;left:-6px;right:-6px;top:-10px;height:32px;z-index:1;background:radial-gradient(ellipse at 50% 90%,rgba(255,226,140,0.95),rgba(255,226,140,0) 70%);opacity:0;pointer-events:none}
.pc .c0 .g-box{background:linear-gradient(180deg,#2A7058,#174636)}
.pc .c0 .g-lid{background:linear-gradient(180deg,#348A6E,#1F5A46)}
.pc .c1 .g-box{background:linear-gradient(180deg,#8A2636,#5A1421)}
.pc .c1 .g-lid{background:linear-gradient(180deg,#A2344A,#6E1A2A)}
.pc .c2 .g-box{background:linear-gradient(180deg,#2A3F6E,#16223E)}
.pc .c2 .g-lid{background:linear-gradient(180deg,#3A5288,#1E2E52)}
.pc .c3 .g-box{background:linear-gradient(180deg,#E2CDA0,#B89B66)}
.pc .c3 .g-lid{background:linear-gradient(180deg,#F0DFB8,#C8AE7A)}
.pc .c0 .g-rib,.pc .c1 .g-rib{background:linear-gradient(90deg,#A8823A,#F2D78A,#A8823A)}
.pc .c0 .lp,.pc .c1 .lp{border-color:#D9B45A}
.pc .c0 .knot,.pc .c1 .knot{background:#E7C56E}
.pc .c2 .g-rib{background:linear-gradient(90deg,#8E97AA,#F1F3F8,#8E97AA)}
.pc .c2 .lp{border-color:#DDE2EC}
.pc .c2 .knot{background:#EEF1F6}
.pc .c3 .g-rib{background:linear-gradient(90deg,#5E1622,#B04456,#5E1622)}
.pc .c3 .lp{border-color:#8A2636}
.pc .c3 .knot{background:#9C2E40}
.pc .gift.open .g-lid,.pc .gift.open .g-bow{transform:translate(10px,-14px) rotate(14deg)}
.pc .gift.open .g-rib{opacity:0}
.pc .gift.open .g-glow{opacity:1}
.pc .gift.open .g-box::before{opacity:1}
.pc .gift.anim .g-lid,.pc .gift.anim .g-bow{animation:lidoff .7s cubic-bezier(.3,1.4,.5,1) both}
.pc .gift.anim .g-rib{animation:fadeout .4s ease both}
.pc .gift.anim .g-glow{animation:glowin .9s ease .2s both}
@keyframes lidoff{from{transform:translate(0,0) rotate(0)}to{transform:translate(10px,-14px) rotate(14deg)}}
@keyframes fadeout{from{opacity:1}to{opacity:0}}
@keyframes glowin{0%{opacity:0;transform:scale(0.6)}60%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
.pc .gift.today .g-tag{box-shadow:0 0 0 2px #FFF1C2,0 0 12px rgba(255,226,140,0.9)}

/* --- additions for the live site ------------------------------------------ */
.pc{flex:0 0 auto;transform-origin:top left}
.pc .rv-photo{object-fit:cover;display:block}
.pc .rv-photo.is-blur{filter:blur(6px);transform:scale(1.08)}
.pc .rvd{position:relative;overflow:hidden}
.pc .rvd .tile{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;border-radius:inherit;pointer-events:none}
.pc .rvd.open .tile{opacity:1}
.pc .rvd.anim .tile{animation:tilein 1s ease forwards}
.pc .rvd .num{position:relative}
@keyframes tilein{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}
.pc .dbtn:focus-visible{outline:3px solid #FFFFFF;outline-offset:2px;box-shadow:0 0 0 6px rgba(16,27,59,0.6)}
.pc.sl .dbtn:focus-visible,.pc.sl .env:focus-visible{outline-color:#5B2A1C}
.pc .env,.pc .gift{width:100%}
.pc .vw,.pc .hdoor{min-width:0}
.pc .rv-ttl,.pc .vg-ttl,.pc .lh-ttl,.pc .sl-ttl,.pc .gb-ttl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.pc .vg-ttl{max-width:186px} /* stops before the chimney */
.pscale{position:relative;width:100%;overflow:visible}
.pscale > .pc{position:absolute;left:0;top:0}
.pc .rv-tag{z-index:1}

/* page colours around each premium calendar (recipient page, sheets) */
[data-theme="reveal"]{--t-bg:#1D2440;--t-text:#FFFFFF;--t-muted:#DDE3F0;--t-accent:#E2C275;--t-font:'Playfair Display',Georgia,serif;--t-font-style:normal;--t-font-weight:800}
[data-theme="house"]{--t-bg:#0E1836;--t-text:#FFE9A8;--t-muted:#DDE3F0;--t-accent:#FFD36B;--t-font:'Playfair Display',Georgia,serif;--t-font-style:italic;--t-font-weight:700}
[data-theme="hearts"]{--t-bg:#FBF1EE;--t-text:#9C2F43;--t-muted:#6E2333;--t-accent:#C9485B;--t-font:'Playfair Display',Georgia,serif;--t-font-style:italic;--t-font-weight:600}
[data-theme="letters"]{--t-bg:#EFE6D6;--t-text:#5B2A1C;--t-muted:#4A2A1E;--t-accent:#A3202B;--t-font:'Playfair Display',Georgia,serif;--t-font-style:italic;--t-font-weight:700}
[data-theme="gifts"]{--t-bg:#1A0E17;--t-text:#E9CE8A;--t-muted:#E8DCCF;--t-accent:#D9B45A;--t-font:'Playfair Display',Georgia,serif;--t-font-style:italic;--t-font-weight:700}
.tpanel[data-theme="reveal"]{background:#1D2440}
.tpanel[data-theme="house"]{background:#0E1836}
.tpanel[data-theme="hearts"]{background-color:#FBF1EE;background-image:radial-gradient(rgba(201,72,91,0.10) 1.2px,transparent 1.6px);background-size:20px 20px}
.tpanel[data-theme="letters"]{background:#EFE6D6}
.tpanel[data-theme="gifts"]{background:#1A0E17}
/* small swatch door for the design picker */
[data-theme="reveal"] .door{background:#3D5688;border:1px solid rgba(255,255,255,0.7);border-radius:6px;color:#FFFFFF;font-family:'Playfair Display',serif;font-weight:800}
[data-theme="house"] .door{background:#FFD36B;border:2px solid #F3E6C8;border-radius:9px 9px 2px 2px;color:#6B3A10;font-family:'Playfair Display',serif;font-weight:800}
[data-theme="hearts"] .door{background:#C24760;border:0;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;color:#FFFFFF;font-family:'Playfair Display',serif;font-style:italic;font-weight:700}
[data-theme="letters"] .door{background:radial-gradient(circle at 35% 30%,#D9535C,#A3202B 45%,#6A0D16);border:0;border-radius:47% 53% 44% 56%/55% 45% 55% 45%;color:#F2C4B4;font-family:'Playfair Display',serif;font-style:italic;font-weight:700}
[data-theme="gifts"] .door{background:linear-gradient(180deg,#8A2636,#5A1421);border:0;border-radius:4px;box-shadow:inset 0 0 0 3px #D9B45A;color:#F7E3A3;font-family:'Playfair Display',serif;font-style:italic;font-weight:700}
.swatch.tpanel[data-theme="reveal"]{background:linear-gradient(180deg,#1B2E5E,#9DB3DD 70%,#EEF4FB)}

/* design thumbnails (landing showcase) */
.thumb{flex:0 0 auto;width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb .door{width:24px;height:28px;font-size:11px;border-width:1px}
.th-reveal{background:linear-gradient(180deg,#2B3A78,#E9806A 60%,#F7C873)}
.th-reveal .door{background:rgba(255,255,255,0.35);border:1px solid rgba(255,255,255,0.7);border-radius:6px;color:#FFFFFF;font-family:'Playfair Display',serif;font-weight:800}
.th-house{background:#0E1836}
.th-house .door{background:#FFD36B;border:2px solid #F3E6C8;border-radius:9px 9px 2px 2px;color:#6B3A10;font-family:'Playfair Display',serif;font-weight:800;box-shadow:0 0 10px rgba(255,200,90,0.8)}
.th-hearts{background:#FBF1EE}
.th-hearts .door{width:26px;height:26px;background:#E8788A;border:0;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;color:#FFFFFF;font-family:'Playfair Display',serif;font-style:italic;font-weight:700;font-size:12px}
.th-letters{background:#EFE6D6}
.th-letters .door{width:26px;height:26px;border-radius:47% 53% 44% 56%/55% 45% 55% 45%;background:radial-gradient(circle at 35% 30%,#D9535C,#A3202B 45%,#6A0D16);border:0;color:#F2C4B4;font-family:'Playfair Display',serif;font-style:italic;font-weight:700}
.th-gifts{background:#1A0E17}
.th-gifts .door{background:linear-gradient(180deg,#8A2636,#5A1421);border:0;border-radius:3px;color:#F7E3A3;font-family:'Playfair Display',serif;font-style:italic;font-weight:700}

@media (prefers-reduced-motion:reduce){.pc .rvd.anim .tile{animation:none !important;opacity:1}}
/* "Today" on the premium designs: a small tag under today's door, gone once it opens. */
.pc .vw{position:relative}
.pc .today-tag{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);z-index:3;white-space:nowrap;font:700 9px/1 'Manrope',sans-serif;letter-spacing:0.02em;text-transform:uppercase;color:#18213A;background:#FFE9A8;padding:4px 7px;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,0.35);pointer-events:none}
.pc .rvd .today-tag{bottom:5px}
.pc .lhd .today-tag{bottom:-4px;background:#C2374A;color:#FFFFFF}
.pc .env .today-tag{bottom:-8px;background:#A3202B;color:#FFFFFF}
.pc .gift .today-tag{bottom:-8px}
.pc .dbtn:not(.today) .today-tag{display:none}
/* Earlier doors that haven't been opened yet ("avail"): closed, with a softer glow than today's. */
.pc .rvd.avail{box-shadow:0 0 0 1.5px rgba(255,255,255,0.9),0 0 12px rgba(255,236,200,0.55)}
.pc .vw.avail,.pc .hdoor.avail{box-shadow:0 0 0 1.5px #FFE9A8,0 0 9px rgba(255,233,168,0.5)}
.pc .lhd.avail svg{filter:drop-shadow(0 0 5px rgba(194,55,74,0.55))}
.pc .env.avail .back{box-shadow:0 0 0 1.5px rgba(163,32,43,0.75),0 0 10px rgba(163,32,43,0.35)}
.pc .gift.avail .g-tag{box-shadow:0 0 0 1.5px #FFF1C2,0 0 8px rgba(255,226,140,0.7)}
.pc .dbtn.avail{animation:pc-avail 2.6s ease-in-out infinite}
@keyframes pc-avail{50%{opacity:0.82}}
@media (prefers-reduced-motion:reduce){.pc .dbtn.avail{animation:none}}
