.door{background:repeating-linear-gradient(0deg,transparent,transparent 1px,rgba(0,0,0,.04) 1px,rgba(0,0,0,.04) 2px),repeating-linear-gradient(90deg,transparent,transparent 1px,rgba(0,0,0,.04) 1px,rgba(0,0,0,.04) 2px),linear-gradient(145deg,#9b1e2e,#8b1a2a,#7a1624);border-radius:4px;cursor:pointer;aspect-ratio:1;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;transition:all .2s ease;border:1px solid rgba(0,0,0,.2);box-shadow:0 2px 4px #0000004d,0 4px 8px #0003,inset 0 1px #ffffff1a,inset 0 -1px #0003}.door:hover{background:repeating-linear-gradient(0deg,transparent,transparent 1px,rgba(0,0,0,.04) 1px,rgba(0,0,0,.04) 2px),repeating-linear-gradient(90deg,transparent,transparent 1px,rgba(0,0,0,.04) 1px,rgba(0,0,0,.04) 2px),linear-gradient(145deg,#a82838,#982030,#881c28);transform:translateY(-2px);box-shadow:0 4px 8px #00000059,0 8px 16px #00000040,inset 0 1px #ffffff1f,inset 0 -1px #0003}.door.locked{opacity:.9}.door.unlocked{border:1px solid rgba(255,215,0,.6);box-shadow:0 0 15px #ffd700b3,0 0 30px #ffc80080,0 0 45px #ffb4004d,0 2px 4px #0000004d,0 4px 8px #0003,inset 0 1px #ffffff26,inset 0 -1px #0003}.door.unlocked:hover{box-shadow:0 0 20px #ffd700cc,0 0 40px #ffc80099,0 0 60px #ffb40066,0 4px 8px #00000059,0 8px 16px #00000040,inset 0 1px #ffffff26,inset 0 -1px #0003}.door-content{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px}.door-image{width:55%;height:55%;object-fit:contain;opacity:.9}.door-number{position:absolute;bottom:8px;right:10px;font-size:1.3rem;font-weight:400;color:#ffffffe6;font-family:"Instrument Serif",serif;font-style:italic}.calendar-wrapper{display:flex;flex-direction:column;align-items:center;padding:40px 20px}.calendar-title{color:#fff;font-size:3.5rem;font-weight:400;margin-bottom:10px;letter-spacing:.02em;text-shadow:0 2px 4px rgba(0,0,0,.3),0 0 30px rgba(255,255,255,.15);position:relative}.calendar-title:before,.calendar-title:after{content:"✦";position:absolute;top:50%;transform:translateY(-50%);font-size:1.2rem;color:gold;animation:sparkle 2s ease-in-out infinite}.calendar-title:before{left:-30px;animation-delay:0s}.calendar-title:after{right:-30px;animation-delay:1s}@keyframes sparkle{0%,to{opacity:.4;transform:translateY(-50%) scale(.8)}50%{opacity:1;transform:translateY(-50%) scale(1.2)}}.calendar-byline{display:flex;align-items:center;gap:8px;color:#ffffffb3;font-size:1.1rem;margin-bottom:30px}.byline-logo{height:28px;width:auto;vertical-align:middle;border-radius:6px}.calendar-frame{background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px),linear-gradient(145deg,#c22234,#b22234,#a01e2e);padding:18px;border-radius:8px;position:relative;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 40px #c222344d,0 4px 6px #0000004d,0 10px 20px #00000040,0 20px 40px #0003,inset 0 1px 1px #ffffff26,inset 0 -1px 1px #0000004d}.calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:min(90vw,540px)}@media(max-width:500px){.calendar-title{font-size:2.2rem;margin-bottom:30px}.calendar-title:before,.calendar-title:after{font-size:.9rem}.calendar-title:before{left:-20px}.calendar-title:after{right:-20px}.calendar-frame{padding:12px}.calendar-grid{gap:8px}}.door-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0ff2;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:100}.zoomed-door-wrapper{position:fixed;perspective:1000px;cursor:pointer}.door-flipper{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1)}.door-flipper.flipped{transform:rotateY(180deg)}.door-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:4px;display:flex;justify-content:center;align-items:center}.door-front{background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 4px),linear-gradient(145deg,#9b1e2e,#8b1a2a,#7a1624);box-shadow:inset 0 2px #ffffff1a,inset 0 -2px #0003}.door-back{background:#faf9f6;transform:rotateY(180deg)}.door-content{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px}.door-image{width:50%;height:50%;object-fit:contain;opacity:.9}.door-number{position:absolute;bottom:20px;right:24px;font-size:2.5rem;font-weight:400;color:#ffffffe6;font-family:"Instrument Serif",serif;font-style:italic}.locked-indicator{position:absolute;top:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.unlock-date{font-size:.85rem;color:#ffffffb3;font-family:"Instrument Serif",serif}.tap-hint{position:absolute;bottom:20px;left:24px;font-size:.85rem;color:#ffffff80;font-family:"Instrument Serif",serif;font-style:italic}.message-content{padding:40px;text-align:center}.message-text{font-size:1.8rem;color:#1a1a1a;font-family:"Instrument Serif",serif;line-height:1.5;font-style:italic}.message-locked{font-size:1.5rem;color:#999;font-family:"Instrument Serif",serif;font-style:italic}.message-loading{font-size:1.5rem;color:#666;font-family:"Instrument Serif",serif;font-style:italic}.back-button{position:fixed;bottom:40px;background:transparent;color:#ffffffb3;border:1px solid rgba(255,255,255,.3);padding:12px 28px;font-size:1rem;font-family:"Instrument Serif",serif;border-radius:2px;cursor:pointer;transition:all .2s ease;letter-spacing:.02em}.back-button:hover{color:#fff;border-color:#fff9}.guidelines-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0ff2;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:100;padding:40px 20px}.guidelines-modal{background:#f5f4f0;border-radius:8px;width:min(90vw,540px);max-height:calc(100vh - 220px);overflow:hidden;display:flex;flex-direction:column;will-change:transform;transform-origin:center;margin-bottom:40px}.guidelines-scroll{padding:30px;overflow-y:auto;color:#1a1a1a}.guidelines-scroll h2{font-family:"Instrument Serif",serif;font-size:1.8rem;font-weight:400;margin:0 0 25px;text-align:center}.guidelines-scroll h3{font-family:"Instrument Serif",serif;font-size:1.2rem;font-weight:600;margin:20px 0 10px;color:#c22234}.guidelines-scroll section{margin-bottom:15px}.guidelines-scroll ul{margin:0;padding-left:20px}.guidelines-scroll li{margin:8px 0;line-height:1.5}.guidelines-scroll li ul{margin-top:8px}.guidelines-scroll a{color:#c22234;font-weight:600;text-decoration:none}.guidelines-scroll a:hover{text-decoration:underline}.guidelines-footer{margin-top:25px;padding-top:20px;border-top:1px solid rgba(0,0,0,.1);text-align:center}.guidelines-footer p{margin:10px 0;line-height:1.6}.guidelines-footer .closing{font-family:"Instrument Serif",serif;font-size:1.1rem;font-style:italic;margin-top:15px}.guidelines-back-button{position:fixed;bottom:40px;left:50%;transform:translate(-50%);z-index:101;background:transparent;color:#ffffffb3;border:1px solid rgba(255,255,255,.3);padding:12px 28px;font-size:1rem;font-family:"Instrument Serif",serif;border-radius:2px;cursor:pointer;transition:all .2s ease;letter-spacing:.02em}.guidelines-back-button:hover{color:#fff;border-color:#fff9}@media(max-width:500px){.guidelines-overlay{padding:20px 15px}.guidelines-modal{max-height:calc(100vh - 120px)}.guidelines-scroll{padding:20px}.guidelines-scroll h2{font-size:1.5rem}.guidelines-scroll h3{font-size:1.1rem}}.christmas-lights{position:fixed;top:0;left:0;width:100%;height:60px;z-index:5;pointer-events:none}.lights-wire-svg{position:absolute;top:0;left:0;width:100%;height:60px}.wire-path{fill:none;stroke:#1a1a1a;stroke-width:.3}.strands-container{display:flex;width:100%;height:100%}.strand{flex:1;position:relative;display:flex;justify-content:space-around;align-items:flex-start;padding:0 5px}.light-bulb{--progress: calc(var(--light-index) / (var(--total-lights) - 1));--curve: calc(4 * var(--progress) * (1 - var(--progress)));position:relative;width:12px;height:18px;border-radius:50% 50% 45% 45%;margin-top:calc(2px + var(--curve) * 38px);animation:twinkle 1s ease-in-out infinite}.light-bulb:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:6px;height:5px;background:#2a2a2a;border-radius:2px 2px 0 0}.light-bulb.red{background:radial-gradient(circle at 30% 30%,#f66,#f33,#c00);box-shadow:0 0 8px #f33,0 0 16px #f33,0 0 24px #f336}.light-bulb.green{background:radial-gradient(circle at 30% 30%,#6f6,#3f3,#0c0);box-shadow:0 0 8px #3f3,0 0 16px #3f3,0 0 24px #3f36}.light-bulb.blue{background:radial-gradient(circle at 30% 30%,#66b3ff,#39f,#06c);box-shadow:0 0 8px #39f,0 0 16px #39f,0 0 24px #39f6}.light-bulb.yellow{background:radial-gradient(circle at 30% 30%,#fe6,#fd3,#ca0);box-shadow:0 0 8px #fd3,0 0 16px #fd3,0 0 24px #fd36}.light-bulb.orange{background:radial-gradient(circle at 30% 30%,#fb6,#f93,#c60);box-shadow:0 0 8px #f93,0 0 16px #f93,0 0 24px #f936}@keyframes twinkle{0%,to{opacity:1;filter:brightness(1)}50%{opacity:.5;filter:brightness(.6)}}.light-bulb:nth-child(7n+1){animation-delay:0s}.light-bulb:nth-child(7n+2){animation-delay:.3s}.light-bulb:nth-child(7n+3){animation-delay:.6s}.light-bulb:nth-child(7n+4){animation-delay:.15s}.light-bulb:nth-child(7n+5){animation-delay:.45s}.light-bulb:nth-child(7n+6){animation-delay:.75s}.light-bulb:nth-child(7n+7){animation-delay:.9s}.light-bulb:nth-child(3n+1){animation-duration:1.2s}.light-bulb:nth-child(3n+2){animation-duration:.8s}.light-bulb:nth-child(3n+3){animation-duration:1.4s}.strand:nth-child(odd) .light-bulb{animation-delay:calc(var(--light-index) * .15s)}.strand:nth-child(2n) .light-bulb{animation-delay:calc(var(--light-index) * .12s + .1s)}.app{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;position:relative;overflow:hidden}.calendar-container{display:flex;justify-content:center;align-items:center;z-index:1}.guidelines-button{position:fixed;top:70px;right:20px;z-index:10;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);color:#fffc;padding:10px 18px;font-size:.95rem;font-family:"Instrument Serif",serif;border-radius:4px;cursor:pointer;transition:all .2s ease}.guidelines-button:hover{background:#ffffff26;border-color:#fff6;color:#fff}.snowfall{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.snowflake{position:absolute;top:-10px;background:#fff;border-radius:50%;animation:fall linear infinite}@keyframes fall{0%{transform:translateY(-10px) translate(0)}25%{transform:translateY(25vh) translate(10px)}50%{transform:translateY(50vh) translate(-10px)}75%{transform:translateY(75vh) translate(10px)}to{transform:translateY(105vh) translate(0)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Instrument Serif",serif;background:linear-gradient(180deg,#0a1628,#132744,#0d1f3c);min-height:100vh;display:flex;justify-content:center;align-items:center;color:#fff}#root{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding-top:15vh}
