.advent-calendar{background:#ece2d1;padding:85px 0 65px;color:#263c33}
.calendar-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:end;margin-bottom:30px}
.calendar-heading h2{font:400 clamp(36px,4vw,60px)/1.12 var(--serif);margin:15px 0}.calendar-heading h2 em{color:#8b4149}
.calendar-heading>p{font-size:13px;line-height:1.9;max-width:340px}.calendar-preview{border-block:1px solid #ad947d75;padding:13px 0;display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:11px;line-height:1.6}.calendar-preview strong{color:#7b3d45}.calendar-preview span{flex-basis:100%}.calendar-preview select{font:inherit;color:#263c33;background:#fff8eb;border:1px solid #a28b70;padding:7px}.calendar-status{text-align:center;font-size:12px;letter-spacing:.03em;margin:26px 0 0}
.calendar-house{max-width:920px;margin:0 auto;position:relative;padding-top:85px;filter:drop-shadow(0 16px 13px #5a392e22)}
.calendar-roof{height:35px;position:relative;background:#4e6650;border-radius:55% 23% 0 0;transform:rotate(-1deg);margin:0 8px -2px;border-top:7px solid #b0a880}.calendar-roofline{position:absolute;left:23%;right:23%;top:6px;text-align:center;font-size:9px;letter-spacing:.2em;color:#fff0c7}.calendar-tower{position:absolute;bottom:0;width:70px;height:80px;background:#b16c72;border:4px solid #e4b29b;border-bottom:0;border-radius:50% 50% 0 0;text-align:center;color:#fff0b7;font-size:25px;padding-top:30px;box-sizing:border-box}.calendar-tower:before{content:'';position:absolute;left:8px;right:8px;top:-29px;height:35px;border-radius:50% 50% 12% 12%;background:linear-gradient(100deg,#9c7134,#f5d68b,#aa7b37);border-bottom:5px solid #344b3f}.tower-left{left:8%;transform:rotate(-4deg)}.tower-right{right:8%;height:100px;transform:rotate(3deg)}
.calendar-windows{position:relative;background:linear-gradient(100deg,#bd7f80,#cf9995 35%,#bc7f83 70%,#dcaaa0);border:8px solid #a96870;border-top:12px solid #e5b2a3;border-radius:20px 38px 7px 12px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:24px 18px;padding:35px 28px 30px;box-shadow:inset 0 0 40px #84485855}
.calendar-door{position:relative;aspect-ratio:.78;min-width:44px;min-height:60px;border:5px solid #eee1bd;border-bottom-width:8px;border-radius:27% 27% 5% 8%;background:#514c3e;cursor:pointer;color:#f7e6ba;perspective:500px;padding:0;isolation:isolate;box-shadow:0 3px 0 #8b5559,0 6px 9px #653d4144;transform:rotate(var(--lean,0deg))}
.calendar-door:nth-child(3n){--lean:3deg;border-color:#dfc498}.calendar-door:nth-child(4n){--lean:-3deg;border-radius:10% 25% 4% 8%}.calendar-door:before,.calendar-door:after{content:'';position:absolute;inset:0 50% 0 0;background:repeating-linear-gradient(90deg,#345246 0 8px,#2b443a 8px 10px);border:1px solid #baaa7b;transform-origin:left;transition:transform .65s ease;z-index:1}.calendar-door:after{inset:0 0 0 50%;transform-origin:right}.calendar-door>span{position:relative;z-index:2;font:italic 27px var(--serif);text-shadow:0 2px 4px #152a22;transition:opacity .3s}.calendar-door small{position:absolute;bottom:6px;left:0;right:0;z-index:2;font:8px var(--sans);letter-spacing:.06em}.calendar-door[aria-disabled=true]{cursor:default;filter:saturate(.65)}.calendar-door[aria-disabled=true]>span{opacity:.55}.calendar-door.today{background:#f9cc6b;box-shadow:0 0 27px #fff1b6,0 0 4px 3px #f2d397}.calendar-door.today:before,.calendar-door.today:after{background:repeating-linear-gradient(90deg,#946d34 0 8px,#77552a 8px 10px)}.calendar-door.opened:before{transform:rotateY(-105deg)}.calendar-door.opened:after{transform:rotateY(105deg)}.calendar-door.opened>span{opacity:.45}.calendar-door.opened{background:radial-gradient(ellipse at bottom,#fff7cc,#d6a84e)}.calendar-door:focus-visible{outline:3px solid #263c33;outline-offset:6px}.calendar-ground{padding:18px;text-align:center;background:#52664e;color:#f2e6c4;font-size:9px;letter-spacing:.23em;border-radius:0 0 35% 8%}.calendar-footnote{font-size:10px;line-height:1.8;color:#766c5d;max-width:700px;margin:28px auto 0;text-align:center}
.calendar-dialog{box-sizing:border-box;background:#fff7e9;color:#253b32;border:1px solid #c8ab7d;width:min(92vw,530px);max-height:85vh;padding:40px;box-shadow:0 20px 90px #0007}.calendar-dialog::backdrop{background:#10251ed9;backdrop-filter:blur(5px)}.calendar-close{position:absolute;top:8px;right:10px;width:44px;height:44px;border:0;background:none;color:#253b32;font-size:30px;cursor:pointer}.calendar-dialog h3{font:400 35px/1.15 var(--serif);margin:15px 0 22px}.calendar-dialog>p:not(.eyebrow){font-size:14px;line-height:1.8}.calendar-dialog img{max-width:100%;max-height:38vh;object-fit:contain;display:block;margin:auto}.calendar-dialog img[hidden]{display:none}.calendar-dialog a{color:#853d49;font-size:13px;display:inline-block;padding:12px 0}.calendar-draft-note{border-top:1px solid #b8a58a;padding-top:12px;color:#81664c;font-size:10px!important}
@media(max-width:700px){.advent-calendar{padding:48px 0}.calendar-heading{grid-template-columns:1fr;gap:5px}.calendar-windows{grid-template-columns:repeat(4,minmax(0,1fr));gap:21px 13px;padding:24px 15px}.calendar-door{aspect-ratio:.85}.calendar-roofline{font-size:7px;left:27%;right:27%;top:8px;letter-spacing:.08em}.calendar-tower{width:46px;height:67px}.tower-right{height:83px}.calendar-dialog{padding:35px 25px}.calendar-dialog h3{font-size:29px}}
@media(prefers-reduced-motion:reduce){.calendar-door:before,.calendar-door:after,.calendar-door>span{transition:none}}
