:root{--bg-primary:#0a0a12;--bg-secondary:#121218;--bg-card:#18181e;--bg-card-alt:#202028;--bg-carousel:#252530;--text-primary:#fff;--text-secondary:#c0b8ff;--accent-primary:#8e6bff;--border-color:#2d2d40;--border-color-light:#3a3a50;--success-color:#28a745;--danger-color:#dc3545;--info-color:#17a2b8;--season-container-height-desktop:284px;--season-container-height-tablet:249px;--season-container-height-mobile:214px}html[data-theme=light]{--bg-primary:beige;--bg-secondary:#fff8dc;--bg-card:beige;--bg-card-alt:#fff8dc;--bg-carousel:#fff8dc;--text-primary:#3e2723;--text-secondary:#5d4037;--accent-primary:#8b0000;--border-color:tan;--border-color-light:#deb887;--success-color:#28a745;--danger-color:#dc3545;--info-color:#17a2b8}*,:after,:before{box-sizing:border-box}button,input,select,textarea{font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:inherit;line-height:inherit}input[type=email],input[type=password],input[type=text],select,textarea{box-sizing:border-box;max-width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a12;background-color:var(--bg-primary);color:#fff;color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@font-face{font-family:CustomFont;font-style:normal;font-weight:400;src:url(/static/media/font.d19dcc38a149cb85c5d8.otf) format("opentype"),url(/static/media/font.6fb73f93b89db3da0c34.ttf) format("truetype")}.error-screen,.loading-screen{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh;padding:40px 20px;text-align:center}.error-screen h2,.loading-screen h2{color:var(--text-primary);margin-bottom:20px}.loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--border-color);border:4px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:40px;width:40px}.error-screen button{background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:16px;margin-top:20px;padding:12px 24px}.error-screen button:hover{background:var(--primary-color-dark)}.error-banner{align-items:center;background:#dc3545;background:var(--danger-color,#dc3545);border-radius:8px;bottom:20px;color:#fff;display:flex;gap:10px;max-width:400px;padding:12px 16px;position:fixed;right:20px;z-index:1000}.error-banner button{background:none;border:none;color:#fff;cursor:pointer;font-size:18px;margin-left:auto;padding:0}.app-year-container{background-color:var(--bg-secondary);margin-bottom:24px}.app-year-heading{color:var(--text-primary);font-size:2em;font-weight:700;margin:32px 0 12px 32px}.app-season-container{background-color:var(--bg-secondary);border-radius:12px;margin-bottom:24px;padding:8px 0}.app-season-heading{background:linear-gradient(90deg,#fff,#d8d2ff 50%,#b0a2ff);background-clip:text;-webkit-background-clip:text;color:var(--text-primary);color:#0000;font-size:2em;font-weight:700;margin:32px 32px 12px}html[data-theme=light] .app-season-heading{background:linear-gradient(90deg,#8b0000,brown 50%,#cd5c5c);background-clip:text;-webkit-background-clip:text;color:#0000}html[data-theme=light] .app-season-container{border:1px solid var(--border-color);box-shadow:0 2px 4px #0000001a}.photo-grid-container{box-sizing:border-box;margin:0 auto;max-width:1400px;padding:0 16px}.photo-grid,.photo-grid-container{align-items:center;display:flex;justify-content:center;width:100%}.photo-grid{margin:60px 0 80px;overflow:visible;padding:40px 20px}@media (max-width:991px) and (min-width:768px){.photo-grid-container h1{font-size:3em;margin-bottom:35px}.photo-grid{margin:50px 0 70px;padding:35px 15px}}@media (max-width:767px){.photo-grid-container h1{font-size:2.5em;margin-bottom:30px}.photo-grid{margin:40px 0 60px;padding:30px 10px}}.panel{align-items:stretch;border-radius:24px;box-sizing:border-box;color:var(--text-primary);display:flex;flex-direction:column;height:auto;justify-content:stretch;margin:0 auto 24px;max-width:1200px;min-height:350px;overflow:visible;padding:0 16px;text-align:center;width:100%}.panel,.panel.alt{background-color:var(--bg-card)}.panel+.panel{margin-top:32px}.panel h2{font-size:2.2em;margin-bottom:16px}.panel p{color:var(--text-secondary);font-size:1.2em}.story-launch-button{align-items:center;background-color:var(--accent-primary);border:none;border-radius:18px;color:var(--text-primary);cursor:pointer;display:flex;flex:1 1 auto;flex-direction:column;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:1.4em;height:100%;justify-content:center;padding:30px 40px;transition:background-color .3s ease;width:100%}.story-launch-button:hover{background-color:#1aa34a;box-shadow:0 0 10px #1db95480}.spotify-wrapped-btn.story-launch-button{background-color:initial;transition:none}.spotify-wrapped-btn.story-launch-button:hover{background-color:initial;box-shadow:none}.image-container{display:flex;flex-direction:column;height:100%;width:100%}.image-wrapper{margin:0 auto;overflow:hidden;position:relative;width:auto}.panel-image{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;display:block;height:auto;margin:0 auto;max-height:600px;max-width:95vw;object-fit:contain;position:static;-webkit-user-select:none;user-select:none;width:auto}.image-caption,.panel-image{background-color:var(--bg-secondary)}.image-caption{color:var(--text-primary);font-size:1.2em;line-height:1.5;margin:0;padding:24px}.hover-zoom{-webkit-font-smoothing:subpixel-antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden;position:relative;transition:transform .2s ease;will-change:transform;z-index:2}.hover-zoom:hover{transform:scale(1.03);z-index:3}.button-tap{transition:transform .1s cubic-bezier(.4,0,.2,1)}.button-tap:active{transform:scale(.95)}.spotify-wrapped-btn{background:none;border:none;cursor:pointer;flex-direction:column;height:auto;margin:40px auto 60px;outline:none;padding:0;position:relative;transform:scale(1.25);transform-origin:center;width:auto;z-index:3}.spotify-wrapped-btn,.spotify-wrapped-gradient{align-items:center;display:flex;pointer-events:auto}.spotify-wrapped-gradient{-webkit-font-smoothing:subpixel-antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(45deg,#18181e,#252530 40%,#8e6bff 60%,#7858e8 80%,#18181e);background-size:300% 300%;border-radius:22%;box-shadow:0 4px 16px 0 #4a3aff26;height:300px;justify-content:center;margin-bottom:20px;padding:3px;transition:transform .15s ease,box-shadow .15s ease;width:300px;will-change:transform,background-position}.spotify-wrapped-gradient.hovered{animation:gradientMove 3s ease infinite;transform:translateY(-2px)}.spotify-wrapped-btn.hovered .spotify-wrapped-gradient{box-shadow:0 0 0 4px #4a3aff33,0 8px 24px 0 #8e6bff40;filter:brightness(1.1)}.spotify-wrapped-image{align-items:center;background:var(--bg-primary);border-radius:22%;box-sizing:border-box;display:flex;height:294px;justify-content:center;overflow:hidden;padding:12px;transform:translateZ(0);width:294px}.wrapped-icon-img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;border-radius:16%;height:270px;object-fit:cover;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:270px}.spotify-wrapped-username{color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:35px;font-weight:600;letter-spacing:.2px;margin:0;max-width:300px;overflow:hidden;text-align:center;text-overflow:ellipsis;transition:color .15s ease;white-space:nowrap}.spotify-wrapped-btn.hovered .spotify-wrapped-username{color:var(--accent-primary)}html[data-theme=light] .spotify-wrapped-gradient{background:linear-gradient(45deg,#8b4513,sienna 40%,tan 60%,#8b0000 80%,#654321)!important;box-shadow:0 4px 16px 0 #8b000026!important}html[data-theme=light] .spotify-wrapped-btn.hovered .spotify-wrapped-gradient{box-shadow:0 0 0 4px #8b000033,0 8px 24px 0 #8b000040}html[data-theme=light] .spotify-wrapped-username{color:var(--text-primary)}html[data-theme=light] .panel{box-shadow:0 4px 8px #0000001a}html[data-theme=light] .spotify-wrapped-btn.hovered .spotify-wrapped-username{color:var(--accent-primary)}#wrappedGradient stop:first-child{stop-color:#7858e8}#wrappedGradient stop:last-child{stop-color:#ffc371}.wrapped-icon-svg{height:64px;width:64px}.wrapped-icon-circle{cx:18px;cy:18px;r:18px;fill:url(#wrappedGradient)}.wrapped-icon-path{stroke:var(--text-primary);stroke-width:2.2;stroke-linecap:round}.panel.wrapped-btn-only{background:#0000!important;box-shadow:none!important;margin:40px auto 60px;min-height:auto;overflow:visible;padding:0!important;pointer-events:none}.panel-1{min-height:200px}@media (max-width:991px) and (min-width:768px){.panel{min-height:325px}.panel-1{min-height:200px}.image-caption{font-size:1.1em;padding:20px}.spotify-wrapped-btn{margin-bottom:40px;margin-top:25px;transform:scale(1.1)}.spotify-wrapped-gradient{height:260px;margin-bottom:18px;width:260px}.spotify-wrapped-image{height:254px;padding:11px;width:254px}.wrapped-icon-img{border-radius:16%;height:232px;object-fit:cover;width:232px}.spotify-wrapped-username{font-size:32px;max-width:260px}}@media (max-width:767px){.panel{min-height:300px}.panel-1{min-height:200px}.image-caption{font-size:1em;padding:16px}.spotify-wrapped-btn{margin-bottom:20px;margin-top:10px;transform:scale(1)}.spotify-wrapped-gradient{height:240px;margin-bottom:16px;width:240px}.spotify-wrapped-image{height:234px;padding:10px;width:234px}.wrapped-icon-img{border-radius:16%;height:214px;object-fit:cover;width:214px}.spotify-wrapped-username{font-size:30px;max-width:240px}}.photo-grid .panel{margin:0 0 24px;max-width:none}.typography{font-family:inherit;line-height:1.5;margin:0}.typography--h1{font-size:3rem;font-weight:800;letter-spacing:-.01562em;line-height:1.2}.typography--h2{font-size:2.5rem;font-weight:700;letter-spacing:-.00833em;line-height:1.2}.typography--h3{font-size:2rem;font-weight:600;letter-spacing:0;line-height:1.3}.typography--h4{font-size:1.75rem;font-weight:600;letter-spacing:.00735em;line-height:1.35}.typography--h5{font-size:1.5rem;font-weight:600;letter-spacing:0;line-height:1.4}.typography--h6{font-size:1.25rem;font-weight:600;letter-spacing:.0075em;line-height:1.4}.typography--subtitle1{font-size:1rem;font-weight:600;letter-spacing:.00938em;line-height:1.5}.typography--subtitle2{font-size:.875rem;font-weight:600;letter-spacing:.00714em;line-height:1.43}.typography--body1{font-size:1rem;font-weight:400;letter-spacing:.00938em;line-height:1.5}.typography--body2{font-size:.875rem;font-weight:400;letter-spacing:.01071em;line-height:1.43}.typography--caption{font-size:.75rem;font-weight:400;letter-spacing:.03333em;line-height:1.33}.typography--overline{font-size:.75rem;font-weight:500;letter-spacing:.08333em;line-height:1.33;text-transform:uppercase}.typography--align-left{text-align:left}.typography--align-center{text-align:center}.typography--align-right{text-align:right}.typography--align-justify{text-align:justify}.typography--color-primary{color:var(--text-primary)}.typography--color-secondary{color:var(--text-secondary)}.typography--color-accent{color:var(--accent-primary)}.typography--color-error{color:#f44336;color:var(--error-color,#f44336)}.typography--color-warning{color:#ff9800;color:var(--warning-color,#ff9800)}.typography--color-success{color:#4caf50;color:var(--success-color,#4caf50)}.typography--no-wrap{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.typography--gutter-bottom{margin-bottom:.75em}@media (max-width:991px) and (min-width:768px){.typography--h1{font-size:2.25rem}.typography--h2{font-size:1.875rem}.typography--h3{font-size:1.5rem}.typography--h4{font-size:1.3125rem}.typography--h5{font-size:1.125rem}.typography--h6{font-size:.9375rem}}@media (max-width:767px){.typography--h1{font-size:1.5rem}.typography--h2{font-size:1.25rem}.typography--h3{font-size:1rem}.typography--h4{font-size:.875rem}.typography--h5{font-size:.75rem}.typography--h6{font-size:.625rem}}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-weight:500;justify-content:center;outline:none;position:relative;text-decoration:none;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.6}.btn--small{font-size:.875rem;line-height:1.25rem;padding:8px 16px}.btn--medium{font-size:1rem;line-height:1.5rem;padding:12px 24px}.btn--large{font-size:1.125rem;line-height:1.75rem;padding:16px 32px}.btn--primary{background:var(--accent-primary);color:var(--text-on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-primary);background:var(--accent-primary-hover,var(--accent-primary));transform:translateY(-1px)}.btn--secondary{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary)}.btn--icon{background:#0000;border:1px solid var(--border-color);border-radius:50%;color:var(--text-secondary);height:40px;min-width:40px;padding:8px;width:40px}.btn--icon:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--text-primary)}.btn--close{background:#0000;border:none;border-radius:50%;color:var(--text-secondary);font-size:1.5rem;font-weight:300;height:32px;line-height:1;width:32px}.btn--close:hover:not(:disabled){background:#ffffff1a;color:var(--text-primary)}.btn--spotify{background:linear-gradient(135deg,#1db954,#1ed760 50%,#1db954);border-radius:20px;box-shadow:0 4px 15px #1db9544d;color:#fff;font-weight:600;overflow:hidden;padding:16px 24px;position:relative}.btn--spotify:hover:not(:disabled){background:linear-gradient(135deg,#1ed760,#1db954 50%,#1ed760);box-shadow:0 6px 20px #1db95466;transform:scale(1.05)}.btn--spotify:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s;width:100%}.btn--spotify:hover:before{left:100%}.btn--full-width{width:100%}.btn--loading{pointer-events:none}.btn__loading-spinner{animation:btn-spin 1s ease-in-out infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:initial;height:16px;width:16px}@keyframes btn-spin{to{transform:rotate(1turn)}}.btn.btn--theme-toggle{background-color:var(--accent-primary);border:1px solid var(--border-color)!important;border-radius:8px;color:var(--bg-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-weight:500;padding:8px 16px;transition:background-color .2s ease!important}.btn--theme-toggle:hover:not(:disabled){background-color:var(--accent-secondary)}html[data-theme=light] .btn--theme-toggle{background-color:var(--accent-primary);border:1px solid var(--border-color-light)!important;color:var(--bg-primary)}html[data-theme=light] .btn--theme-toggle:hover:not(:disabled){background-color:var(--accent-secondary)}@media (max-width:991px) and (min-width:768px){.btn--theme-toggle{border-radius:7px;padding:7px 14px}}@media (max-width:767px){.btn--theme-toggle{border-radius:6px;padding:6px 12px}}@media (max-width:768px){.btn--large{font-size:1rem;padding:14px 28px}.btn--medium{font-size:.875rem;padding:10px 20px}}.birthday-card-overlay{align-items:center;background-color:#000000d9;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1001}.birthday-card{background-color:var(--bg-primary);border-radius:20px;box-shadow:0 10px 30px #0000004d;display:flex;flex-direction:column;height:85vh;max-height:800px;max-width:600px;overflow:hidden;position:relative;width:90vw}.birthday-card-header{align-items:center;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:20px 20px 0 0;color:#fff;color:var(--text-on-accent,#fff);display:flex;justify-content:center;padding:24px;position:relative}.birthday-card-title{color:inherit;font-weight:700;margin:0;text-align:center}.birthday-card-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;font-size:1.5rem;font-weight:700;height:36px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:all .2s ease;width:36px}.birthday-card-close:hover{background:#ffffff4d;transform:translateY(-50%) scale(1.1)}.birthday-card-content{flex:1 1;overflow-y:auto;padding:32px;scroll-behavior:smooth}.birthday-card-intro{color:var(--text-secondary);font-size:1.1em;line-height:1.6;margin-bottom:32px;text-align:center}.birthday-card-section{background-color:var(--bg-secondary);border-left:4px solid var(--accent-primary);border-radius:12px;margin-bottom:32px;padding:24px;transition:all .2s ease}.birthday-card-section:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.birthday-card-section:last-child{margin-bottom:0}.birthday-card-section-heading{color:var(--accent-primary);font-weight:600;margin:0 0 16px}.birthday-card-section-body{color:var(--text-primary);line-height:1.6;margin:0;white-space:pre-wrap}.App[data-theme=light] .birthday-card{background-color:var(--bg-primary);box-shadow:0 10px 30px #00000026}.App[data-theme=light] .birthday-card-section{background-color:var(--bg-secondary);box-shadow:0 2px 8px #0000000d}.App[data-theme=light] .birthday-card-section:hover{box-shadow:0 4px 12px #00000014}.birthday-card-content::-webkit-scrollbar{width:6px}.birthday-card-content::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.birthday-card-content::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:3px}.birthday-card-content::-webkit-scrollbar-thumb:hover{background:var(--accent-secondary)}@media (max-width:991px) and (min-width:768px){.birthday-card{border-radius:16px;height:80vh;max-height:700px;max-width:500px;width:85vw}.birthday-card-header{border-radius:16px 16px 0 0;padding:20px}.birthday-card-close{font-size:1.3rem;height:32px;right:14px;width:32px}.birthday-card-content{padding:28px}.birthday-card-intro{font-size:1.05em;margin-bottom:28px}.birthday-card-section{border-radius:10px;margin-bottom:28px;padding:20px}.birthday-card-section-heading{margin-bottom:14px}}@media (max-width:767px){.birthday-card{border-radius:12px;height:90vh;max-height:none;max-width:none;width:95vw}.birthday-card-header{border-radius:12px 12px 0 0;padding:16px}.birthday-card-close{font-size:1.1rem;height:28px;right:12px;width:28px}.birthday-card-content{padding:20px}.birthday-card-intro{font-size:1em;margin-bottom:24px}.birthday-card-section{border-left-width:3px;border-radius:8px;margin-bottom:24px;padding:16px}.birthday-card-section-heading{margin-bottom:12px}.birthday-card-section-body{line-height:1.5}.birthday-card-content::-webkit-scrollbar{width:4px}}.birthday-card-close:focus,.birthday-card-section:focus-within{outline:2px solid var(--accent-primary);outline-offset:2px}.birthday-card-section:focus-within{border-radius:12px}@keyframes slideInCard{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.birthday-card{animation:slideInCard .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.birthday-card-section{animation:fadeInUp .4s ease-out;animation-fill-mode:both}.birthday-card-section:first-child{animation-delay:.1s}.birthday-card-section:nth-child(2){animation-delay:.2s}.birthday-card-section:nth-child(3){animation-delay:.3s}.birthday-card-section:nth-child(4){animation-delay:.4s}.birthday-card-section:nth-child(5){animation-delay:.5s}.video-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;bottom:0;box-sizing:border-box;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1002}.video-modal-content{align-items:center;display:flex;flex-direction:column;max-height:90vh;max-width:900px;position:relative;width:100%}.video-modal-close-button{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;box-shadow:0 4px 12px #0000004d;color:var(--text-primary);cursor:pointer;display:flex;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:20px;height:40px;justify-content:center;position:absolute;right:-10px;top:-10px;transition:all .2s ease;width:40px;z-index:1003}.video-modal-close-button:hover{background:var(--accent-primary);color:#fff;transform:scale(1.1)}.video-modal-close-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.video-modal-container{align-items:center;display:flex;justify-content:center;width:100%}.video-modal-gradient-border{animation:gradientMove 3s ease infinite;background:linear-gradient(45deg,#18181e,#252530 40%,#8e6bff 60%,#7858e8 80%,#18181e);background-size:300% 300%;border-radius:24px;box-shadow:0 8px 32px #8e6bff4d;padding:4px;transition:all .3s ease}.video-modal-video-wrapper{height:100%;overflow:hidden;position:relative}.video-modal-video,.video-modal-video-wrapper{background:var(--bg-primary);border-radius:20px;width:100%}.video-modal-video{display:block;height:auto;max-height:80vh}.video-modal-video::-webkit-media-controls-panel{background:linear-gradient(180deg,#0000,#000000b3);border-radius:0 0 20px 20px}.video-modal-video::-webkit-media-controls-play-button,.video-modal-video::-webkit-media-controls-volume-slider{filter:brightness(1.2)}.video-modal-video::-webkit-media-controls-fullscreen-button{filter:brightness(1.2)}html[data-theme=light] .video-modal-gradient-border{background:linear-gradient(45deg,#8b4513,sienna 40%,tan 60%,#8b0000 80%,#654321);box-shadow:0 8px 32px #8b00004d}html[data-theme=light] .video-modal-close-button{background:var(--bg-card);border-color:var(--border-color-light)}html[data-theme=light] .video-modal-close-button:hover{background:var(--accent-primary);color:#fff}@media (max-width:991px) and (min-width:768px){.video-modal-overlay{padding:15px}.video-modal-content{max-height:92vh;max-width:100%}.video-modal-gradient-border{border-radius:22px;padding:3.5px}.video-modal-video,.video-modal-video-wrapper{border-radius:18.5px}.video-modal-video{max-height:82vh}.video-modal-close-button{font-size:19px;height:38px;right:-9px;top:-9px;width:38px}}@media (max-width:767px){.video-modal-overlay{padding:10px}.video-modal-content{max-height:95vh;max-width:100%}.video-modal-gradient-border{border-radius:20px;padding:3px}.video-modal-video-wrapper{border-radius:17px}.video-modal-video{border-radius:17px;max-height:85vh}.video-modal-close-button{font-size:18px;height:36px;right:-8px;top:-8px;width:36px}}.video-modal-video:focus{outline:3px solid var(--accent-primary);outline-offset:2px}.video-modal-overlay{animation:modalFadeIn .3s ease-out}.video-modal-content{animation:modalSlideIn .3s ease-out}.login-overlay{align-items:center;background:var(--bg-primary);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1001}.login-container{box-sizing:border-box;max-width:400px;padding:20px;width:100%}.login-content{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;box-shadow:0 8px 32px #0000001a;padding:40px 32px;text-align:center}html[data-theme=dark] .login-content{box-shadow:0 8px 32px #0000004d}.login-title{color:var(--text-primary);font-size:2.5rem;font-weight:300;letter-spacing:2px;margin:0 0 8px}.login-subtitle{color:var(--text-secondary);font-size:.95rem;line-height:1.4;margin:0 0 32px}.login-form{width:100%}.login-input-group{margin-bottom:24px;text-align:left}.login-input{background:var(--bg-primary);border:2px solid var(--border-primary);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:1rem;padding:16px;transition:all .2s ease;width:100%}.login-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61a;box-shadow:0 0 0 3px var(--accent-primary-alpha);outline:none}.login-input-error,.login-input-error:focus{border-color:#ef4444;border-color:var(--error-color)}.login-input-error:focus{box-shadow:0 0 0 3px #ef44441a;box-shadow:0 0 0 3px var(--error-color-alpha)}.login-input:disabled{cursor:not-allowed;opacity:.6}.login-error-message{color:#ef4444;color:var(--error-color);display:block;font-size:.85rem;margin-top:8px;text-align:left}.login-button{background:var(--accent-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;letter-spacing:1px;padding:16px;text-transform:uppercase;transition:all .2s ease;width:100%}.login-button:hover:not(:disabled){background:#2563eb;background:var(--accent-primary-hover);box-shadow:0 4px 12px #3b82f61a;box-shadow:0 4px 12px var(--accent-primary-alpha);transform:translateY(-1px)}.login-button:active:not(:disabled){box-shadow:0 2px 8px #3b82f61a;box-shadow:0 2px 8px var(--accent-primary-alpha);transform:translateY(0)}.login-button:disabled{background:var(--border-primary);box-shadow:none;cursor:not-allowed;transform:none}@media (max-width:480px){.login-container{padding:16px}.login-content{padding:32px 24px}.login-title{font-size:2rem}.login-button,.login-input{padding:14px}}@media (max-width:768px){.login-container{max-width:360px}}:root{--error-color:#ef4444;--error-color-alpha:#ef44441a;--accent-primary-alpha:#3b82f61a;--accent-primary-hover:#2563eb}html[data-theme=dark]{--error-color:#f87171;--error-color-alpha:#f871711a;--accent-primary-alpha:#60a5fa1a;--accent-primary-hover:#3b82f6}.scrapbook-title{flex-direction:column;margin:40px 0 24px;position:relative;z-index:2}.scrapbook-title,.title-main{align-items:center;display:flex;justify-content:center}.title-main{flex-direction:row;margin-bottom:8px}.title-steven,.title-yoyo{display:inline-block;font-weight:800;letter-spacing:-.03em;line-height:1}.title-yoyo{background:linear-gradient(90deg,#fff,#d8d2ff 50%,#b0a2ff);background-clip:text;-webkit-background-clip:text;color:#0000;font-size:4.5rem}.title-ampersand{color:var(--accent-primary);display:inline-block;font-size:3.5rem;font-weight:700;margin:0 15px;transform:rotate(-5deg) translateY(5px)}.title-steven{background:linear-gradient(90deg,#b0a2ff,#8e6bff 50%,#7858e8);background-clip:text;-webkit-background-clip:text;color:#0000;font-size:4.5rem}.title-tagline{color:var(--text-secondary);font-size:1.5rem;font-style:italic;font-weight:500;letter-spacing:.05em;margin-top:10px}@media (max-width:991px) and (min-width:768px){.title-steven,.title-yoyo{font-size:3.6rem}.title-ampersand{font-size:2.8rem;margin:0 12px}.title-tagline{font-size:1.35rem}.scrapbook-title{margin:35px 0 22px}}@media (max-width:767px){.title-steven,.title-yoyo{font-size:2.8rem}.title-ampersand{font-size:2.2rem;margin:0 8px}.title-tagline{font-size:1.2rem}.scrapbook-title{margin:30px 0 20px}}html[data-theme=light] .title-yoyo{background:linear-gradient(90deg,#8b0000,brown 50%,#cd5c5c);background-clip:text;-webkit-background-clip:text;color:#0000}html[data-theme=light] .title-steven{background:linear-gradient(90deg,brown,#8b0000 50%,#654321);background-clip:text;-webkit-background-clip:text;color:#0000}.event-photo-grid-container{box-sizing:border-box;max-width:100%;width:100%}.event-photo-grid{grid-gap:36px;align-items:start;display:grid;gap:36px;grid-template-columns:repeat(auto-fit,320px);justify-content:center;justify-items:center;margin:32px 0;width:100%}.event-photo-panel{background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:24px;box-shadow:0 6px 16px #0000004d;display:flex;flex-direction:column;height:320px;margin:0;overflow:hidden;padding:0;transition:transform .3s ease,box-shadow .3s ease;width:320px}.event-photo-panel:hover{box-shadow:0 8px 24px #0006;transform:translateY(-4px)}.App[data-theme=light] .event-photo-panel{border:1px solid var(--border-color-light);box-shadow:0 4px 8px #0000001a}.App[data-theme=light] .event-photo-panel:hover{box-shadow:0 6px 12px #00000026}.event-photo-img{border-radius:24px 24px 0 0;display:block;height:100%;object-fit:cover;width:100%}.event-photo-panel .image-container{display:grid;height:100%;width:100%}.event-photo-panel .image-container.has-caption{grid-template-rows:1fr auto}.event-photo-panel .image-container.no-caption{grid-template-rows:1fr}.event-photo-panel .image-wrapper{height:100%;margin:0 auto;overflow:hidden;position:relative;width:100%}.event-photo-panel .image-caption{background-color:var(--bg-secondary);color:var(--text-primary);font-size:1.2em;line-height:1.5;margin:0;padding:24px}.hover-zoom{transform-origin:center;transition:transform .2s ease-in-out;z-index:1}.hover-zoom:hover{transform:scale(1.05);z-index:2}@media (max-width:991px) and (min-width:768px){.event-photo-grid{gap:24px;grid-template-columns:repeat(auto-fit,240px);justify-content:center}.event-photo-panel{height:240px;width:240px}.event-photo-panel .image-container.no-caption .event-photo-img,.event-photo-panel .image-container.no-caption .image-wrapper{height:100%}.event-photo-panel .image-container.has-caption .event-photo-img{height:180px}.event-photo-panel .image-container.no-caption .video-wrapper{height:100%}.event-photo-panel .image-container.has-caption .video-wrapper{height:180px}.event-photo-panel .image-caption{font-size:1em;padding:16px}}@media (max-width:767px){.event-photo-grid{gap:16px;grid-template-columns:repeat(auto-fit,160px);justify-content:center}.event-photo-panel{height:160px;width:160px}.event-photo-panel .image-container.no-caption .event-photo-img,.event-photo-panel .image-container.no-caption .image-wrapper{height:100%}.event-photo-panel .image-container.has-caption .event-photo-img{height:120px}.event-photo-panel .image-container.no-caption .video-wrapper{height:100%}.event-photo-panel .image-container.has-caption .video-wrapper{height:120px}.event-photo-panel .image-caption{font-size:.9em;padding:12px}}.event-photo-panel .video-wrapper{background:var(--bg-primary);border-radius:24px 24px 0 0;height:100%;margin:0 auto;overflow:hidden;position:relative;width:100%}.video-thumbnail-container{align-items:center;cursor:pointer;display:flex;justify-content:center;position:relative;transition:all .2s ease}.video-thumbnail-container:hover{filter:brightness(1.1)}.video-thumbnail-container:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.video-thumbnail-image{border-radius:24px 24px 0 0;display:block;height:100%;object-fit:cover;width:100%}.video-play-button-overlay{filter:drop-shadow(0 2px 8px rgba(0,0,0,.3));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .2s ease;z-index:3}.video-thumbnail-container:hover .video-play-button-overlay{transform:translate(-50%,-50%) scale(1.1)}.video-play-button-overlay svg{transition:all .2s ease}.video-thumbnail-container:hover .video-play-button-overlay svg circle{fill:#000000d9}.video-thumbnail-error,.video-thumbnail-fallback,.video-thumbnail-loading{align-items:center;background:var(--bg-secondary);border-radius:24px 24px 0 0;color:var(--text-secondary);display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.video-thumbnail-loading .loading-spinner{animation:spin 1s linear infinite;border-top:3px solid var(--border-color);border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-primary);height:32px;margin-bottom:12px;width:32px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.video-thumbnail-error p,.video-thumbnail-loading p{font-size:.9em;margin:0;text-align:center}.video-thumbnail-error{background:var(--bg-tertiary)}.video-thumbnail-fallback{background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-tertiary) 100%)}.event-photo-video{background:var(--bg-primary);border-radius:24px 24px 0 0;display:block;height:100%;object-fit:contain;width:100%;z-index:2}.event-photo-video::-webkit-media-controls{background-color:#00000080;border-radius:0 0 24px 24px}.event-photo-video::-webkit-media-controls-panel{display:flex!important;opacity:1!important}.base-inline-actions{position:absolute;z-index:10}.gear-icon{align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.gear-icon:hover{background:#000000e6;transform:scale(1.1)}.gear-icon:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.inline-photo-actions{position:absolute;right:8px;top:8px;z-index:10}.add-photo-button.event-photo-panel{background:var(--bg-card);border:none;border:1.5px dashed var(--border-color);cursor:pointer;opacity:.8;padding:0;transition:all .3s ease}.add-photo-button.event-photo-panel:hover{background:var(--bg-card-alt);border-style:solid;opacity:1}.App[data-theme=light] .add-photo-button.event-photo-panel{background:var(--bg-card);border:1.5px dashed var(--border-color-light)}.App[data-theme=light] .add-photo-button.event-photo-panel:hover{border-style:solid}.add-photo-content{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center;transition:color .3s ease;width:100%}.add-photo-button:hover .add-photo-content{color:var(--text-primary)}.plus-icon{font-size:48px;font-weight:300;transition:transform .3s ease}.add-photo-button:hover .plus-icon{transform:scale(1.1)}.add-text{font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);letter-spacing:.5px}@media (max-width:991px) and (min-width:768px){.plus-icon{font-size:36px}.add-text{font-size:14px}}@media (max-width:767px){.plus-icon{font-size:24px}.add-text{font-size:12px}.add-photo-content{gap:8px}}.inline-event-actions{right:8px;top:8px}.add-event-button{background:none;border:none;cursor:pointer;padding:0}.add-event-button .avatar-bubble-image{align-items:center;background:var(--bg-primary);display:flex;justify-content:center}.add-event-button .add-event-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.add-event-button .plus-icon{color:var(--accent-primary);font-size:24px;font-weight:700;line-height:1}.add-event-button .avatar-bubble-gradient{background:linear-gradient(45deg,#18181e,#252530 40%,#8e6bff 60%,#7858e8 80%,#18181e);background-size:300% 300%}html[data-theme=light] .add-event-button .avatar-bubble-gradient{background:linear-gradient(45deg,#8b4513,sienna 40%,tan 60%,#8b0000 80%,#654321);background-size:300% 300%}.add-event-button .avatar-bubble-username{color:var(--text-primary)}.add-event-button:hover .avatar-bubble-gradient{animation:gradientMove 2s ease infinite}.add-event-button:hover .plus-icon{transform:scale(1.1);transition:transform .15s ease}.add-event-button:focus{outline:none}.add-event-button:focus .avatar-bubble-gradient{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-primary) 15%,#0000)}.avatar-carousel-panel{border:1px solid var(--border-color);border-radius:0 0 24px 24px;border-top:none;box-shadow:inset 0 0 10px #0003;margin:0 32px 5%;max-width:calc(100% - 64px);overflow:hidden;padding:0 0 32px;position:relative;scroll-behavior:smooth;scroll-margin-top:40px;width:calc(100% - 64px);z-index:2}.avatar-carousel-panel,.avatar-carousel-panel.alt{background:var(--bg-secondary)}.avatar-carousel-panel+.avatar-carousel-panel{margin-top:24px}.avatar-carousel-panel-content{box-sizing:border-box;margin:0 auto;overflow-x:auto;padding:12px 24px;width:100%}.avatar-carousel-panel-close{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:50%;color:var(--text-primary);cursor:pointer;font-size:24px;height:40px;position:absolute;right:24px;top:16px;transition:background .2s,color .2s;width:40px;z-index:11}.avatar-carousel-panel-close:hover{background:var(--bg-card-alt);color:var(--accent-primary)}html[data-theme=light] .avatar-carousel-panel-close{background:var(--bg-secondary);color:var(--text-primary)}html[data-theme=light] .avatar-carousel-panel{border:1px solid var(--border-color);box-shadow:inset 0 0 10px #0000000d}html[data-theme=light] .avatar-carousel-panel-close:hover{background:var(--bg-card-alt);color:var(--accent-primary)}.panel-images{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));justify-content:center;justify-items:start;margin:0 auto;max-width:1200px;padding:24px 0}.panel-images img{border-radius:12px;box-shadow:0 2px 8px #00000080;height:320px;object-fit:cover;transition:transform .2s ease;width:100%}.panel-images img:hover{transform:scale(1.02)}@media (max-width:991px) and (min-width:768px){.avatar-carousel-panel{margin:0 28px 5%;max-width:calc(100% - 56px);padding:0 0 24px;width:calc(100% - 56px)}.avatar-carousel-panel-content{padding:12px 16px}.panel-images{gap:22px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));justify-content:center;padding:20px 0}.panel-images img{height:240px}}@media (max-width:767px){.avatar-carousel-panel{margin:0 24px 5%;max-width:calc(100% - 48px);padding:0 0 16px;width:calc(100% - 48px)}.avatar-carousel-panel-content{padding:12px 8px}.panel-images{gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));justify-content:center;padding:16px 0}.panel-images img{height:180px}}.photo-grid-loading{align-items:center;display:flex;justify-content:center;min-height:200px;padding:40px 20px}.loading-message{color:var(--text-secondary);font-size:16px;font-weight:500;opacity:.7;text-align:center}:root{--bubble-width:160px;--bubble-gap:12px}.avatar-carousel-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:24px;box-shadow:inset 0 0 10px #0003;box-sizing:border-box;margin:0 32px 32px;max-width:calc(100% - 64px);min-height:var(--season-container-height-desktop);overflow-x:hidden;padding:20px 0;position:relative;-webkit-user-select:none;user-select:none;width:calc(100% - 64px)}.avatar-carousel-container.panel-open{border-bottom:none;border-radius:24px 24px 0 0;margin-bottom:0}.avatar-carousel-arrow{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color-light);border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;font-size:24px;height:48px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:background .2s,border-color .2s,opacity .2s;width:48px;z-index:6}.avatar-carousel-arrow:hover{background:var(--bg-secondary);border-color:var(--accent-primary)}.avatar-carousel-arrow.left{left:12px}.avatar-carousel-arrow.right{right:12px}.avatar-carousel-arrow:disabled{cursor:not-allowed;opacity:.3}.avatar-carousel-track{cursor:grab;display:flex;gap:12px;gap:var(--bubble-gap);padding:36px 30px 40px;touch-action:pan-x;-webkit-user-select:none;user-select:none}.avatar-carousel-bubble{max-width:160px;max-width:var(--bubble-width);min-width:160px;min-width:var(--bubble-width)}.avatar-bubble-inner,.avatar-carousel-bubble{align-items:center;display:flex;flex-direction:column}.avatar-bubble-inner{cursor:pointer;position:relative}@keyframes gradientMove{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.avatar-bubble-gradient{-webkit-font-smoothing:subpixel-antialiased;align-items:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(45deg,#18181e,#252530 40%,#8e6bff 60%,#7858e8 80%,#18181e);background-size:300% 300%;border-radius:22%;box-shadow:0 4px 16px 0 #4a3aff1a;display:flex;filter:none;height:140px;justify-content:center;margin-bottom:12px;padding:1.5px;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;width:140px;will-change:transform,background-position}.avatar-bubble-gradient:hover{animation:gradientMove 2s ease infinite;transform:translateY(-2px)}html[data-theme=light] .avatar-bubble-gradient{background:linear-gradient(45deg,#8b4513,sienna 40%,tan 60%,#8b0000 80%,#654321);background-size:300% 300%}html[data-theme=light] .avatar-carousel-container{border:1px solid var(--border-color);box-shadow:inset 0 0 10px #0000000d}.avatar-bubble-open .avatar-bubble-gradient{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-primary) 15%,#0000),0 8px 24px 0 color-mix(in srgb,var(--accent-primary) 25%,#0000);filter:brightness(1.08) drop-shadow(0 0 6px color-mix(in srgb,var(--accent-primary) 40%,transparent))}.avatar-bubble-image{align-items:center;background:var(--bg-primary);border-radius:22%;box-sizing:border-box;display:flex;height:137px;justify-content:center;overflow:hidden;padding:4px;width:137px}.avatar-bubble-image img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;background:#0000;border-radius:22%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;width:100%}.avatar-bubble-username{color:var(--text-primary);font-size:16px;font-weight:500;letter-spacing:.1px;max-width:140px;overflow:hidden;text-align:center;text-overflow:ellipsis;transition:color .15s ease;white-space:nowrap}.avatar-bubble-open .avatar-bubble-username{color:var(--accent-primary)}.avatar-bubble-inner{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .3s ease}.avatar-bubble-inner .inline-event-actions{opacity:0;position:absolute;right:8px;top:8px;transition:opacity .2s ease;z-index:20}.avatar-bubble-inner .inline-event-actions:focus-within,.avatar-bubble-inner:hover .inline-event-actions{opacity:1}.avatar-bubble-open{transform:scale(1.1)}.avatar-carousel-wrapper{position:relative;width:100%}@media (max-width:991px) and (min-width:768px){:root{--bubble-width:140px;--bubble-gap:11px}.avatar-carousel-arrow{font-size:22px;height:44px;width:44px}.avatar-carousel-track{padding:30px 35px 32px}.avatar-bubble-gradient{height:120px;width:120px}.avatar-bubble-image{height:117px;width:117px}.avatar-bubble-username{font-size:15px;max-width:120px}.avatar-carousel-container{margin:0 28px 32px;max-width:calc(100% - 56px);min-height:var(--season-container-height-tablet);width:calc(100% - 56px)}}@media (max-width:767px){:root{--bubble-width:120px;--bubble-gap:10px}.avatar-carousel-arrow{font-size:20px;height:40px;width:40px}.avatar-carousel-track{padding:24px 40px}.avatar-bubble-gradient{height:100px;width:100px}.avatar-bubble-image{height:97px;width:97px}.avatar-bubble-username{font-size:14px;max-width:100px}.avatar-carousel-container{margin:0 24px 32px;max-width:calc(100% - 48px);min-height:var(--season-container-height-mobile);width:calc(100% - 48px)}.avatar-bubble-inner{min-height:44px;min-width:44px;padding:4px}}.empty-season-card{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:24px;box-shadow:inset 0 0 10px #0003;box-sizing:border-box;display:flex;height:var(--season-container-height-desktop);justify-content:center;margin:0 32px 32px;max-width:calc(100% - 64px);opacity:.9;padding:20px;position:relative;transition:opacity .2s ease;width:calc(100% - 64px)}.empty-season-card:hover{opacity:1}.empty-season-card.panel-open{border-bottom:none;border-radius:24px 24px 0 0;margin-bottom:0}.empty-season-content{align-items:center;display:flex;flex-direction:column;gap:16px;max-width:400px;text-align:center}.empty-season-title{color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:20px;font-weight:600;margin:0}.empty-season-message{color:var(--text-secondary);font-size:16px;line-height:1.4;margin:0}.empty-season-hint{color:var(--text-secondary);font-size:14px;font-style:italic;line-height:1.3;margin:0;opacity:.8}@media (max-width:991px) and (min-width:768px){.empty-season-card{height:var(--season-container-height-tablet);margin:0 28px 32px;max-width:calc(100% - 56px);padding:18px;width:calc(100% - 56px)}.empty-season-title{font-size:18px}.empty-season-message{font-size:15px}}@media (max-width:767px){.empty-season-card{height:var(--season-container-height-mobile);margin:0 24px 32px;max-width:calc(100% - 48px);padding:16px;width:calc(100% - 48px)}.empty-season-content{gap:14px}.empty-season-title{font-size:18px}.empty-season-message{font-size:14px}.empty-season-hint{font-size:13px}}html[data-theme=light] .empty-season-card{border:1px solid var(--border-color);box-shadow:inset 0 0 10px #0000000d}.inline-season-actions{right:4px;top:4px}.season-container{margin-bottom:2rem;position:relative;z-index:2}.season-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;position:relative}.season-heading{color:var(--text-primary);font-size:1.8rem;font-weight:700;margin:0;padding-left:.5rem;text-align:left}.season-header .inline-season-actions{position:absolute;right:0;top:0;z-index:10}@media (max-width:991px) and (min-width:768px){.season-heading{font-size:1.75rem;margin:1.5rem 1.5rem .75rem .75rem}}@media (max-width:767px){.season-heading{font-size:1.7rem;margin:24px 24px 8px}}.svg-loader{fill:#000;fill:var(--svg-fill,#000);display:inline-block;filter:none;filter:var(--svg-filter-override,none);height:100px;height:var(--svg-height,100px);opacity:1;opacity:var(--svg-opacity,1);-webkit-user-select:none;user-select:none;width:100px;width:var(--svg-width,100px)}.svg-loader img{object-fit:contain}.svg-loader img,.svg-loader svg{display:block;filter:inherit;height:100%;opacity:inherit;width:100%}.svg-loader svg{fill:inherit}.svg-loader[data-dynamic-size=true]{height:var(--svg-height);width:var(--svg-width)}.svg-loader[data-dynamic-color=true]{fill:var(--svg-fill)}.svg-loader[data-dynamic-filter=true]{filter:var(--svg-filter-override)}.svg-positioned-element{bottom:auto;bottom:var(--svg-bottom,auto);display:inline-block;left:auto;left:var(--svg-left,auto);opacity:1;pointer-events:auto;pointer-events:var(--svg-pointer-events,auto);position:absolute;position:var(--svg-position,absolute);right:auto;right:var(--svg-right,auto);top:auto;top:var(--svg-top,auto);-webkit-user-select:none;user-select:none;z-index:0;z-index:var(--svg-z-index,0)}.svg-positioned-element[data-position=fixed]{position:fixed}.svg-positioned-element[data-position=absolute]{position:absolute}.svg-positioned-element[data-pointer-events=none]{pointer-events:none}.svg-positioned-element[data-dynamic-z-index=true]{z-index:var(--svg-z-index)}.svg-positioned-element[data-dynamic-position=true]{bottom:var(--svg-bottom);left:var(--svg-left);right:var(--svg-right);top:var(--svg-top)}.svg-positioned-element.watermark-positioned{bottom:auto;bottom:var(--svg-bottom,auto);left:auto;left:var(--svg-left,auto);right:auto;right:var(--svg-right,auto);top:auto;top:var(--svg-top,auto)}.svg-positioned-element[data-position=absolute],.svg-positioned-element[data-position=fixed]{pointer-events:none}.svg-positioned-element[data-pointer-events=auto]{pointer-events:auto}@media (min-width:992px){.svg-positioned-element{transition:opacity .4s ease-in-out}.svg-positioned-element.scroll-fade-out{opacity:0}}@media (max-width:991px){.svg-positioned-element[data-position=fixed]{position:absolute!important}.svg-positioned-element{transition:none}.svg-positioned-element.scroll-fade-out{opacity:1!important}}.svg-positioned-element.svg-theme-aware img{filter:var(--svg-filter);transition:filter var(--transition-normal)}.watermark-container{pointer-events:none;position:fixed;z-index:1}.watermark-main{height:265px;left:30px;top:30px;transition:all .3s ease-in-out;width:265px}.watermark-hands{height:220px;right:10px;top:580px;transition:all .3s ease-in-out;width:220px}@media (max-width:991px) and (min-width:768px){.watermark-main{height:229px;left:25px;top:25px;width:229px}.watermark-hands{height:200px;right:25px;top:600px;width:200px}}@media (max-width:767px){.watermark-main{height:120px;left:-20px;top:100px;width:211px}.watermark-hands{height:180px;right:20px;top:500px;width:180px}}.watermark-hands .svg-loader,.watermark-main .svg-loader{height:inherit!important;width:inherit!important}.action-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-width:100px;outline:none;padding:.75rem 1.5rem;transition:all .2s ease}.action-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.action-button:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.action-button.primary{background:var(--accent-primary);color:var(--bg-primary)}.action-button.primary:hover:not(:disabled){background:var(--accent-primary);filter:brightness(.9);transform:translateY(-1px)}.action-button.secondary{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary)}.action-button.secondary:hover:not(:disabled){background:var(--bg-card-alt);border-color:var(--accent-primary);transform:translateY(-1px)}.action-button.danger{background:#dc2626;color:#fff}.action-button.danger:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.action-button.delete-action{background:var(--bg-card);border:1px solid var(--border-color);color:#ff6b6b}.action-button.delete-action:hover:not(:disabled){background:#ff6b6b1a;border-color:#ff6b6b;transform:translateY(-1px)}.actions-section .action-button{display:block;margin-bottom:8px;text-align:left;width:100%}.actions-section .action-button:last-child{margin-bottom:0}.event-actions-menu .action-button{display:block;margin-bottom:.75rem;text-align:left;width:100%}.event-actions-menu .action-button:last-child{margin-bottom:0}@media (max-width:768px){.action-button{width:100%}.caption-actions .action-button{width:auto}.form-actions .action-button{width:100%}}.event-create-modal{max-width:500px;width:90%}.season-context-display{background:var(--bg-card-alt);border:1px solid var(--border-color-light);border-radius:4px;color:var(--text-secondary);margin-bottom:1.5rem;padding:.75rem}.season-context-display p{font-size:.9rem;margin:0}.event-create-form .form-group{margin-bottom:1rem}.event-create-form label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:.5rem}.help-text{color:var(--text-secondary);display:block;font-size:.8rem;font-style:italic;margin-top:.25rem}@media (max-width:768px){.event-create-modal{margin:1rem;width:95%}.form-actions{flex-direction:column}}.event-actions-modal{max-width:500px;width:90%}.event-context-display{background:var(--bg-card-alt);border:1px solid var(--border-color);border-radius:6px;margin-bottom:1.5rem;padding:1rem}.event-context-display h4{color:var(--text-primary);font-size:1.1rem;margin:0 0 .5rem}.event-context-display p{color:var(--text-secondary);font-size:.9rem;margin:0}.event-edit-form .form-group{margin-bottom:1rem}.event-edit-form label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:.5rem}.event-input,.event-select{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-sizing:border-box;color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:1rem;padding:.75rem;transition:border-color .2s,box-shadow .2s;width:100%}.event-input:focus,.event-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #8e6bff4d;outline:none}.event-input:disabled,.event-select:disabled{cursor:not-allowed;opacity:.6}.event-actions-menu{display:flex;flex-direction:column;gap:.75rem}.form-actions{gap:.75rem;margin-top:1.5rem}.delete-confirmation{padding:1rem 0;text-align:center}.warning-icon{font-size:3rem;margin-bottom:1rem}.delete-confirmation h4{color:#dc3545;font-size:1.2rem;margin:0 0 1rem}.delete-confirmation p{color:var(--text-primary);line-height:1.4;margin:0 0 .5rem}.warning-text{color:var(--danger-color)!important;font-size:.9rem!important;font-weight:500;margin-bottom:1.5rem!important}.modal-overlay{background:#0009}.modal-content{border-radius:8px;box-shadow:0 10px 25px #0000004d;max-height:90vh;padding:0}.modal-header{padding:1.5rem}.modal-close-button{font-size:1.5rem;height:2rem;padding:.25rem;transition:all .2s;width:2rem}.modal-close-button:hover{background:var(--bg-card-alt)}.modal-body{padding:1.5rem}@media (max-width:768px){.event-actions-modal{margin:1rem;width:95%}.form-actions{flex-direction:column}.event-actions-menu{gap:1rem}}.season-modal-content{max-width:500px;width:90%}.season-create-form{gap:1.5rem}.form-group,.season-create-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:var(--text-primary);font-size:.95rem;font-weight:600}.season-select{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-sizing:border-box;color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:1rem;padding:.75rem;transition:border-color .2s;width:100%}.season-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #8e6bff4d;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}@media (max-width:768px){.season-modal-content{margin:1rem;max-width:none}.form-actions{flex-direction:column}}.admin-mode-container,.footer{position:relative}.footer{background-color:var(--bg-card);border-top:1px solid var(--border-color);bottom:0;color:var(--text-primary);font-size:1em;left:0;margin-top:auto;padding:24px 0 16px;text-align:center;width:100%;z-index:11}.footer-content{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:1100px}.footer-text{color:var(--text-secondary);opacity:.9}.footer-button-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:16px}html[data-theme=light] .footer{border-top:1px solid var(--border-color)}@media (max-width:991px) and (min-width:768px){.footer{font-size:.97em;padding:21px 0 14px}.footer-button-container{margin-bottom:14px}}@media (max-width:767px){.footer{font-size:.95em;padding:18px 0 12px}.footer-button-container{margin-bottom:12px}}.main-layout{font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);margin:0 auto;padding:0 8px;padding:var(--layout-padding,0 8px);width:95%;width:var(--layout-width,95%)}.main-content{min-height:calc(100vh - 200px);min-height:var(--content-min-height,calc(100vh - 200px))}.footer-spacer{background:var(--bg-primary);min-height:650px;position:relative;width:100%;z-index:0}.footer-spacer-blackboard{bottom:20px;height:600px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease-in-out;width:600px;z-index:1}.footer-spacer-blackboard .svg-loader{height:inherit!important;width:inherit!important}@media (max-width:991px) and (min-width:768px){.main-layout{--layout-padding:0 6px;--layout-width:96.5%;--content-min-height:calc(100vh - 175px);--spacer-height:50px}.footer-spacer{min-height:540px}.footer-spacer-blackboard{bottom:15px;height:500px;width:500px}}@media (max-width:767px){.main-layout{--layout-padding:0 4px;--layout-width:98%;--content-min-height:calc(100vh - 150px);--spacer-height:40px}.footer-spacer-blackboard{bottom:10px;height:400px;width:400px}}.photo-upload-section{background:var(--bg-card);border:2px solid var(--border-color);border-radius:12px;margin-bottom:30px;padding:20px}.photo-upload-section h3{color:var(--text-primary);margin:0 0 20px}.event-metadata-display{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:20px;padding:15px}.event-metadata-display h4{color:var(--text-primary);margin:0 0 10px}.event-metadata-grid{grid-gap:10px;color:var(--text-secondary);display:grid;font-size:14px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.selected-file-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-top:20px;padding:20px}.selected-file-container h4{color:var(--text-primary);font-size:16px;margin:0 0 15px}.file-info-display{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;display:flex;gap:12px;margin-bottom:20px;padding:12px}.file-icon{font-size:20px}.file-details{flex:1 1}.file-name{margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.caption-section label,.file-name{color:var(--text-primary);font-weight:500}.caption-section label{display:block;margin-bottom:8px}.photo-caption-input{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:14px;padding:12px;width:100%}.photo-caption-input:focus{border-color:var(--accent-primary);outline:none}.photo-caption-input:disabled{cursor:not-allowed;opacity:.5}.upload-actions{align-items:center;display:flex;gap:12px;justify-content:flex-end}.clear-file-button{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:14px;padding:12px 24px;transition:all .2s ease}.clear-file-button:hover:not(:disabled){background:var(--bg-card)}.clear-file-button:disabled{cursor:not-allowed;opacity:.5}.confirm-upload-button{background:var(--accent-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-width:140px;padding:12px 24px;transition:all .3s ease}.confirm-upload-button:hover:not(:disabled){filter:brightness(.9);transform:translateY(-1px)}.confirm-upload-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.drop-zone{border:3px dashed var(--border-color);border-radius:12px;cursor:pointer;padding:40px;text-align:center;transition:all .3s ease}.drop-zone.dragging{background:var(--accent-primary-light);border-color:var(--accent-primary)}.drop-zone.uploading{background:#ffc1071a;background:var(--warning-light,#ffc1071a);border-color:#ffc107;border-color:var(--warning-color,#ffc107);cursor:not-allowed}.drop-content{align-items:center;display:flex;flex-direction:column;gap:15px}.file-input-label{background:var(--accent-primary);border-radius:8px;color:#fff;cursor:pointer;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);padding:12px 24px;transition:all .3s ease}.file-input-label:hover{background:var(--accent-primary);filter:brightness(.8);transform:translateY(-1px)}.modal-overlay{align-items:center;animation:modalFadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalSlideIn .3s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0000004d;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);max-height:80vh;overflow-y:auto;position:relative;width:90%}.modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:var(--text-primary);font-size:18px;margin:0}.modal-close-button,.modal-header h3{font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif)}.modal-close-button{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s ease;width:30px}.modal-close-button:hover{background:var(--bg-card);color:var(--text-primary)}.modal-close-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.modal-body{padding:20px}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content input,.modal-content select,.modal-content textarea{box-sizing:border-box;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);max-width:100%}.modal-content .form-group{margin-bottom:1rem}.modal-content .form-group label{color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-weight:500}@media (max-width:768px){.modal-content{margin:20px;width:95%}.modal-body,.modal-header{padding:16px}}.upload-modal-content{max-height:90vh;max-width:800px}.upload-modal-content .modal-body{max-height:calc(90vh - 120px);overflow-y:auto}.reorder-buttons{display:flex;gap:4px;margin-top:4px}.reorder-btn{background:#fff;border:1px solid #ddd;border-radius:3px;cursor:pointer;font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:12px;padding:4px 8px;transition:all .2s}.reorder-btn:hover:not(:disabled){background:#f0f0f0;border-color:#999}.reorder-btn:disabled{background:#f9f9f9;cursor:not-allowed;opacity:.5}.photo-actions-modal{max-width:500px}.photo-info{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;padding:12px}.photo-info p{color:var(--text-primary);font-size:14px;margin:4px 0}.caption-section{margin-bottom:20px}.caption-display p{color:var(--text-primary);margin:8px 0}.caption-edit-form{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:16px}.caption-edit-form label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:8px}.caption-textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;color:var(--text-primary);font-family:CustomFont,sans-serif;font-family:var(--font-primary,"CustomFont",sans-serif);font-size:14px;margin-bottom:12px;padding:8px;resize:vertical;width:100%}.caption-textarea:focus{border-color:var(--accent-primary);outline:2px solid var(--accent-primary);outline-offset:2px}.caption-actions{display:flex;gap:8px}.actions-section{margin-bottom:20px}.reorder-section{border-top:1px solid var(--border-color);padding-top:16px}.reorder-section h4{color:var(--text-primary);font-size:16px;margin:0 0 12px}.reorder-section .reorder-buttons{background:none;border:none;margin:0;padding:0}.add-season-button-container{display:flex;justify-content:center;margin:32px}.add-season-button{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:24px;box-shadow:inset 0 0 10px #0003;color:var(--text-primary);cursor:pointer;font-family:var(--font-primary);font-size:16px;font-weight:500;min-width:200px;padding:20px 32px;transition:all .2s ease}.add-season-button:hover{border-color:var(--accent-primary);box-shadow:inset 0 0 10px #0000001a,0 4px 12px #00000026;transform:translateY(-1px)}.add-season-icon{align-items:center;display:flex;gap:12px;justify-content:center}.plus-icon{color:var(--accent-primary);font-size:20px;font-weight:700;line-height:1}.add-text{color:var(--text-primary);font-size:16px;font-weight:500}html[data-theme=light] .add-season-button{box-shadow:inset 0 0 10px #0000000d}html[data-theme=light] .add-season-button:hover{box-shadow:inset 0 0 10px #00000008,0 4px 12px #0000001a}.add-season-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}@media (max-width:991px) and (min-width:768px){.add-season-button-container{margin:28px}.add-season-button{min-width:180px;padding:18px 28px}}@media (max-width:767px){.add-season-button-container{margin:24px}.add-season-button{font-size:14px;min-width:160px;padding:16px 24px}.add-text{font-size:14px}.plus-icon{font-size:18px}}.toast-container{left:auto;max-width:400px;pointer-events:none;position:fixed;right:20px;top:20px;width:auto;z-index:1100}.toast{background:#fff;background:var(--bg-card,#fff);border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:400px;overflow:hidden;pointer-events:auto;transform:translateX(400px);transition:all .3s ease-in-out}.toast--visible{transform:translateX(0)}.toast--hidden{opacity:0;transform:translateX(400px)}.toast--success{border-left:4px solid #28a745;border-left:4px solid var(--success-color,#28a745)}.toast--error{border-left:4px solid #dc3545;border-left:4px solid var(--danger-color,#dc3545)}.toast--info{border-left:4px solid #17a2b8;border-left:4px solid var(--info-color,#17a2b8)}.toast__content{align-items:center;display:flex;gap:12px;padding:16px}.toast__icon{flex-shrink:0;font-size:16px}.toast__message{color:#000;color:var(--text-primary,#000);flex:1 1;font-size:14px;line-height:1.4}.toast__close{align-items:center;background:none;border:none;color:#666;color:var(--text-secondary,#666);cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:20px;justify-content:center;padding:0;width:20px}.toast__close:hover{color:#333;color:var(--text-primary,#333)}
/*# sourceMappingURL=main.07701ad5.css.map*/