:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400}html,body,#root{height:100vh;width:100vw;margin:0;padding:0;overflow:hidden}body{margin:0;background:linear-gradient(135deg,#1a1a1a,#2d2d2d)}#root{display:flex;flex-direction:column;align-items:center;justify-content:center}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;margin:0;padding:0;overflow-x:hidden}.discogs-roulette-container{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;height:100vh;width:100vw;padding:max(.5rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));overflow:hidden;background:radial-gradient(ellipse at top,rgba(249,221,80,.05) 0%,transparent 50%),radial-gradient(ellipse at bottom,rgba(255,143,67,.05) 0%,transparent 50%),linear-gradient(135deg,#1a1a1a,#2d2d2d,#1a1a1a);color:#fff}.header{position:absolute;top:max(1rem,env(safe-area-inset-top));left:max(1.5rem,env(safe-area-inset-left));text-align:left;z-index:10}.header h1{font-size:1.8rem;margin:0;background:linear-gradient(45deg,#ff8f43,#f9dd50,#ff8f43);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 3s ease-in-out infinite;font-weight:700;letter-spacing:-.02em}@keyframes shimmer{0%,to{background-position:0% center}50%{background-position:100% center}}.wheel-container{position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);width:100vh;height:100vh;max-width:1100px;max-height:1100px;display:flex;justify-content:center;align-items:center;transition:filter .3s ease}.wheel-container>div{width:100%!important;height:100%!important;display:flex!important;justify-content:center!important;align-items:center!important}.wheel-container canvas{max-width:100%;height:auto!important;display:block;margin:auto;filter:drop-shadow(0 10px 30px rgba(0,0,0,.5))}.wheel-container:hover{filter:drop-shadow(0 15px 40px rgba(0,0,0,.6))}.wheel-container.spinning{animation:pulse-glow .5s ease-in-out infinite alternate}@keyframes pulse-glow{0%{filter:drop-shadow(0 0 20px rgba(249,221,80,.3))}to{filter:drop-shadow(0 0 40px rgba(249,221,80,.6))}}.spin-button{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);padding:1rem 3rem;font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:linear-gradient(135deg,#4caf50,#45a049,#3d8b40);border:none;border-radius:50px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #4caf5066,0 0 #4caf5066,inset 0 1px #fff3;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;min-height:48px;overflow:hidden;z-index:10}.spin-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.spin-button:hover:before{left:100%}.spin-button:hover:not(:disabled){transform:translate(-50%) translateY(-3px) scale(1.02);box-shadow:0 8px 25px #4caf5080,0 0 30px #4caf504d}.spin-button:active:not(:disabled){transform:translate(-50%) translateY(1px);box-shadow:0 2px 10px #4caf504d}.spin-button:disabled{background:#ccc;cursor:not-allowed;transform:translate(-50%);box-shadow:none}.control-panel{position:absolute;bottom:calc(2rem + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:flex;gap:1rem;align-items:center;z-index:10}.start-button{padding:1rem 3rem;font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:linear-gradient(135deg,#4caf50,#45a049,#3d8b40);border:none;border-radius:50px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #4caf5066;min-height:48px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.start-button:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px #4caf5080}.start-button:active:not(:disabled){transform:translateY(0) scale(.98)}.start-button:disabled{background:#ccc;cursor:not-allowed;opacity:.5;box-shadow:none}.stop-button{padding:.8rem 2rem;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:50px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #e74c3c66;min-height:48px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.stop-button:not(:disabled){animation:pulse-stop 2s ease-in-out infinite}@keyframes pulse-stop{0%,to{box-shadow:0 4px 15px #e74c3c66}50%{box-shadow:0 4px 20px #e74c3cb3}}.stop-button:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px #e74c3c99}.stop-button:active:not(:disabled){transform:translateY(0) scale(.98)}.stop-button:disabled{background:#ccc;cursor:not-allowed;opacity:.3;box-shadow:none;animation:none}.speed-toggle-button{padding:.8rem 1.5rem;font-size:1.1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2980b9,#2c3e50);border:2px solid rgba(255,255,255,.3);border-radius:50px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #2980b966;min-height:48px;position:relative;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.speed-toggle-button:before{content:"RPM";position:absolute;top:-1.5rem;left:50%;transform:translate(-50%);font-size:.7rem;color:#fff9;font-weight:400}.speed-toggle-button:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px #2980b999;border-color:#ffffff80}.speed-toggle-button:active:not(:disabled){transform:translateY(0) scale(.98)}.speed-toggle-button:disabled{background:#ccc;cursor:not-allowed;opacity:.5;box-shadow:none;border-color:#ffffff1a}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;transition:opacity .3s ease-out,backdrop-filter .3s ease-out}.modal-overlay.modal-enter{opacity:1}.modal-overlay.modal-exit{opacity:0}.modal-content{background:radial-gradient(ellipse at top right,rgba(249,221,80,.08) 0%,transparent 50%),linear-gradient(135deg,#2d2d2d,#1a1a1a);padding:1.5rem;border-radius:20px;position:relative;width:95%;max-width:580px;max-height:95vh;overflow:hidden;opacity:0;transform:scale(.95) translateY(20px);transition:opacity .3s ease-out,transform .3s ease-out;box-shadow:0 25px 50px #00000080,0 0 0 1px #ffffff1a,inset 0 1px #ffffff1a}.modal-content.modal-enter{opacity:1;transform:scale(1) translateY(0)}.modal-content.modal-exit{opacity:0;transform:scale(.95) translateY(20px)}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.modal-close:hover{transform:scale(1.1);color:#ff8f43}.album-details{text-align:center}.album-details h2{color:#f9dd50;margin-bottom:.25rem;font-size:1.5rem;font-weight:700;text-shadow:0 2px 10px rgba(249,221,80,.3)}.album-details>p{font-size:1.1rem;margin-bottom:.75rem;color:#fff}.album-image-container{position:relative;display:inline-block;margin:.5rem auto;padding:0 60px;overflow:visible}.album-image{width:200px;height:200px;object-fit:cover;border-radius:8px;box-shadow:0 15px 35px #0006,0 0 0 1px #ffffff1a;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative;z-index:2;display:block}.vinyl-disc{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:190px;height:190px;z-index:1;transition:transform .6s cubic-bezier(.4,0,.2,1)}.vinyl-disc:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 50%,#1a1a1a 0%,#1a1a1a 15%,transparent 15.5%),radial-gradient(circle at 50% 50%,#333 15.5%,#333 16%,transparent 16.5%),repeating-radial-gradient(circle at 50% 50%,transparent 17%,rgba(0,0,0,.1) 17.5%,transparent 18%),radial-gradient(circle at 30% 30%,#444,#1a1a1a);box-shadow:0 10px 30px #00000080,inset 0 0 50px #00000080;animation:vinylSpin 4s linear infinite;animation-play-state:paused}.album-image-container:hover .album-image{transform:translate(-15%) scale(1.05) rotate(2deg)}.album-image-container:hover .vinyl-disc{transform:translate(-50%,-50%) translate(25%)}.album-image-container:hover .vinyl-disc:before{animation-play-state:running}@keyframes vinylSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100vw;min-height:100vh;gap:2rem;background:radial-gradient(ellipse at center,rgba(249,221,80,.05) 0%,transparent 50%),linear-gradient(135deg,#1a1a1a,#2d2d2d)}.loading-text{font-size:1.3rem;color:#fffc;animation:pulse 1.5s ease-in-out infinite}.loading-spinner{width:80px;height:80px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#1a1a1a 0%,#1a1a1a 30%,transparent 30.5%),repeating-radial-gradient(circle at 50% 50%,transparent 35%,rgba(255,255,255,.05) 36%,transparent 37%),conic-gradient(from 0deg,#ff8f43,#f9dd50,#4caf50,#2980b9,#ff8f43);animation:spin 2s linear infinite;box-shadow:0 0 30px #f9dd504d}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:1.5rem;color:#ff6b6b;text-align:center;padding:2rem}.error-page-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:1.5rem;padding:1rem;max-width:500px}.error-message{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:#ff6b6b1a;border:2px solid rgba(255,107,107,.3);border-radius:16px;width:100%}.error-icon{width:50px;height:50px;background:linear-gradient(45deg,#e74c3c,#c0392b);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.8rem;color:#fff}.error-message div{color:#ff6b6b;font-size:1.1rem;line-height:1.4}.loading-image{width:300px;height:300px;margin:1rem auto;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:10px;color:#fff;font-size:1.2rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.collection-header{display:flex;flex-direction:column;gap:.15rem;margin-top:.4rem}.username-row{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;padding:0;cursor:pointer;transition:all .2s ease}.username-row .username{color:#f9dd50;font-size:1rem;font-weight:600}.username-row .edit-icon{width:11px;height:11px;color:#ffffff40;transition:all .2s ease}.username-row:hover .username{text-decoration:underline;text-underline-offset:3px}.username-row:hover .edit-icon{color:#fff9}.album-count-row{display:inline-flex;align-items:center;gap:.2rem;background:none;border:none;padding:0;cursor:pointer;color:#ffffff80;font-size:.85rem;transition:all .2s ease}.album-count-row span{animation:infoFade .4s ease}.album-count-row .chevron-icon{width:14px;height:14px;transition:transform .2s ease}.album-count-row:hover{color:#fffc}.album-count-row:hover .chevron-icon{transform:translate(3px)}@keyframes infoFade{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.genre-filter{position:absolute;bottom:calc(6rem + env(safe-area-inset-bottom,0px));left:max(1.5rem,env(safe-area-inset-left));z-index:100;min-width:180px;max-width:320px;background:#1e1e1ef2;border-radius:16px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0006;overflow:hidden;transition:box-shadow .3s ease,transform .3s ease}.genre-filter:hover{box-shadow:0 12px 40px #00000080}.genre-filter.collapsed{background:#1e1e1ed9}.genre-filter.expanded{transform:translateY(0)}.filter-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:transparent;border:none;outline:none;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease;-webkit-tap-highlight-color:transparent}.filter-toggle:hover{background:#ffffff0d}.filter-toggle:focus{outline:none}.filter-toggle:focus-visible{outline:2px solid rgba(249,221,80,.5);outline-offset:-2px}.filter-toggle-label{display:flex;align-items:center;gap:.5rem;color:#f9dd50}.filter-count{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:10px;min-width:20px;text-align:center;animation:countPop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes countPop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.filter-toggle-icon{font-size:.7rem;transition:transform .3s ease;color:#fff9}.filter-toggle-icon.expanded{transform:rotate(180deg)}.filter-content{padding:0 1rem;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s cubic-bezier(.4,0,.6,1),opacity .2s ease,padding .2s ease}.genre-filter.expanded .filter-content{max-height:400px;opacity:1;padding:.5rem 1rem 1rem;transition:max-height 1s cubic-bezier(.4,0,.2,1),opacity .5s ease .1s,padding .4s ease}.genre-filter-tags{transform:translateY(-10px);opacity:0;transition:transform .15s cubic-bezier(.4,0,.6,1),opacity .15s ease}.genre-filter.expanded .genre-filter-tags{transform:translateY(0);opacity:1;transition:transform .5s cubic-bezier(.4,0,.2,1) .2s,opacity .5s ease .2s}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.filter-label{font-size:1rem;font-weight:600;color:#f9dd50}.clear-filters-btn{margin-top:.75rem;padding:.4rem 1rem;font-size:.8rem;font-weight:500;color:#fff;background:#e74c3cb3;border:none;border-radius:20px;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .2s ease,box-shadow .2s ease;animation:clearBtnSlide .3s cubic-bezier(.34,1.56,.64,1)}@keyframes clearBtnSlide{0%{opacity:0;transform:translateY(-10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.clear-filters-btn:hover{background:#e74c3c;transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c66}.clear-filters-btn:active{transform:scale(.95)}.genre-filter-tags{display:flex;flex-wrap:wrap;gap:.4rem}.genre-filter-tag{padding:.35rem .75rem;font-size:.8rem;font-weight:500;color:#fffc;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:16px;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .3s ease,border-color .3s ease,box-shadow .3s ease,color .2s ease,font-weight .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:32px;display:inline-flex;align-items:center;justify-content:center}.genre-filter-tag:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.genre-filter-tag:active{transform:scale(.92);transition:transform .1s ease}.genre-filter-tag.selected{background:linear-gradient(135deg,#4caf50,#45a049);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 4px 15px #4caf5066,inset 0 1px #fff3;animation:filterSelectPop .4s cubic-bezier(.34,1.56,.64,1)}.genre-filter-tag.selected:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px #4caf5080,inset 0 1px #fff3}@keyframes filterSelectPop{0%{transform:scale(.85)}50%{transform:scale(1.08)}to{transform:scale(1)}}.no-results-message{margin:2vh 0;padding:1rem 2rem;font-size:1.1rem;color:#ff8f43;background:#ff8f431a;border:2px solid rgba(255,143,67,.3);border-radius:12px;text-align:center}.album-genres{margin:.5rem 0;text-align:center}.genre-tags{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.genre-tag,.style-tag{padding:.3rem .75rem;border-radius:14px;font-size:.8rem;font-weight:500;transition:transform .2s ease}.genre-tag{background:linear-gradient(45deg,#4caf50,#45a049);color:#fff}.style-tag{background:linear-gradient(45deg,#2980b9,#3498db);color:#fff}.genre-tag:hover,.style-tag:hover{transform:translateY(-1px)}.album-tracklist{margin:.75rem 0 0;text-align:left}.album-tracklist h3{color:#f9dd50;font-size:.9rem;margin-bottom:.5rem;text-align:center}.track-list-sides{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.track-side{display:flex;flex-direction:column;gap:.5rem}.side-group{display:flex;flex-direction:column}.side-label{color:#f9dd50b3;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;padding-left:.25rem}.track-list-single{list-style:none;padding:0;margin:0}.track-list{list-style:none;padding:0;margin:0;column-count:2;column-gap:.75rem}.track-item{display:flex;align-items:center;padding:.3rem .5rem;margin-bottom:.25rem;background:#ffffff0d;border-radius:6px;transition:background .2s ease;break-inside:avoid}.track-item:hover{background:#ffffff1a}.track-position{color:#f9dd50;font-weight:700;margin-right:.4rem;min-width:1.25rem;font-size:.75rem}.track-title{flex:1;color:#fff;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-duration{color:#aaa;font-size:.7rem;margin-left:.4rem;white-space:nowrap;flex-shrink:0}.album-title{font-weight:500}.collection-modal{text-align:center;max-height:80vh;display:flex;flex-direction:column}.collection-modal h2{color:#f9dd50;margin-bottom:.25rem;font-size:1.5rem;font-weight:700;text-shadow:0 2px 10px rgba(249,221,80,.3)}.collection-search{position:relative;margin-bottom:.75rem}.collection-search-input{width:100%;padding:.6rem 2.5rem .6rem 1rem;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#ffffff14;color:#fff;font-size:.9rem;outline:none;transition:all .2s ease}.collection-search-input::placeholder{color:#fff6}.collection-search-input:focus{border-color:#f9dd5080;background:#ffffff1a}.collection-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;line-height:1;transition:color .2s ease}.collection-search-clear:hover{color:#fff}.collection-modal-subtitle{color:#aaa;font-size:.85rem;margin-bottom:.75rem}.collection-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding-right:.5rem}.collection-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#ffffff0d;border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left}.collection-item:hover{background:#ffffff1a;transform:translate(4px)}.collection-item-thumb{width:50px;height:50px;object-fit:cover;border-radius:4px;flex-shrink:0}.collection-item-info{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.collection-item-title{color:#fff;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-item-artist{color:#aaa;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-list::-webkit-scrollbar{width:6px}.collection-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.collection-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.collection-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.track-list::-webkit-scrollbar{width:8px}.track-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.track-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.track-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (min-width: 481px) and (max-width: 1199px){.wheel-container{left:50%;width:min(86vw,83vh);height:min(86vw,83vh);max-width:780px;max-height:690px}.header h1{font-size:1.6rem}.genre-filter{max-width:280px}.modal-content{max-width:650px}}@media (min-width: 901px) and (max-width: 1199px){.wheel-container{width:min(80vw,90vh);height:min(80vw,90vh);max-width:800px;max-height:800px}}@media (max-width: 768px){.discogs-roulette-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:env(safe-area-inset-top,.5rem) env(safe-area-inset-right,.5rem) env(safe-area-inset-bottom,.5rem) env(safe-area-inset-left,.5rem);gap:0;height:100vh;height:100dvh}.header{position:relative;top:auto;left:auto;width:100%;padding:.5rem 1rem;flex-shrink:0;text-align:left;order:1}.header h1{font-size:1.8rem}.collection-info{font-size:.85rem}.genre-filter{position:relative;bottom:auto;left:auto;right:auto;width:100%;max-width:none;flex-shrink:0;border-radius:16px 16px 0 0;margin:0;order:3}.filter-toggle{padding:.6rem .8rem;font-size:.85rem}.filter-content{padding:0 .8rem .8rem}.genre-filter-tag{padding:.3rem .6rem;font-size:.75rem;min-height:28px}.wheel-container{position:relative;top:auto;left:auto;transform:none;flex:1 1 auto;display:flex;justify-content:center;align-items:center;width:97vw;height:auto;max-width:none;max-height:none;margin:0 auto;min-height:0;order:2}.control-panel{position:relative;bottom:auto;left:auto;transform:none;gap:.5rem;margin-top:.5rem;flex-shrink:0}.help-button{order:1}.start-button{padding:.8rem 2rem;font-size:1rem}.stop-button,.speed-toggle-button{padding:.8rem 1.5rem;font-size:.9rem}.genre-filter{bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}.modal-content{width:95%;padding:1rem;max-height:95vh}.album-image{width:160px;height:160px}.vinyl-disc{width:150px;height:150px}.album-image-container{padding:0 50px}.spin-button{padding:.8rem 2rem;font-size:1rem;margin:1vh 0}.no-results-message{font-size:.9rem;padding:.6rem 1rem}.user-info-header{font-size:.9rem;flex-wrap:wrap}.album-details h2{font-size:1.3rem}.album-details>p{font-size:1rem}}@media (max-width: 480px){.discogs-roulette-container{padding:env(safe-area-inset-top,.25rem) .25rem env(safe-area-inset-bottom,.25rem) .25rem}.header{padding:.25rem .75rem}.header h1{font-size:1.5rem}.collection-info{font-size:.75rem}.wheel-container{width:96vw}.genre-filter{max-height:120px;overflow-y:auto}.genre-filter.expanded .filter-content{max-height:100px}.genre-filter-tags{max-height:60px;overflow-y:auto}.genre-filter-tag{padding:.25rem .5rem;font-size:.75rem}.spin-button{padding:.7rem 1.5rem;font-size:.9rem}.modal-content{padding:.75rem}.album-image{width:130px;height:130px}.vinyl-disc{width:120px;height:120px}.album-image-container{padding:0 40px;margin:.25rem auto}.album-details h2{font-size:1.2rem}.album-details>p{font-size:.95rem;margin-bottom:.5rem}.track-list{column-count:1}.track-list-sides{grid-template-columns:1fr;gap:.75rem}.genre-tag,.style-tag{padding:.25rem .6rem;font-size:.75rem}}@media (max-height: 500px) and (orientation: landscape){.discogs-roulette-container{flex-direction:row;flex-wrap:wrap;justify-content:center;padding:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))}.header{width:100%;order:1;position:relative;top:auto;left:auto;text-align:center}.header h1{font-size:1.5rem}.genre-filter{position:fixed;bottom:0;left:0;right:0;top:auto;max-width:none;max-height:45vh;border-radius:16px 16px 0 0;z-index:200;padding-bottom:env(safe-area-inset-bottom,.5rem)}.genre-filter.collapsed{max-height:auto}.genre-filter.expanded .filter-content{max-height:35vh}.wheel-container{flex:1 1 auto;width:min(50vw,80vh);height:min(50vw,80vh);max-width:350px;max-height:350px;order:2}.control-panel{position:relative;bottom:auto;left:auto;transform:none;order:3}.spin-button{order:3;margin:.5rem}.collection-info{display:none}}.username-form-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:2rem;padding:1rem}.username-form-container h1{font-size:min(3.5rem,8vh);background:linear-gradient(45deg,#ff8f43,#f9dd50,#ff8f43);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem;animation:shimmer 3s ease-in-out infinite;font-weight:700;letter-spacing:-.02em}.welcome-vinyl-decoration{position:absolute;top:5%;right:-10%;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#1a1a1a 0%,#1a1a1a 12%,transparent 12.5%),radial-gradient(circle at 50% 50%,#333 12.5%,#333 13%,transparent 13.5%),repeating-radial-gradient(circle at 50% 50%,transparent 14%,rgba(0,0,0,.15) 14.5%,transparent 15%),radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);opacity:.15;animation:floatVinyl 6s ease-in-out infinite;pointer-events:none}.welcome-vinyl-decoration:after{content:"";position:absolute;top:50%;left:50%;width:80px;height:80px;transform:translate(-50%,-50%);border-radius:50%;background:linear-gradient(135deg,#ff8f43,#f9dd50);opacity:.5}@keyframes floatVinyl{0%,to{transform:rotate(0) translateY(0)}50%{transform:rotate(10deg) translateY(-20px)}}.username-form-container p{font-size:1.2rem;color:#ccc;margin-bottom:1rem}.username-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px;padding:0 1rem}.username-input{padding:1rem;border-radius:50px;border:2px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;font-size:16px;text-align:center;outline:none;transition:all .3s ease;-webkit-appearance:none}.username-input:focus{border-color:#f9dd50;background:#ffffff26;box-shadow:0 0 15px #f9dd5033}.username-submit-btn{padding:1rem;border-radius:50px;border:none;background:linear-gradient(45deg,#4caf50,#45a049);color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.username-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #4caf504d}.username-submit-btn:disabled{opacity:.6;cursor:not-allowed}.help-section{margin-top:2rem;padding:1.5rem;background:#ffffff0d;border-radius:16px;max-width:500px;width:100%;text-align:left}.help-section h3{color:#f9dd50;font-size:1.1rem;margin-bottom:1.2rem;text-align:center}.help-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.help-steps li{display:flex;align-items:flex-start;gap:1rem}.step-number{flex-shrink:0;width:28px;height:28px;background:linear-gradient(45deg,#4caf50,#45a049);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:#fff}.step-content{flex:1}.step-content strong{display:block;color:#fff;font-size:.95rem;margin-bottom:.25rem}.step-content p{color:#aaa;font-size:.85rem;margin:0;line-height:1.4}.step-content a{color:#f9dd50;text-decoration:none;transition:color .2s ease}.step-content a:hover{color:#ffeb80;text-decoration:underline}.step-content em{color:#ff8f43;font-style:normal;background:#ff8f4326;padding:.1rem .3rem;border-radius:4px}@media (max-width: 480px){.username-form-container{gap:1.5rem}.username-form-container h1{font-size:min(2rem,8vh)}.username-form-container p{font-size:1rem}.username-input{padding:.8rem}.username-submit-btn{padding:.8rem;font-size:1rem}.help-section{margin-top:1.5rem;padding:1rem}.help-section h3{font-size:1rem}.step-number{width:24px;height:24px;font-size:.8rem}.step-content strong{font-size:.9rem}.step-content p{font-size:.8rem}}.user-info-header{margin-top:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;color:#fff}.user-info-header strong{color:#f9dd50}.change-user-link{background:none;border:none;color:#aaa;text-decoration:underline;cursor:pointer;font-size:.9rem;padding:0}.change-user-link:hover{color:#fff}.change-user-btn{margin-top:1rem;padding:.8rem 2rem;border-radius:30px;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3);cursor:pointer;font-size:1rem;transition:all .2s ease}.change-user-btn:hover{background:#fff3;border-color:#fff}.error-btn{background:#e74c3c33;border-color:#e74c3c80;color:#ff6b6b}.error-btn:hover{background:#e74c3c4d;border-color:#ff6b6b;color:#fff}.help-button{position:absolute;top:max(1rem,env(safe-area-inset-top));right:max(1.5rem,env(safe-area-inset-right));width:36px;height:36px;min-width:36px;min-height:36px;padding:0;aspect-ratio:1;border-radius:50%;border:none;background:linear-gradient(135deg,#f9dd5026,#ff8f4326);color:#f9dd50cc;font-size:1.1rem;font-weight:700;font-family:Georgia,serif;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003,inset 0 1px #ffffff1a;-webkit-tap-highlight-color:transparent;line-height:1}.help-button:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;background:linear-gradient(135deg,#f9dd504d,#ff8f434d);opacity:0;transition:opacity .3s ease;z-index:-1}.help-button:hover{background:linear-gradient(135deg,#f9dd5040,#ff8f4340);color:#f9dd50;transform:scale(1.1);box-shadow:0 4px 16px #f9dd504d,inset 0 1px #ffffff26}.help-button:hover:before{opacity:1}.help-button:active{transform:scale(.95)}.help-overlay-annotations{position:fixed;top:0;left:0;right:0;bottom:0;background:#32323280;z-index:1000;cursor:pointer;animation:helpOverlayFade .3s ease}@keyframes helpOverlayFade{0%{opacity:0}to{opacity:1}}.annotation{position:absolute;display:flex;align-items:center;gap:.5rem;animation:annotationPop .4s cubic-bezier(.34,1.56,.64,1) backwards}.annotation-record{animation-delay:.1s}.annotation-buttons{animation-delay:.2s}.annotation-genre{animation-delay:.3s}.annotation-user{animation-delay:.4s}@keyframes annotationPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.annotation-content{background:#1e1e1ef2;border:1px solid rgba(249,221,80,.4);border-radius:12px;padding:.75rem 1rem;max-width:220px;box-shadow:0 8px 32px #0006}.annotation-content strong{color:#f9dd50;font-size:.9rem;display:block;margin-bottom:.25rem}.annotation-content p{color:#fffc;font-size:.8rem;margin:0;line-height:1.4}.annotation-arrow{width:0;height:0;flex-shrink:0}.annotation-arrow-right{border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid rgba(249,221,80,.4)}.annotation-arrow-left{border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:12px solid rgba(249,221,80,.4)}.annotation-arrow-up{border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:12px solid rgba(249,221,80,.4)}.annotation-arrow-down{border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid rgba(249,221,80,.4)}.annotation-record{top:45%;left:3%;transform:translateY(-50%);flex-direction:row}.annotation-buttons{bottom:9rem;right:11.5rem;flex-direction:column;align-items:center}.annotation-genre{bottom:22%;left:1.5rem;flex-direction:column;align-items:center}.annotation-user{top:1.5rem;left:17rem;flex-direction:row;align-items:center}.annotation-dismiss{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);color:#ffffff80;font-size:.85rem;animation:annotationPop .4s cubic-bezier(.34,1.56,.64,1) .5s backwards}@media (max-width: 768px){.annotation-content{max-width:180px;padding:.6rem .8rem}.annotation-content strong{font-size:.85rem}.annotation-content p{font-size:.75rem}.annotation-record{left:5%;top:30%}.annotation-buttons{bottom:3.5rem;right:1rem}.annotation-genre{bottom:18%;left:.75rem}.annotation-user{top:4rem;left:14rem}}@media (max-width: 480px){.help-button{top:.75rem;right:.75rem;width:32px;height:32px;font-size:1rem}.annotation-content{max-width:150px;padding:.5rem .7rem}.annotation-content strong{font-size:.8rem}.annotation-content p{font-size:.7rem}.annotation-record{top:25%}.annotation-dismiss{font-size:.75rem}}.help-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:env(safe-area-inset-top,1rem) env(safe-area-inset-right,1rem) env(safe-area-inset-bottom,1rem) env(safe-area-inset-left,1rem)}.help-modal-content{background:linear-gradient(135deg,#2d2d2d,#1a1a1a);padding:1.5rem;border-radius:20px;width:90%;max-width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 25px 50px #00000080,0 0 0 1px #ffffff1a;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.help-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.help-modal-header h2{color:#f9dd50;font-size:1.3rem;margin:0}.help-modal-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;transition:transform .2s ease}.help-modal-close:hover{transform:scale(1.1);color:#ff8f43}.help-modal-items{display:flex;flex-direction:column;gap:1rem}.help-modal-item{display:flex;gap:1rem;align-items:flex-start;padding:.75rem;background:#ffffff0d;border-radius:12px}.help-modal-icon{flex-shrink:0;width:36px;height:36px;background:linear-gradient(135deg,#4caf50,#45a049);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem}.help-modal-text h3{color:#fff;font-size:.95rem;margin:0 0 .25rem}.help-modal-text p{color:#ffffffb3;font-size:.85rem;margin:0;line-height:1.4}@media (max-height: 600px){.modal-content{max-height:95vh;padding:.75rem}.album-image{width:140px;height:140px}.vinyl-disc{width:130px;height:130px}.album-image-container{margin:.25rem auto}.album-details h2{font-size:1.2rem}.album-details>p{font-size:.95rem;margin-bottom:.5rem}.album-genres{margin:.25rem 0}.album-tracklist{margin-top:.5rem}}@media (max-height: 450px){.modal-content{max-width:95%;padding:.5rem}.album-image{width:100px;height:100px}.vinyl-disc{width:95px;height:95px}.album-image-container{padding:0 30px;margin:.25rem auto}.album-details h2{font-size:1rem;margin-bottom:.15rem}.album-details>p{font-size:.85rem;margin-bottom:.25rem}.album-genres{margin:.25rem 0}.genre-tag,.style-tag{padding:.2rem .5rem;font-size:.7rem}.album-tracklist h3{font-size:.8rem;margin-bottom:.3rem}.track-item{padding:.2rem .4rem}.track-title{font-size:.75rem}.track-position{font-size:.7rem}.track-duration{font-size:.65rem}}
