body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f172a;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html{scroll-behavior:smooth;background-color:#0f172a}.App{text-align:center;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%) fixed;height:100vh;position:relative;overflow:hidden}.App:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 20% 30%,#3b82f60d 0%,#0000 50%),radial-gradient(circle at 80% 70%,#8b5cf60d 0%,#0000 50%);position:fixed;inset:-10vh -10vw}.App>*{z-index:1}.App>.seasonal-backdrop{z-index:0}.App-route-shell{opacity:1;filter:blur();will-change:opacity, transform, filter;flex-direction:column;width:100%;height:100vh;transition:opacity .26s,transform .26s,filter .26s;display:flex;position:relative;overflow:auto;transform:translateY(0)scale(1)}.App.history-route .App-route-shell{overflow:hidden}.App-route-shell.is-exiting{opacity:0;filter:blur(10px);pointer-events:none;transform:translateY(18px)scale(.985)}.App-route-shell.is-entering{opacity:1;filter:blur();pointer-events:none;animation:.26s cubic-bezier(.22,1,.36,1) app-route-enter;transform:translateY(0)scale(1)}@keyframes app-route-enter{0%{opacity:0;filter:blur(8px);transform:translateY(-14px)scale(.99)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.App-route-shell.is-route-loading>:not(.route-loading){opacity:0}.route-loading{z-index:20;pointer-events:none;background:0 0;justify-content:center;align-items:center;animation:.2s ease-out route-loading-enter;display:flex;position:fixed;inset:0}.route-loading.is-exiting{animation:.22s ease-in forwards route-loading-exit}.route-loading-stack{flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.route-loading-ring{border:2px solid #60a5fa33;border-top-color:#60a5facc;border-radius:50%;width:48px;height:48px;animation:1s linear infinite route-loading-spin}.route-loading-text{color:#f1f5f9b3;margin:0;font-size:.9rem;font-weight:500}@keyframes route-loading-spin{to{transform:rotate(360deg)}}@keyframes route-loading-enter{0%{opacity:0}to{opacity:1}}@keyframes route-loading-exit{0%{opacity:1}to{opacity:0}}.App:after{content:"";pointer-events:none;z-index:10;background:linear-gradient(#0f172a 0%,#0000 4rem calc(100% - 4rem),#0f172a 100%);position:fixed;inset:0}.App.history-route:after{background:0 0}.App-header{color:#fff;background-color:#282c34;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;font-size:calc(10px + 2vmin);display:flex}.App-link{color:#61dafb}@media (width<=768px){.App{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.App-route-shell,.App-route-shell.is-exiting,.App-route-shell.is-entering{filter:none;opacity:1;transition:none;animation:none;transform:none}}.seasonal-backdrop{pointer-events:none;z-index:0;mix-blend-mode:screen;position:fixed;inset:0;overflow:hidden}.seasonal-backdrop__layer{position:absolute;inset:0}.pixel-particle{background:var(--particle-primary,var(--pixel-primary,#dbeafe));width:4px;height:4px;image-rendering:pixelated;opacity:0;filter:drop-shadow(0 0 6px var(--pixel-glow,#cbd5e166));box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary,#dbeafe));will-change:transform, opacity;animation-name:pixelFall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-15vh;left:0}@keyframes pixelFall{0%{opacity:0;transform:translate3d(var(--start-x,0vw), -10%, 0) scale(var(--scale,1)) rotate(var(--rot,0deg))}10%{opacity:.9}to{opacity:0;transform:translate3d(calc(var(--start-x,0vw) + var(--drift,0vw)), 115vh, 0) scale(var(--scale,1)) rotate(var(--rot,0deg))}}.pixel-particle--winter{box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), 0 -4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 4px 0 0 var(--particle-primary,var(--pixel-primary)), -4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 0 -8px 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 8px 0 0 var(--particle-secondary,var(--pixel-secondary)), -8px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px 0 0 0 var(--particle-secondary,var(--pixel-secondary))}.pixel-particle--spring{box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), -4px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 4px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 -4px 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 4px 0 0 var(--particle-secondary,var(--pixel-secondary)), -4px -4px 0 0 var(--particle-primary,var(--pixel-primary)), 4px -4px 0 0 var(--particle-primary,var(--pixel-primary)), -4px 4px 0 0 var(--particle-primary,var(--pixel-primary)), 4px 4px 0 0 var(--particle-primary,var(--pixel-primary));border-radius:1px}.pixel-particle--summer{animation-name:sunFloat;animation-timing-function:ease-in-out}.pixel-particle--summer-sun{transform-origin:50%;width:12px;height:12px;box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), 4px 0 0 0 var(--particle-primary,var(--pixel-primary)), -4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 0 4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 -4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 -8px 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 8px 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), -8px 0 0 0 var(--particle-secondary,var(--pixel-secondary));filter:drop-shadow(0 0 10px #ffd6664d)drop-shadow(0 0 16px #ffd66633);border-radius:2px;animation-name:sunFloat;animation-timing-function:ease-in-out;top:auto;bottom:-20vh}.pixel-particle--fall{box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), 4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 8px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 4px -4px 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px -4px 0 0 var(--particle-primary,var(--pixel-primary)), 4px 4px 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px 4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 4px 0 0 var(--particle-secondary,var(--pixel-secondary)), -4px 4px 0 0 var(--particle-primary,var(--pixel-primary))}.seasonal-backdrop--winter{--pixel-primary:#dbeafe;--pixel-secondary:#bfdbfe;--pixel-glow:#bfdbfe40;background:radial-gradient(circle at 10% 20%,#bfdbfe14 0,#0000 35%),radial-gradient(circle at 90% 75%,#94a3b80d 0,#0000 45%),radial-gradient(circle at 50% 10%,#e6f2ff0f 0,#0000 38%)}.seasonal-backdrop--spring{--pixel-primary:#e4e9ff;--pixel-secondary:#d8f5e4;--pixel-glow:#d4ddf459;background:radial-gradient(circle at 18% 25%,#d4ddf41f 0,#0000 38%),radial-gradient(circle at 82% 70%,#c8e8d814 0,#0000 42%)}.seasonal-backdrop--summer{--pixel-primary:#ffe9a8;--pixel-secondary:#fcd34d;--pixel-glow:#fcd34d47;background:radial-gradient(circle at 20% 30%,#fcd34d1f 0,#0000 36%),radial-gradient(circle at 80% 68%,#ffebb717 0,#0000 40%),radial-gradient(circle at 50% 85%,#ffe2941f 0,#0000 42%)}.seasonal-backdrop--fall{--pixel-primary:#f4b79a;--pixel-secondary:#e99a6f;--pixel-glow:#e99a6f47;background:radial-gradient(circle at 16% 24%,#e99a6f1f 0,#0000 34%),radial-gradient(circle at 85% 70%,#d4785014 0,#0000 42%)}@keyframes sunFloat{0%{opacity:0;transform:translate3d(var(--start-x,0vw), 0vh, 0) scale(calc(var(--scale,1) * .92)) rotate(var(--angle,0deg))}20%{opacity:.8}55%{opacity:1;transform:translate3d(calc(var(--start-x,0vw) + var(--drift,0vw)), -60vh, 0) scale(calc(var(--scale,1) * 1.08)) rotate(var(--angle,0deg))}to{opacity:0;transform:translate3d(calc(var(--start-x,0vw) + var(--drift,0vw)), -120vh, 0) scale(calc(var(--scale,1) * .95)) rotate(var(--angle,0deg))}}.seasonal-backdrop__sprites{z-index:1;position:absolute;inset:0}.holiday-sprite{width:4px;height:4px;image-rendering:pixelated;transform:scale(var(--sprite-scale,1));filter:drop-shadow(0 0 8px #ffffff26);animation:ease-in-out infinite spriteBob;position:absolute}@keyframes spriteBob{0%,to{transform:scale(var(--sprite-scale,1)) translateY(0)}50%{transform:scale(var(--sprite-scale,1)) translateY(-8px)}}.holiday-sprite--tree{background:#2d5016;width:20px;height:28px;bottom:0;box-shadow:8px 24px #8b4513,4px 20px #2d5016,12px 20px #2d5016,0 16px #2d5016,4px 16px #2d5016,12px 16px #2d5016,16px 16px #2d5016,4px 12px #3d6b1f,12px 12px #3d6b1f,0 8px #3d6b1f,4px 8px #3d6b1f,12px 8px #3d6b1f,16px 8px #3d6b1f,8px 4px #4d7b2f,4px 0 #4d7b2f,8px 0 #4d7b2f,12px 0 #4d7b2f,0 12px #c94d4d,16px 16px #c94d4d,8px 8px #d4af37,4px 16px #d4af37;animation:none!important;top:auto!important}.holiday-sprite--sleigh{opacity:0;background:#8b0000;width:32px;height:20px;animation:20s linear infinite sleighFly;box-shadow:4px 0 #8b0000,8px 0 #8b0000,12px 0 #8b0000,16px 0 #8b0000,0 4px brown,4px 4px brown,8px 4px brown,12px 4px brown,16px 4px brown,20px 4px brown,0 8px #d4af37,20px 8px #d4af37,24px 0 #c94d4d,28px 0 #c94d4d,24px -4px #fad5a5,28px -4px #fad5a5,24px -8px #c94d4d,28px -8px #c94d4d,28px -12px #fff}@keyframes sleighFly{0%{opacity:0;top:5%;left:-10%}15%{opacity:.4}50%{opacity:.4}85%{opacity:.4}to{opacity:0;top:8%;left:110%}}.holiday-sprite--egg{background:#fde7ef;border-radius:40% 40% 50% 50%;width:16px;height:20px;box-shadow:4px 4px #f4c2d4,4px 12px #f4c2d4,8px 8px #fff1c2,8px 16px #fff1c2,12px 6px #e4e9ff,12px 14px #e4e9ff}.holiday-sprite--bunny{background:#e8e4dc;width:16px;height:20px;box-shadow:4px 0 #e8e4dc,8px 0 #e8e4dc,0 4px #f5f3ed,4px 4px #f5f3ed,8px 4px #f5f3ed,12px 4px #f5f3ed,4px 8px #f5f3ed,8px 8px #f5f3ed,4px -8px #e8e4dc,8px -8px #e8e4dc,4px -4px #e8e4dc,8px -4px #e8e4dc,4px 0 #2d2d2d,8px 0 #2d2d2d,6px 4px #ff9db5,0 8px #fff}.holiday-sprite--beachball{background:#ff6b6b;border-radius:50%;width:16px;height:16px;animation:3s ease-in-out infinite beachBallBounce;box-shadow:4px 0 #ff6b6b,8px 0 #ff6b6b,0 4px #ffd93d,4px 4px #ffd93d,8px 4px #ffd93d,12px 4px #ffd93d,4px 8px #4ecdc4,8px 8px #4ecdc4,0 0 #fff,12px 0 #fff,0 12px #fff,12px 12px #fff}@keyframes beachBallBounce{0%,to{transform:scale(var(--sprite-scale,1)) translateY(0) rotate(0deg)}25%{transform:scale(var(--sprite-scale,1)) translateY(-20px) rotate(90deg)}50%{transform:scale(var(--sprite-scale,1)) translateY(0) rotate(180deg)}75%{transform:scale(var(--sprite-scale,1)) translateY(-20px) rotate(270deg)}}.holiday-sprite--surfboard{background:#4ecdc4;border-radius:30% 30% 40% 40%;width:8px;height:28px;animation:4s ease-in-out infinite surfboardSway;box-shadow:0 4px #4ecdc4,0 8px #4ecdc4,0 12px #4ecdc4,0 16px #4ecdc4,0 20px #4ecdc4,0 8px #ffe66d,0 12px #ffe66d,0 16px #ff6b6b}@keyframes surfboardSway{0%,to{transform:scale(var(--sprite-scale,1)) rotate(-5deg)}50%{transform:scale(var(--sprite-scale,1)) rotate(5deg)}}.holiday-sprite--pumpkin{background:#ff8c42;border-radius:45%;width:20px;height:20px;box-shadow:4px 0 #ff8c42,8px 0 #ff8c42,12px 0 #ff8c42,0 4px #f73,4px 4px #f73,8px 4px #f73,12px 4px #f73,16px 4px #f73,0 8px #f73,4px 8px #f73,8px 8px #f73,12px 8px #f73,16px 8px #f73,4px 12px #ff8c42,8px 12px #ff8c42,12px 12px #ff8c42,8px -4px #4d7b2f,4px 4px #2d2d2d,12px 4px #2d2d2d,6px 8px #2d2d2d,8px 8px #2d2d2d,10px 8px #2d2d2d}.holiday-sprite--ghost{background:#f5f5f5;border-radius:50% 50% 0 0;width:16px;height:20px;animation:4s ease-in-out infinite ghostFloat;box-shadow:4px 0 #f5f5f5,8px 0 #f5f5f5,0 4px #fff,4px 4px #fff,8px 4px #fff,12px 4px #fff,0 8px #fff,4px 8px #fff,8px 8px #fff,12px 8px #fff,0 12px #fff,4px 12px #fff,8px 12px #fff,12px 12px #fff,0 16px #fff,4px 16px #fff,8px 16px #fff,12px 16px #fff,4px 4px #2d2d2d,8px 4px #2d2d2d,6px 8px #2d2d2d}@keyframes ghostFloat{0%,to{transform:scale(var(--sprite-scale,1)) translateY(0);opacity:.85}50%{transform:scale(var(--sprite-scale,1)) translateY(-15px);opacity:.95}}@media (prefers-reduced-motion:reduce){.pixel-particle{display:none}.holiday-sprite{animation:none!important}}
