*,:before,:after{box-sizing:border-box}html{--bg-veil:55%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;color:var(--color-text);font-family:var(--font-body);background-color:var(--color-bg);background-image:radial-gradient(ellipse 120% 60% at 50% 0%, var(--bg-glow,var(--color-bg-glow)) 0%, transparent 65%), radial-gradient(ellipse 90% 50% at 50% 110%, var(--bg-glow,var(--color-bg-glow)) 0%, transparent 70%),  linear-gradient(color-mix(in srgb, var(--bg-veil-color,var(--color-bg)) var(--bg-veil), transparent), color-mix(in srgb, var(--bg-veil-color,var(--color-bg)) var(--bg-veil), transparent)), var(--bg-image);background-size:cover;background-position:center, center, center, var(--bg-pos,center);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;font-size:1rem;line-height:1.5;position:relative;overflow-x:hidden}html[data-glass=on]{--bg-veil:12%}html[data-glass=on] body:before,html[data-veil=photo] body:before{opacity:.35}html[data-veil=none] body:before{opacity:0}body:before{content:"";pointer-events:none;background:radial-gradient(ellipse at center, transparent 55%, var(--color-bg-deep) 130%);opacity:.8;z-index:0;position:fixed;top:0;bottom:0;left:0;right:0}.effects{width:100%;height:100%;pointer-events:none;z-index:1;height:100lvh;position:fixed;top:0;bottom:auto;left:0;right:0}.horizon{pointer-events:none;z-index:0;width:100%;height:clamp(90px,20vh,190px);position:absolute;bottom:0;left:0}.horizon__back{fill:color-mix(in srgb, var(--color-bg-glow) 45%, var(--color-bg-deep));opacity:.75}.horizon__front{fill:var(--color-bg-deep)}.app{z-index:2;width:100%;max-width:1400px;padding:max(2.5rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));margin:0 auto;position:relative}@media (min-width:700px){.app{padding-inline-start:2rem;padding-inline-end:2rem;padding-top:clamp(1.25rem,5vh,3.5rem)}}.fit-screen body{height:100vh;height:100dvh;overflow:hidden}.fit-screen .app{padding-bottom:clamp(1rem,3.5vh,2.5rem)}.effects-toggle{top:max(.75rem, env(safe-area-inset-top));right:max(.75rem, env(safe-area-inset-right));z-index:10;border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);width:44px;height:44px;color:var(--color-accent);background:color-mix(in srgb, var(--color-bg) 70%, transparent);-webkit-backdrop-filter:blur(6px);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:opacity .2s,transform .2s;display:grid;position:fixed}.effects-toggle[hidden]{display:none}.effects-toggle svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.effects-toggle[aria-pressed=false]{opacity:.55}.effects-toggle[aria-pressed=false]:after{content:"";background:currentColor;width:28px;height:1.6px;position:absolute;transform:rotate(-45deg)}.effects-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media (hover:hover){.effects-toggle:hover{transform:rotate(30deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.calendar-header{text-align:center;max-width:64rem;margin:0 auto clamp(1.1rem,4vh,2rem)}.calendar-title{font-family:var(--font-heading);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:break-word;text-shadow:0 0 40px color-mix(in srgb, var(--color-accent) 35%, transparent);margin:0;font-size:clamp(2.2rem,min(11vw,9vh),4.75rem);font-weight:600;line-height:1.02}.calendar-greeting{max-width:28rem;color:var(--color-text-soft);text-wrap:balance;margin:clamp(.4rem,1.6vh,.9rem) auto 0;font-size:clamp(1rem,3.8vw,1.2rem)}.calendar-header:has(.is-editable){position:relative}.is-editable{outline-offset:4px;cursor:pointer;border-radius:10px;outline:2px dashed #0000;transition:outline-color .15s}.is-editable:hover,.is-editable.is-edit-open{outline-color:color-mix(in srgb, var(--color-text) 45%, transparent)}.is-editable:focus-visible{outline-color:color-mix(in srgb, var(--color-text) 45%, transparent)}.header-edit-menu{z-index:20;white-space:nowrap;background:#fffdf8;border-radius:999px;gap:.5rem;padding:.5rem;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000047}.header-edit-menu[hidden]{display:none}.header-edit-menu__item{color:#1f2a24;min-height:48px;font:700 1.1rem/1 var(--font-body);cursor:pointer;background:0 0;border:1px solid #c9c2b3;border-radius:999px;padding:0 1.3rem}.header-edit-menu__item:hover{color:#fffdf8;background:#1f2a24}.header-edit-menu__item:focus-visible{color:#fffdf8;background:#1f2a24}.door-grid{grid-template-columns:repeat(var(--cols,4), var(--cell,80px));grid-auto-rows:var(--cell,80px);gap:var(--gap,10px);justify-content:center;margin:0;padding:0;list-style:none;display:grid}.door-slot{min-width:0;position:relative}.door-slot--wide{--span-w:2;grid-column-end:span 2}.door-slot--tall{grid-row-end:span 2}.door-slot--large{--span-w:2;grid-row-end:span 2;grid-column-end:span 2}.door-grid--enter .door-slot{animation:.6s cubic-bezier(.2,.7,.2,1) both door-enter;animation-delay:var(--enter-delay,0s)}@keyframes door-enter{0%{opacity:0;transform:translateY(12px)scale(.96)}}:root{--radius:14px}:root[data-shape=square]{--radius:3px}:root[data-shape=round]{--radius:50%}.door{--pattern:none;--pattern-size:auto;--door-image:none;border-radius:var(--radius);width:100%;height:100%;color:var(--door-number);font:inherit;cursor:pointer;perspective:calc(var(--cell,100px) * var(--span-w,1) * 7);-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0;transition:transform .35s cubic-bezier(.2,.7,.2,1);display:block;position:relative;container-type:size}.door__leaf{border-radius:var(--radius);transform-origin:0;will-change:transform;transition:transform .9s cubic-bezier(.25,.85,.25,1);position:absolute;top:0;bottom:0;left:0;right:0}.door__front{border-radius:inherit;isolation:isolate;background-color:var(--door-color);background-image:var(--pattern), linear-gradient(155deg, var(--door-color-light) 0%, var(--door-color) 45%, var(--door-color-dark) 100%);background-size:var(--pattern-size), cover;place-items:center;transition:box-shadow .35s;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 1px #ffffff24,inset 0 -2px #0000002e,0 1px 2px #00000059,0 10px 22px -12px #000000bf}.door__front:after{content:"";border-radius:inherit;pointer-events:none;z-index:-1;opacity:.22;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;top:0;bottom:0;left:0;right:0}.door--image .door__front{background-image:radial-gradient(circle at 50% 50%, #00000061, #0000001f 70%), var(--door-image);background-size:cover;background-position:center, var(--door-image-pos,center)}.door__photo{z-index:-2;border-radius:inherit;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.door__photo-image{left:calc(var(--photo-col,0) * (var(--cell,80px) + var(--gap,10px)) * -1);top:calc(var(--photo-row,0) * (var(--cell,80px) + var(--gap,10px)) * -1);width:calc(var(--cols,4) * var(--cell,80px) + (var(--cols,4) - 1) * var(--gap,10px));height:calc(var(--rows,6) * var(--cell,80px) + (var(--rows,6) - 1) * var(--gap,10px));background:var(--door-photo) var(--door-photo-pos,center) / cover no-repeat;position:absolute}.door--photo .door__frame,.door--photo-piece:not(.door--photo) .door__leaf .door__photo{display:none}.door.is-revealing.is-opening .door__leaf{animation:.85s ease-in-out forwards door-reveal;transform:none}.door.is-revealing.is-opening .door__inside{animation:.9s ease-out .25s both photo-reveal}@keyframes door-reveal{0%{opacity:1;transform:scale(1)}25%{opacity:1;filter:brightness(1.15);transform:scale(1.04)}65%{opacity:.55;filter:brightness(1.4)blur(1px)}to{opacity:0;filter:brightness(1.6)blur(3px);transform:scale(1.06)}}@keyframes photo-reveal{0%{filter:brightness(1.3);transform:scale(1.06)}to{filter:none;transform:none}}.door__inside--photo .door__photo{z-index:0}.door__inside--photo .door__photo:after,.door__inside--photo.door__inside--image:after{display:none}.door--photo[data-state=opened]:not(.is-opening) .door__leaf{opacity:0;transform:none}.door.door--photo.is-opening .door__leaf{animation:.45s ease-out forwards door-burst;transform:none}.door.door--photo.is-opening .door__inside{animation:.6s ease-out both photo-settle}@keyframes door-burst{0%{opacity:1}to{opacity:0;filter:brightness(1.2)blur(2px);transform:scale(1.04)}}@keyframes photo-settle{0%{transform:scale(1.03)}to{transform:none}}.door__burst{z-index:3;pointer-events:none;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--color-accent) 80%, transparent));position:absolute;top:50%;bottom:auto;left:50%;right:auto}.door__burst i{width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);background:color-mix(in srgb, var(--color-accent) 70%, white);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);animation:.7s cubic-bezier(.2,.7,.3,1) forwards burst-star;position:absolute}.door__burst--dissolve{filter:drop-shadow(0 0 1px #3c28008c) drop-shadow(0 0 6px color-mix(in srgb, var(--color-accent) 80%, transparent))}.door__burst--dissolve i{animation:star-dissolve .85s var(--delay,0s) ease-out both}@keyframes star-dissolve{0%{transform:translate(var(--sx), var(--sy)) scale(0) rotate(0);opacity:0}25%{transform:translate(var(--sx), var(--sy)) scale(1) rotate(0);opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(.5) rotate(var(--turn));opacity:0}}@keyframes burst-star{0%{opacity:1;transform:translate(0)scale(.4)rotate(0)}70%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1) rotate(var(--turn));opacity:0}}@media (prefers-reduced-motion:reduce){.door.is-revealing.is-opening .door__leaf{opacity:0;animation:none}.door.is-revealing.is-opening .door__inside{animation:none}.door.door--photo.is-opening .door__leaf,.door.door--glass.is-opening .door__leaf{opacity:0;animation:none}.door.door--photo.is-opening .door__inside{animation:none}}.door__photo:after{content:"";background:radial-gradient(circle,#00000057,#00000014 70%);position:absolute;top:0;bottom:0;left:0;right:0}.door.door--image[data-tone] .door__number,.door.door--photo[data-tone] .door__number,.door.door--glass[data-tone] .door__number{background-image:linear-gradient(105deg, transparent 42%, #fff 50%, transparent 58%), linear-gradient(var(--door-number), var(--door-number));filter:drop-shadow(0 1px 2px #000000b3)drop-shadow(0 0 10px #00000073)}.door.door--image.is-opening[data-tone] .door__number,.door.door--image[data-state=opened][data-tone] .door__number,.door.door--photo.is-opening[data-tone] .door__number,.door.door--photo[data-state=opened][data-tone] .door__number,.door.door--glass.is-opening[data-tone] .door__number{filter:none;text-shadow:0 1px 3px #000000bf;background:0 0}.door-grid[data-photo-shade=light] .door.door--image[data-tone] .door__number,.door-grid[data-photo-shade=light] .door.door--photo[data-tone] .door__number,.door-grid[data-photo-shade=light] .door.door--glass[data-tone] .door__number{filter:drop-shadow(0 1px 2px #ffffffbf)drop-shadow(0 0 10px #ffffff8c)}.door-grid[data-photo-shade=light] .door.door--image.is-opening[data-tone] .door__number,.door-grid[data-photo-shade=light] .door.door--image[data-state=opened][data-tone] .door__number,.door-grid[data-photo-shade=light] .door.door--photo.is-opening[data-tone] .door__number,.door-grid[data-photo-shade=light] .door.door--photo[data-state=opened][data-tone] .door__number,.door-grid[data-photo-shade=light] .door.door--glass.is-opening[data-tone] .door__number{filter:none;text-shadow:0 1px 3px #fffc}.door-grid[data-photo-shade=light] .door__photo:after{background:radial-gradient(circle,#fff6,#ffffff1a 70%)}.door-grid[data-photo-shade=light] .door--image .door__front{background-image:radial-gradient(circle at 50% 50%, #ffffff6b, #ffffff1f 70%), var(--door-image)}.door--glass .door__front{background-color:color-mix(in srgb, var(--door-color) 14%, transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--door-color-light) 70%, white), 0 6px 16px -10px #000000b3;background-image:linear-gradient(155deg,#ffffff29,#0000 45%,#0000001f);background-size:cover}.door--glass .door__front:after{display:none}.door--glass .door__frame{border-color:color-mix(in srgb, var(--photo-number) 45%, transparent)}.door-grid[data-photo-shade=light] .door--glass .door__front{background-color:#ffffff29}.door__inside.door__inside--glass{background:0 0;box-shadow:inset 0 0 0 1px #ffffff59}.door__inside--glass .door__inside-star{display:none}.door--glass[data-state=opened]:not(.is-opening) .door__leaf{transform:none}.door.door--glass[data-state=opened]:not(.is-opening)[data-tone] .door__number{color:var(--door-number);opacity:.6;background:0 0}.door.door--glass[data-state=opened]:not(.is-opening) .door__leaf:after{opacity:0}.door--glass.is-returning .door__leaf{animation:.6s ease-out glass-return}@keyframes glass-return{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.door--glass.is-returning .door__leaf{animation:none}}.door.door--glass.is-opening .door__leaf{animation:.45s ease-out forwards door-burst;transform:none}.door__inside{border-radius:var(--radius);background:radial-gradient(ellipse 90% 80% at 50% 40%, color-mix(in srgb, var(--color-accent) 22%, var(--color-bg-deep)), var(--color-bg-deep) 75%);place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;box-shadow:inset 0 4px 12px #000000a6,inset 0 0 0 1px #ffffff0f}.door__inside--image{background:linear-gradient(180deg, #00000026, #00000080), var(--inside-image) center / cover}.door__inside-star{background:var(--color-accent);clip-path:polygon(50% 0,61.8% 34.5%,98% 35.3%,69.1% 57.3%,79.4% 92%,50% 71.4%,20.6% 92%,30.9% 57.3%,2% 35.3%,38.2% 34.5%);width:30cqmin;height:30cqmin;filter:drop-shadow(0 0 8px var(--color-accent))}.door__inside--image .door__inside-star{display:none}.door__frame{border-radius:calc(var(--radius) - 5px);border:1px solid color-mix(in srgb, var(--door-number) 38%, transparent);pointer-events:none;transition:border-color .35s;position:absolute;top:7px;bottom:7px;left:7px;right:7px}:root[data-shape=round] .door__frame{border-radius:50%}:root[data-shape=square] .door__frame{border-radius:1px}.door__number{font-family:var(--font-number);font-variant-numeric:lining-nums;letter-spacing:-.03em;text-shadow:none;color:#0000;background-image:linear-gradient(105deg, transparent 42%, color-mix(in srgb, var(--door-number) 35%, #fff) 50%, transparent 58%), linear-gradient(var(--door-number), var(--door-number));background-position:100% 0,0 0;background-repeat:no-repeat;background-size:300% 100%,100% 100%;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.25rem,44cqmin,5.5rem);font-weight:600;line-height:1;position:relative}.door[data-tone=dark] .door__number{background-image:linear-gradient(105deg, transparent 42%, color-mix(in srgb, var(--door-number) 35%, #fff) 50%, transparent 58%), linear-gradient(160deg, color-mix(in srgb, var(--door-number) 70%, #fff) 10%, var(--door-number) 40%, color-mix(in srgb, var(--door-number) 70%, #000) 75%, var(--door-number) 95%);filter:drop-shadow(0 1px 1px #00000059)}.door.is-opening .door__number,.door[data-state=opened] .door__number{color:var(--door-number);background:0 0;-webkit-background-clip:border-box;background-clip:border-box;animation:none}.door.is-opening .door__front:after,.door[data-state=opened] .door__front:after{opacity:0}:root:not([data-shape=round]) .door[data-snow-cap] .door__front:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(ellipse 60% 70% at 40% 25%, #fff 0%, transparent 70%), linear-gradient(to bottom, var(--color-snow) 45%, color-mix(in srgb, var(--color-snow) 78%, var(--door-color)));height:clamp(10px,20cqmin,24px);transform:scaleX(var(--snow-flip,1));filter:drop-shadow(0 1.5px 1.5px #0000004d);position:absolute;top:calc(clamp(10px,20cqmin,24px)/-2.22222);left:-2px;right:-2px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 24' preserveAspectRatio='none'%3E%3Cpath d='M0 15 C2 8 9 6 18 7 C30 2 46 2 58 5 C70 3 86 4 94 8 C98 10 100 12 100 15 L100 16 C97 18 93 17 91 18 C89 23 84 23 83 18 C76 19 67 17 60 19 C57 24 51 24 50 19 C41 18 31 19 24 18 C21 22 16 22 15 18 C9 19 4 18 0 17 Z'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 24' preserveAspectRatio='none'%3E%3Cpath d='M0 15 C2 8 9 6 18 7 C30 2 46 2 58 5 C70 3 86 4 94 8 C98 10 100 12 100 15 L100 16 C97 18 93 17 91 18 C89 23 84 23 83 18 C76 19 67 17 60 19 C57 24 51 24 50 19 C41 18 31 19 24 18 C21 22 16 22 15 18 C9 19 4 18 0 17 Z'/%3E%3C/svg%3E") 50%/100% 100% no-repeat}.door__number:has(.door__month){flex-direction:column;align-items:center;display:flex}.door__month{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;text-align:center;margin-top:.12em;font-size:.3em;font-weight:700;display:block}:root[data-number-position=top-left] .door__front{place-items:start}:root[data-number-position=top-left] .door__number{margin:14cqmin 0 0 14cqmin;font-size:clamp(1rem,30cqmin,3.5rem)}:root[data-number-position=bottom-right] .door__front{place-items:end}:root[data-number-position=bottom-right] .door__number{margin:0 14cqmin 12cqmin 0;font-size:clamp(1rem,30cqmin,3.5rem)}.door--ribbon{--pattern:linear-gradient(225deg, transparent 17%, color-mix(in srgb, var(--color-accent) 75%, transparent) 17% 19%, color-mix(in srgb, var(--color-accent) 30%, transparent) 19% 25%, color-mix(in srgb, var(--color-accent) 75%, transparent) 25% 27%, transparent 27%)}.door--dots{--pattern:radial-gradient(circle, color-mix(in srgb, var(--door-number) 22%, transparent) 1.2px, transparent 1.6px);--pattern-size:12px 12px}.door--stripes{--pattern:repeating-linear-gradient(-45deg, transparent 0 7px, color-mix(in srgb, var(--door-number) 9%, transparent) 7px 9px)}.door[data-state=opened] .door__leaf{transform:rotateY(-40deg)}.door[data-state=opened] .door__inside-star{transform:translate(36cqi)scale(.6)}.door.is-opening .door__leaf{transform:rotateY(-78deg)}.door.is-opening .door__inside-star{transform:none}.door__inside-star{transition:transform .9s cubic-bezier(.25,.85,.25,1)}.door__inside--image:after{content:"";background:linear-gradient(90deg, #00000059, transparent 45%), var(--inside-image) center / cover;opacity:0;width:28%;transition:opacity .6s;position:absolute;top:0;bottom:0;left:auto;right:0}.door[data-state=opened]:not(.is-opening) .door__inside--image:after{opacity:1}:root[data-opened-look=closed] .door[data-state=opened]:not(.is-opening) .door__leaf{transform:none}:root[data-opened-look=closed] .door[data-state=opened]:not(.is-opening) .door__leaf:after{opacity:0}:root[data-opened-look=closed] .door[data-state=opened]:not(:-webkit-any(.is-opening,.door--photo)) .door__number{opacity:.45}:root[data-opened-look=closed] .door[data-state=opened]:not(:is(.is-opening,.door--photo)) .door__number{opacity:.45}.door__leaf:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000 20%,#00000047);transition:opacity .9s;position:absolute;top:0;bottom:0;left:0;right:0}.door[data-state=opened] .door__leaf:after,.door.is-opening .door__leaf:after{opacity:1}.door-slot:has(.door.is-opening){z-index:5}.door.is-opening .door__inside{animation:.9s ease-out both inside-glow}@keyframes inside-glow{0%{box-shadow:inset 0 4px 12px #000000a6, inset 0 0 40px 10px color-mix(in srgb, var(--color-accent) 70%, transparent)}}.door[data-today][data-state=available] .door__front{animation:4.5s ease-in-out infinite today-glow}@keyframes today-glow{0%,to{box-shadow:inset 0 1px 0 #ffffff24, 0 10px 22px -12px #000000bf, 0 0 0 1px color-mix(in srgb, var(--color-accent) 45%, transparent), 0 0 14px 0 color-mix(in srgb, var(--color-accent) 35%, transparent)}50%{box-shadow:inset 0 1px 0 #ffffff24, 0 10px 22px -12px #000000bf, 0 0 0 1.5px color-mix(in srgb, var(--color-accent) 60%, transparent), 0 0 20px 2px color-mix(in srgb, var(--color-accent) 40%, transparent)}}.door.is-wiggling .door__leaf{transform-origin:50% 100%;animation:.5s ease-in-out door-stuck}@keyframes door-stuck{15%{transform:translate(-3px)rotate(-1.5deg)}35%{transform:translate(3px)rotate(1.5deg)}55%{transform:translate(-2px)rotate(-.8deg)}75%{transform:translate(2px)rotate(.8deg)}90%{transform:translate(-1px)}}@media (hover:hover){.door:hover{transform:translateY(-4px)}.door:hover .door__front{box-shadow:inset 0 1px 0 #fff3, inset 0 -2px 0 #0000002e, 0 2px 4px #0000004d, 0 22px 34px -16px #000000e6, 0 0 26px -6px color-mix(in srgb, var(--color-accent) 55%, transparent)}.door:hover .door__frame{border-color:color-mix(in srgb, var(--door-number) 75%, transparent)}:root:not([data-shimmer=off]) .door:hover .door__number{animation:.9s ease-out number-shine}}@keyframes number-shine{0%{background-position:100% 0,0 0}to{background-position:0 0,0 0}}.door:active{transition-duration:.1s;transform:scale(.97)}.door:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.shared-message{text-align:center;max-width:28rem;margin:30vh auto 0;padding:0 1.5rem;font-size:1.15rem;line-height:1.5}.door__stat{z-index:3;background:var(--color-accent);min-width:1.6em;color:var(--color-bg);font-family:var(--font-body);text-align:center;pointer-events:none;border-radius:999px;padding:.1em .45em;font-size:clamp(.8rem,22cqmin,1.5rem);font-weight:800;line-height:1.3;position:absolute;top:-.5em;right:-.5em;box-shadow:0 2px 6px #00000073}.door__stat--early{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-accent);align-items:center;gap:.2rem;display:inline-flex}.door__stat--early:before{content:"";background:currentColor;width:.85em;height:.85em;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h1Zm2 0h6V7a3 3 0 0 0-6 0v3Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h1Zm2 0h6V7a3 3 0 0 0-6 0v3Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.calendar-footer{z-index:2;max-width:30rem;color:var(--color-text-soft);text-align:center;text-shadow:0 1px 2px #00000059;margin:1.5rem auto 0;padding:0 1rem;font-size:.8rem;position:relative}.calendar-footer a{color:inherit}.fit-screen .calendar-footer{margin:0 auto;position:fixed;bottom:.4rem;left:0;right:0}.password-gate{text-align:left;flex-direction:column;align-items:stretch;gap:.5rem;margin-top:1.25rem;display:flex}.password-gate__label{font-weight:700}.password-gate__row{gap:.5rem;display:flex}.password-gate__input{border:2px solid color-mix(in srgb, var(--card-text) 30%, transparent);background:color-mix(in srgb, var(--card) 85%, white);min-width:0;min-height:48px;color:var(--card-text);font:inherit;border-radius:12px;flex:1;padding:.6rem .8rem;font-size:1.1rem}.password-gate__input:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.password-gate__reveal{border:2px solid color-mix(in srgb, var(--card-text) 30%, transparent);min-height:48px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:12px;padding:0 .9rem;font-weight:600}.password-gate__status{min-height:1.4em;margin:0;font-weight:600}.password-gate__status:empty{min-height:0}.password-gate__submit{font:inherit;cursor:pointer;border:0;align-self:center;margin-top:.4rem;font-weight:700}.password-gate__submit:disabled{opacity:.7;cursor:wait}.not-found{z-index:2;background:var(--card);max-width:30rem;color:var(--card-text);text-align:center;border-radius:18px;margin:clamp(3rem,18vh,10rem) auto 0;padding:2rem 1.5rem 1.75rem;position:relative;box-shadow:0 24px 60px -24px #000000b3}@media (max-height:500px){.not-found{margin-top:1.25rem;margin-bottom:1.25rem;padding-block-start:1.25rem;padding-block-end:1.25rem}}.not-found__title{font-family:var(--font-heading);text-wrap:balance;margin:0;font-size:clamp(1.6rem,6vw,2.1rem);font-weight:600;line-height:1.15}.not-found__text{text-wrap:pretty;margin:.9rem 0 0;font-size:1.05rem;line-height:1.55}.not-found__actions{flex-direction:column;align-items:center;gap:.9rem;margin-top:1.5rem;display:flex}.not-found__button{background:var(--color-accent);color:var(--color-bg);border-radius:999px;padding:.8rem 1.4rem;font-weight:700;text-decoration:none;display:inline-block}.not-found__link{color:inherit;font-weight:600}.not-found__button:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.not-found__link:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.door.is-loading{cursor:progress;opacity:.85}.calendar-footer__button{font:inherit;color:inherit;text-shadow:inherit;cursor:pointer;background:0 0;border:0;padding:.4rem 0;text-decoration:underline}.calendar-footer__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.legal-menu{display:inline-block;position:relative}.legal-menu__button:after{content:" ▾";font-size:.85em}.legal-menu__list{z-index:5;background:var(--color-card);text-align:left;min-width:10rem;text-shadow:none;border-radius:10px;flex-direction:column;gap:.1rem;padding:.35rem;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.legal-menu__list[hidden]{display:none}.legal-menu__list a{color:var(--color-card-text);white-space:nowrap;border-radius:6px;padding:.45rem .7rem;text-decoration:none}.legal-menu__list a:hover{background:color-mix(in srgb, var(--color-card-text) 10%, transparent)}.legal-menu__list a:focus-visible{background:color-mix(in srgb, var(--color-card-text) 10%, transparent)}.is-embedded .app{padding-top:1.25rem;padding-bottom:2.75rem}.is-embedded .calendar-title{padding-inline-start:2rem;padding-inline-end:2rem;font-size:clamp(1.7rem,min(6vw,7vh),3.4rem)}.is-embedded .effects-toggle{width:36px;height:36px;top:.4rem;right:.4rem}.is-embedded .effects-toggle svg{width:19px;height:19px}.calendar-footer__brand{white-space:nowrap}.calendar-footer__fake{text-decoration:underline}.calendar-footer__logo{vertical-align:-.2em;width:1.1em;height:1.1em;margin-right:.3em}.embed-doors-only .calendar-header,.calendar-header--hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.embed-doors-only .app{padding-top:.75rem}.app:has(>.calendar-header--hidden){padding-top:.75rem}.embed-transparent,.embed-transparent body{background:0 0}.embed-transparent body:before{display:none}.embed-transparent .app{padding-bottom:3.6rem}.embed-transparent .calendar-footer{background:color-mix(in srgb, var(--color-bg) 88%, transparent);width:-moz-fit-content;width:fit-content;text-shadow:none;border-radius:999px;padding:.2rem .8rem}.ad-banner{z-index:2;border:1px dashed color-mix(in srgb, var(--color-text) 30%, transparent);max-width:38rem;color:var(--color-text);background:color-mix(in srgb, var(--color-bg) 82%, transparent);text-align:center;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .8rem;margin:1.5rem auto 0;padding:.5rem .6rem .5rem .9rem;font-size:.85rem;line-height:1.35;display:flex;position:relative}.ad-banner .door-card__ad-label{margin:0;display:inline}.ad-banner .door-card__ad-text{margin:0}.ad-banner .door-card__ad-button{border:1px solid var(--color-accent);color:var(--color-accent);white-space:nowrap;padding:.3rem .85rem}.ad-banner .door-card__ad-button:hover{color:var(--color-bg);background:var(--color-accent)}.ad-banner .door-card__ad-button:focus-visible{color:var(--color-bg);background:var(--color-accent)}.fit-screen .ad-banner{flex-wrap:nowrap;width:max-content;max-width:calc(100% - 2rem);margin:0;position:fixed;bottom:2.1rem;left:50%;transform:translate(-50%)}.fit-screen .ad-banner .door-card__ad-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fit-screen.has-ad-banner .app{padding-bottom:5.4rem}.ad-tile{border:1.5px dashed color-mix(in srgb, var(--color-accent) 70%, transparent);border-radius:var(--radius);width:100%;height:100%;color:var(--color-text);background:color-mix(in srgb, var(--color-bg) 70%, transparent);font-family:var(--font-body);font-size:clamp(.55rem, calc(var(--cell,100px) * .1), .9rem);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.55em;padding:1.6em .7em .8em;line-height:1.25;text-decoration:none;transition:transform .2s,background .2s;display:flex;position:relative;overflow:hidden}.ad-tile:hover{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg));transform:translateY(-2px)}.ad-tile:focus-visible{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg));transform:translateY(-2px)}.ad-tile:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ad-tile__label{letter-spacing:.12em;text-transform:uppercase;opacity:.65;font-size:.62em;font-weight:800;position:absolute;top:.75em;left:0;right:0}.ad-tile__text{-webkit-hyphens:manual;hyphens:manual;text-wrap:balance;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:100%;font-size:1.05em;line-height:1.3;display:-webkit-box;overflow:hidden}.ad-tile__button{max-width:100%;color:var(--color-accent);text-wrap:balance;font-size:.92em;font-weight:800;line-height:1.2}.ad-tile__gift{vertical-align:-.2em;width:1.15em;height:1.15em;color:var(--color-accent);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--color-accent) 45%, transparent));margin-right:.25em;display:inline-block}.ad-tile__gift--big,.ad-tile--compact .ad-tile__button .ad-tile__gift{display:none}.ad-tile--compact .ad-tile__gift--big{flex:none;width:1.6em;height:1.6em;margin:0;display:block}.ad-tile--compact{padding-inline-start:.3em;padding-inline-end:.3em}.ad-tile--compact .ad-tile__text{display:none}.ad-tile:hover .ad-tile__button{text-underline-offset:.2em;text-decoration:underline}.ad-tile:focus-visible .ad-tile__button{text-underline-offset:.2em;text-decoration:underline}@media (prefers-reduced-motion:reduce){.ad-tile{transition:none}}.calendar-guide{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .8rem;margin:calc(-1*clamp(.4rem,2vh,1rem)) auto clamp(.9rem,3vh,1.6rem);display:flex}.calendar-guide[hidden]{display:none}.calendar-guide__button{border:1.5px solid color-mix(in srgb, var(--color-accent) 70%, transparent);color:var(--color-text);background:color-mix(in srgb, var(--color-accent) 16%, transparent);font:inherit;cursor:pointer;border-radius:999px;padding:.55rem 1.15rem;font-weight:700;transition:background .2s,transform .2s}.calendar-guide__button:after{content:" ›"}.calendar-guide__button:hover{background:color-mix(in srgb, var(--color-accent) 28%, transparent);transform:translateY(-1px)}.calendar-guide__button:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.calendar-guide__note,.calendar-guide__text{color:var(--color-text-soft);margin:0;font-size:.95rem}.embed-doors-only .calendar-guide{display:none}.door.is-pointed .door__front{animation:1.4s ease-out door-pointed}@keyframes door-pointed{0%,to{filter:none}35%{filter:brightness(1.18) drop-shadow(0 0 14px color-mix(in srgb, var(--color-accent) 80%, transparent))}}@media (prefers-reduced-motion:reduce){.door.is-pointed .door__front{animation:none}.calendar-guide__button{transition:none}}.door-dialog{width:min(94vw,32rem);max-width:none;max-height:none;color:var(--card-text);background:0 0;border:0;padding:0;overflow:visible}@media (min-width:720px) and (min-height:541px){.door-dialog{width:min(88vw,38rem)}.door-dialog:has(.door-card--short){width:min(88vw,34rem)}.door-dialog:has(.door-card--media){width:min(88vw,46rem)}}.door-dialog::backdrop{background:color-mix(in srgb, var(--color-bg-deep) 72%, transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.door-dialog.is-opening{animation:.6s cubic-bezier(.2,.85,.25,1) both card-in}.door-dialog.is-opening::backdrop{animation:.45s ease-out both backdrop-in}.door-dialog.is-closing{animation:.24s ease-in both card-out}.door-dialog.is-closing::backdrop{animation:.24s ease-in reverse both backdrop-in}.door-dialog--pinned{z-index:100;height:-moz-fit-content;height:fit-content;margin:auto;position:fixed;top:0;bottom:0;left:0;right:0}.door-dialog--pinned:before{content:"";z-index:-1;background:color-mix(in srgb, var(--color-bg-deep) 72%, transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);position:fixed;top:0;bottom:0;left:0;right:0}.is-editor-preview .door-dialog--pinned:before{-webkit-backdrop-filter:none;backdrop-filter:none}.is-editor-preview .door-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}@keyframes card-in{0%{opacity:0;transform:translate(var(--from-x,0), var(--from-y,0)) scale(.2) rotate(-3deg)}60%{opacity:1}}@keyframes card-out{to{opacity:0;transform:translateY(10px)scale(.95)}}@keyframes backdrop-in{0%{opacity:0}}.bubble{z-index:30;border:1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);width:max-content;max-width:min(17rem,100vw - 16px);color:var(--color-text);background:var(--bubble-bg);text-align:center;text-wrap:balance;opacity:0;pointer-events:none;transform-origin:var(--arrow-x,50%) 100%;--bubble-bg:color-mix(in srgb, var(--color-bg-deep) 94%, var(--color-accent));border-radius:1rem;padding:.6rem 1rem;font-size:.95rem;font-weight:600;line-height:1.35;transition:opacity .2s,transform .25s cubic-bezier(.3,1.5,.6,1);position:fixed;top:0;left:0;transform:translateY(6px)scale(.92);box-shadow:0 12px 28px -10px #000000bf}.bubble.is-visible{opacity:1;transform:none}.bubble:after{content:"";left:var(--arrow-x,50%);border-right:1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);border-bottom:1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);background:var(--bubble-bg);width:11px;height:11px;position:absolute;bottom:-6px;transform:translate(-50%)rotate(45deg)}.bubble[data-side=below]{transform-origin:var(--arrow-x,50%) 0;transform:translateY(-6px)scale(.92)}.bubble[data-side=below].is-visible{transform:none}.bubble[data-side=below]:after{top:-6px;bottom:auto;transform:translate(-50%)rotate(225deg)}.bubble--free{top:auto;right:0;bottom:max(1.5rem, env(safe-area-inset-bottom));margin-inline-start:auto;margin-inline-end:auto}.bubble--free:after{display:none}.mode-banner{top:max(.6rem, env(safe-area-inset-top));z-index:20;text-align:center;width:-moz-fit-content;width:fit-content;color:var(--color-bg-deep);background:color-mix(in srgb, var(--color-accent) 92%, transparent);border-radius:999px;margin-inline-start:auto;margin-inline-end:auto;padding:.35rem .9rem;font-size:.78rem;font-weight:700;line-height:1.35;position:fixed;left:3.75rem;right:3.75rem}html:not(.fit-screen) .mode-banner{width:-moz-fit-content;width:fit-content;margin:max(.6rem, env(safe-area-inset-top)) auto 0;max-width:calc(100% - 7rem);position:relative;top:auto;left:auto;right:auto}.mode-banner--example a{color:inherit;text-underline-offset:2px;margin-left:.25rem;font-weight:800;text-decoration:underline}html:not(.fit-screen) .mode-banner--example a{width:-moz-fit-content;width:fit-content;margin:.1rem auto 0;display:block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.report-card{text-align:left}.report-card__title{font-family:var(--font-heading);margin:0 0 .6rem;font-size:1.5rem;line-height:1.2}.report-card__intro{margin:0 0 1.1rem;line-height:1.5}.report-form{flex-direction:column;gap:.35rem;display:flex}.report-form__group{border:0;margin:0 0 .7rem;padding:0}.report-form__label{margin-top:.4rem;padding:0;font-weight:700}.report-form__choice{cursor:pointer;align-items:flex-start;gap:.5rem;padding:.3rem 0;line-height:1.4;display:flex}.report-form__choice input{width:1.1rem;height:1.1rem;accent-color:var(--card-accent);flex:none;margin:.12rem 0 0}.report-form__confirm{margin-top:.6rem}.report-form__input{border:1px solid color-mix(in srgb, var(--card-text) 30%, transparent);width:100%;font:inherit;color:var(--card-text);background:var(--card);border-radius:10px;padding:.6rem .75rem}textarea.report-form__input{resize:vertical}.report-form__input:focus-visible{outline:3px solid var(--card-accent);outline-offset:2px}.report-form__choice input:focus-visible{outline:3px solid var(--card-accent);outline-offset:2px}.report-form__send:focus-visible{outline:3px solid var(--card-accent);outline-offset:2px}.report-form__cancel:focus-visible{outline:3px solid var(--card-accent);outline-offset:2px}.report-form__privacy:focus-visible{outline:3px solid var(--card-accent);outline-offset:2px}.report-form [aria-invalid=true]{border-color:var(--card-accent);box-shadow:0 0 0 2px var(--card-accent)}fieldset.report-form__group[aria-invalid=true]{border-radius:10px;padding:.3rem .5rem}.report-form__hint{opacity:.8;margin:0 0 .3rem;font-size:.85rem}.report-form__error{border-left:4px solid var(--card-accent);background:color-mix(in srgb, var(--card-text) 7%, var(--card));border-radius:10px;margin:.4rem 0 0;padding:.6rem .75rem;font-weight:600}.report-form__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.report-form__send{font:inherit;color:var(--card);background:var(--card-accent);cursor:pointer;border:0;border-radius:999px;padding:.75rem 1.3rem;font-weight:700}.report-form__send:disabled{opacity:.6;cursor:progress}.report-form__cancel{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:.75rem .5rem;font-weight:600;text-decoration:underline}.report-form__privacy{color:inherit;margin-top:.9rem;font-size:.85rem}.report-card>.report-form__send{margin-top:.5rem}
