@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Mono,Courier New,monospace;-webkit-font-smoothing:antialiased;background:#0a0a1a;display:flex;justify-content:center;align-items:center;height:100dvh;overflow:hidden;color:#f0f0f8}#app{width:100%;max-width:430px;height:100dvh;max-height:932px;position:relative;background:#0a0a1a}.landing-container{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;background:#0a0a1a;overflow:hidden}.landing-logo{margin-top:48px;flex-shrink:0}.logo-img{height:52px;width:auto}.logo-img--small{height:40px}.logo-img--clickable{cursor:pointer;transition:opacity .15s}.logo-img--clickable:hover{opacity:.75}.landing-record-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:20px;gap:24px}.record-svg-container{width:100%;max-width:300px}@keyframes record-disc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.landing-tap-text{font-family:IBM Plex Mono,Courier New,monospace;font-size:18px;font-weight:400;color:#f0f0f8;text-align:center;letter-spacing:.02em;cursor:pointer;flex-shrink:0;transition:color .2s ease;width:100%;max-width:300px;padding-left:4.75%;box-sizing:border-box}.landing-tap-text:hover{color:#f0a060}.landing-nav{display:flex;gap:24px;align-items:center;justify-content:center;padding-bottom:40px;flex-shrink:0}.landing-nav-btn{width:44px;height:44px;border-radius:50%;border:2px solid #8343e6;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.landing-nav-btn:hover{background:#8343e626}.nav-icon-btn{width:44px;height:44px;border:none;background:transparent;cursor:pointer;padding:0;position:relative;flex-shrink:0}.nav-icon{width:44px;height:44px;display:block;transition:opacity .15s ease}.nav-icon--static{opacity:1;position:relative}.nav-icon--active{opacity:0;position:absolute;top:0;left:0}.nav-icon-btn:hover .nav-icon--static,.nav-icon-btn:active .nav-icon--static{opacity:0}.nav-icon-btn:hover .nav-icon--active,.nav-icon-btn:active .nav-icon--active{opacity:1}.game-container{display:flex;flex-direction:column;width:100%;height:100%;background:#0a0a1a;overflow:hidden;animation:fadeIn .5s ease}.game-header{padding:20px 20px 32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.timeline-section{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.timeline-section.timeline-fade:after{content:"";position:absolute;bottom:0;left:0;right:0;height:124px;background:linear-gradient(to bottom,transparent,#0a0a1a);pointer-events:none;z-index:10}.timeline-section.timeline-scrolled:before{content:"";position:absolute;top:0;left:0;right:0;height:124px;background:linear-gradient(to top,transparent,#0a0a1a);pointer-events:none;z-index:10}.timeline-scroll{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;display:flex;flex-direction:column;align-items:center;padding:8px 0 16px}.timeline-scroll::-webkit-scrollbar{display:none}.timeline{display:flex;flex-direction:column;align-items:center;width:100%;max-width:320px;gap:0;padding:8px 0}.song-tile{width:100%;max-width:297px;height:62px;padding:10px 14px;background:#242438;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;flex-shrink:0}.song-tile-item{display:flex;gap:12px;align-items:center;justify-content:flex-start;width:100%}.song-tile-year{font-size:26px;font-weight:700;color:#f0f0f8;flex-shrink:0;width:58px;line-height:1;padding-right:3px}.song-tile-info{display:flex;flex-direction:column;flex:1;min-width:0}.song-tile-song{font-size:12px;font-style:italic;color:#f0f0f8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.song-tile-artist{font-size:12px;color:#7878a0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.timeline-song{cursor:default;transition:opacity .2s;margin:5px 0}.timeline:has(.timeline-song:nth-child(n+8)) .timeline-song:first-of-type,.timeline:has(.timeline-song:nth-child(n+8)) .timeline-song:last-of-type{opacity:.45}.song-tile.incorrect-placement{background:#c8323266}.mystery-song{background:#f0904a;cursor:grab;touch-action:none;transition:opacity .2s}.mystery-song:active{cursor:grabbing}.mystery-song .song-tile-year{color:#ffffffd9;font-style:italic}.mystery-song .song-tile-song{color:#ffffffe6;font-style:normal}.mystery-song .song-tile-artist{color:#ffffffbf}.mystery-song.dragging{opacity:.5}.placed-mystery-tile{background:#f0904a;cursor:default}.confirm-check{background:transparent;border:none;cursor:pointer;padding:0;display:flex;align-items:center;flex-shrink:0;animation:confirm-pulse 1.4s ease-in-out infinite}.confirm-check:hover{animation:none;opacity:1;transform:scale(1.08)}@keyframes confirm-pulse{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.drop-zone{width:100%;max-width:297px;min-height:0;border:none;border-radius:10px;margin:0;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.drop-zone--tutorial{min-height:62px;margin:5px 0;border:1.5px dashed rgba(200,200,200,.45)}.drop-zone-label{font-size:13px;color:#c8c8c880;letter-spacing:.06em;pointer-events:none}.drop-zone.drag-over{border:1.5px dashed rgba(200,200,200,.7);background:#ffffff0f;min-height:62px;margin:5px 0}.drop-zone.has-placed{border:none;background:transparent;min-height:62px;padding:0;margin:5px 0}.drop-zone.has-placed .placed-mystery-tile{width:100%;max-width:none;border-radius:10px}.game-dock{flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:10px 20px 26px;gap:10px;background:#0a0a1a}.game-dock .mystery-song{width:100%;max-width:297px}.media-player{width:100%;max-width:297px;height:36px;background:#181828;border-radius:10px;display:flex;align-items:center;gap:10px;padding:0 12px;flex-shrink:0}.media-play-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;flex-shrink:0;padding:0}.player-progress{flex:1;display:flex;align-items:center}.player-bar{width:100%;height:4px;background:#2e2e48;border-radius:2px;overflow:hidden}.player-fill{height:100%;background:#f0904a;border-radius:2px;width:0%;transition:width .5s linear}.game-nav{display:flex;gap:24px;align-items:center;justify-content:center;padding:10px 0 24px;flex-shrink:0}.game-over-popup{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.popup-content{background:#181828;border-radius:16px;padding:32px 40px;text-align:center;border:1px solid #242438;position:relative}.popup-title{font-size:22px;font-weight:700;color:#f0f0f8;margin-bottom:12px}.popup-score{font-size:16px;color:#7878a0;margin-bottom:24px}.popup-login-button{background:#f0904a;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:15px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .2s}.popup-login-button:hover{background:#e07838}.popup-bug-report-link{margin-top:16px;font-size:13px;color:#7878a0}.popup-bug-link{background:none;border:none;color:#a0a0c8;font-family:inherit;font-size:13px;cursor:pointer;padding:0;text-decoration:underline;transition:color .2s}.popup-bug-link:hover{color:#f0f0f8}.popup-close-btn{position:absolute;top:10px;right:12px;background:none;border:none;color:#7878a0;font-size:18px;cursor:pointer;padding:4px 6px;line-height:1;transition:color .2s}.popup-close-btn:hover{color:#f0f0f8}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#181828;border-radius:16px;padding:32px 24px;width:100%;max-width:400px;border:1px solid #242438}.modal-content h2{font-size:22px;font-weight:600;margin-bottom:8px;color:#f0f0f8}.modal-subtitle{font-size:14px;color:#7878a0;margin-bottom:24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:#9898b8}.modal-input{width:100%;padding:12px 16px;border:1.5px solid #242438;border-radius:8px;font-size:16px;background:#0a0a1a;color:#f0f0f8;font-family:inherit;transition:border-color .2s}.modal-input:focus{outline:none;border-color:#f0904a}.modal-error{background:#c8323233;border:1px solid rgba(200,50,50,.4);color:#f88;padding:12px;border-radius:8px;font-size:14px;margin-bottom:20px}.modal-buttons{display:flex;gap:12px;justify-content:flex-end}.modal-button{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;border:none;cursor:pointer;font-family:inherit;transition:all .2s}.modal-button.primary{background:#f0904a;color:#fff}.modal-button.primary:hover:not(:disabled){background:#e07838}.modal-button.primary:disabled{background:#c07030;cursor:not-allowed}.modal-button.secondary{background:#242438;color:#9898b8}.modal-button.secondary:hover:not(:disabled){background:#343450}.modal-button.secondary:disabled{opacity:.5;cursor:not-allowed}.modal-textarea{resize:vertical;min-height:120px}.modal-success{background:#32b46426;border:1px solid rgba(50,180,100,.4);color:#6fda9a;padding:12px;border-radius:8px;font-size:14px;margin-bottom:20px}.modal-success a{color:#f0904a;text-decoration:underline}.admin-dashboard{overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.admin-dashboard::-webkit-scrollbar{display:none}.admin-header{flex-shrink:0}.admin-content{padding:0 20px;overflow-y:auto;gap:32px;align-items:stretch;scrollbar-width:none;-ms-overflow-style:none}.admin-content::-webkit-scrollbar{display:none}.admin-section{background:#ffffff0d;border-radius:12px;padding:20px;margin-bottom:20px}.admin-section-title{font-size:18px;font-weight:600;margin-bottom:16px;color:#f0f0f8}.admin-table{width:100%;border-collapse:collapse;background:#ffffff0d;border-radius:8px;overflow:hidden}.admin-table thead{background:#ffffff14}.admin-table th{padding:12px;text-align:left;font-size:13px;font-weight:600;color:#9898b8}.admin-table td{padding:12px;font-size:13px;border-top:1px solid rgba(255,255,255,.08);color:#7878a0}.admin-table tbody tr:hover{background:#ffffff0d}.admin-btn{padding:6px 12px;background:#ffffff1a;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;color:#9898b8;margin-right:8px;font-family:inherit;transition:background .2s}.admin-btn:hover{background:#fff3}.display-name-input,.year-input{padding:6px 10px;border:1px solid #242438;border-radius:4px;font-size:13px;background:#0a0a1a;color:#f0f0f8;font-family:inherit}.admin-error{background:#c8323226;border:1px solid rgba(200,50,50,.3);color:#f88;padding:12px;border-radius:8px;margin:16px 0;font-size:13px}.no-session-text{color:#666;font-style:italic;font-size:12px}.admin-link-btn{margin:0 20px 16px;padding:12px 20px;background:#ffffff1a;border:none;border-radius:12px;font-size:15px;font-weight:500;color:#9898b8;cursor:pointer;font-family:inherit;transition:background .2s}.admin-link-btn:hover{background:#ffffff26}.page-container{display:flex;flex-direction:column;width:100%;height:100%;background:#0a0a1a;overflow:hidden}.page-header{margin-top:19px;margin-bottom:13px;min-height:60px;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:400;color:#f0904a;text-align:center;font-family:IBM Plex Mono,monospace}.page-content{display:flex;flex-direction:column;align-items:safe center;flex:1;gap:12px;padding:0 20px;overflow-y:auto;color:#f0f0f8}.page-footer-button{margin-bottom:44px;padding:12px 24px;background:#c8832a33;border-radius:12px;border:1px solid rgba(200,131,42,.4);font-size:16px;font-weight:400;color:#f0904a;cursor:pointer;display:flex;align-items:center;justify-content:center;align-self:center;flex-shrink:0;font-family:inherit;transition:background .2s}.page-footer-button:hover{background:#c8832a4d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideOutTop{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@keyframes slideOutBottom{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.page-container.transitioning .page-header{animation:slideOutTop .3s ease forwards}.page-container.transitioning .page-footer-button{animation:slideOutBottom .3s ease forwards}.landing-container.transitioning,.game-container.transitioning,.archive-container.transitioning,.menu-container.transitioning,.page-container.transitioning{animation:fadeOut .3s ease forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.archive-container{display:flex;flex-direction:column;width:100%;height:100%;background:#0a0a1a;overflow:hidden;animation:fadeIn .3s ease}.archive-header{display:flex;align-items:center;justify-content:center;padding:20px 20px 0;flex-shrink:0}.archive-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 20px;overflow-y:auto}.archive-nav{display:flex;gap:24px;align-items:center;justify-content:center;padding:10px 0 24px;flex-shrink:0}.cal-nav{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:320px;margin-bottom:16px}.cal-nav-btn{background:transparent;border:none;cursor:pointer;padding:6px;display:flex;align-items:center;border-radius:8px;transition:background .15s}.cal-nav-btn:hover:not(:disabled){background:#ffffff14}.cal-nav-btn:disabled{opacity:.25;cursor:default}.cal-month-label{font-family:IBM Plex Mono,monospace;font-size:16px;font-weight:700;color:#f0f0f8;letter-spacing:.04em}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:100%;max-width:320px}.cal-dow{font-family:IBM Plex Mono,monospace;font-size:11px;color:#446;text-align:center;padding:4px 0 8px;letter-spacing:.06em}.cal-day,.cal-empty,.cal-empty-day,.cal-future{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-family:IBM Plex Mono,monospace;font-size:14px}.cal-empty-day,.cal-future{color:#446}.cal-available{background:#f0904a26;color:#f0904a;cursor:pointer;border:1px solid rgba(240,144,74,.3);transition:background .15s,transform .1s;font-weight:700}.cal-available:hover{background:#f0904a4d;transform:scale(1.08)}.cal-available.cal-loading{opacity:.5;pointer-events:none}.cal-today{background:#8343e626;color:#8343e6;border:1px solid rgba(131,67,230,.3);font-weight:700}.nav-icon-btn--forced-active .nav-icon--static{opacity:0}.nav-icon-btn--forced-active .nav-icon--active{opacity:1}.menu-container{display:flex;flex-direction:column;width:100%;height:100%;background:#0a0a1a;overflow:hidden;animation:fadeIn .3s ease}.menu-container.transitioning{animation:fadeOut .3s ease forwards}.menu-header{display:flex;align-items:center;justify-content:center;padding:20px 20px 0;flex-shrink:0}.menu-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:0 24px}.menu-btn{width:100%;max-width:360px;height:70px;background:#0a0a1a;border:3.5px solid #f0904a;border-radius:0;color:#f0f0f8;font-family:IBM Plex Mono,Courier New,monospace;font-size:18px;font-weight:400;letter-spacing:.02em;cursor:pointer;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent}.menu-btn:hover{background:#f0904a;color:#0a0a1a}.menu-btn:active{background:#d1562b;border-color:#d1562b;color:#0a0a1a}.menu-nav{display:flex;gap:24px;align-items:center;justify-content:center;padding:10px 0 24px;flex-shrink:0}.custom-game-container{display:flex;flex-direction:column;width:100%;height:100%;background:#0a0a1a;overflow:hidden;animation:fadeIn .3s ease}.custom-game-container.transitioning{animation:fadeOut .3s ease forwards}.custom-game-header{display:flex;align-items:center;justify-content:center;padding:20px 20px 0;flex-shrink:0}.custom-game-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 16px;gap:24px;overflow-y:auto}.custom-game-nav{display:flex;gap:24px;align-items:center;justify-content:center;padding:10px 0 24px;flex-shrink:0}.cg-prompt-row{display:flex;align-items:center;gap:12px;width:100%;max-width:360px;flex-shrink:0}.cg-back-btn{background:transparent;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;flex-shrink:0;opacity:.7;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.cg-back-btn:hover{opacity:1}.cg-prompt{font-family:IBM Plex Mono,Courier New,monospace;font-size:32px;font-weight:700;color:#f0f0f8;letter-spacing:-.01em;text-align:center;flex-shrink:0}.cg-grid{display:grid;width:100%;max-width:360px;gap:14px}.cg-grid--genre{grid-template-columns:1fr 1fr}.cg-grid--decade{grid-template-columns:repeat(4,1fr)}.cg-option-btn{background:#0a0a1a;border:3.5px solid #f0904a;border-radius:0;color:#f0f0f8;font-family:IBM Plex Mono,Courier New,monospace;font-size:15px;font-weight:400;padding:14px 8px;cursor:pointer;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent;letter-spacing:.01em}.cg-option-btn:hover,.cg-option-btn--selected{background:#f0904a;color:#0a0a1a}.cg-option-btn--selected:hover{background:#d1562b;border-color:#d1562b;color:#0a0a1a}.cg-start-btn{width:100%;max-width:360px;height:70px;background:#0a0a1a;border:3.5px solid #f0904a;border-radius:0;color:#f0f0f8;font-family:IBM Plex Mono,Courier New,monospace;font-size:18px;font-weight:400;cursor:pointer;flex-shrink:0;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,background .15s,color .15s;-webkit-tap-highlight-color:transparent}.cg-start-btn--visible{opacity:1;pointer-events:auto;transform:translateY(0)}.cg-start-btn:hover{background:#f0904a;color:#0a0a1a}.cg-start-btn:active{background:#d1562b;border-color:#d1562b;color:#0a0a1a}@keyframes cg-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-24px)}}.cg-slide-out{animation:cg-slide-out .22s ease forwards}.app-footer{position:absolute;bottom:0;left:0;right:0;height:26px;display:flex;align-items:center;justify-content:center;gap:8px;pointer-events:none;z-index:20}.footer-link{pointer-events:auto;color:#6f23e0;font-family:IBM Plex Mono,Courier New,monospace;font-size:11px;letter-spacing:.02em;text-decoration:none;background:none;border:none;cursor:pointer;padding:0;opacity:.85;transition:opacity .15s}.footer-link:hover{opacity:1;text-decoration:underline}.footer-sep{color:#6f23e0;font-size:11px;opacity:.4}@media(max-width:430px){#app{max-width:100%;max-height:100dvh}.song-tile,.drop-zone{max-width:calc(100vw - 40px)}}
