.csv-upload-wrapper{margin-top:2vh;text-align:center;width:100%;max-width:500px}.csv-toggle-button{background:transparent;color:#333;border:.2vh dashed var(--color-blue, #A5DEE5);padding:1vh 2vw;border-radius:1vh;font-size:clamp(.85rem,1.8vw,1rem);cursor:pointer;transition:all .2s ease}.csv-toggle-button:hover{background:var(--color-yellow, #FEFDCA);border-style:solid}.csv-upload-panel{margin-top:1.5vh;padding:2vh 2vw;background:var(--color-yellow, #FEFDCA);border-radius:1vh;border:.2vh solid var(--color-blue, #A5DEE5);text-align:left;animation:panel-slide-in .3s ease-out}@keyframes panel-slide-in{0%{opacity:0;transform:translateY(-1vh)}to{opacity:1;transform:translateY(0)}}.csv-instructions{margin-bottom:1.5vh;font-size:clamp(.8rem,1.6vw,.95rem);line-height:1.5;color:#444}.csv-instructions code{background:#a5dee533;padding:.1vh .4vw;border-radius:.3vh;font-size:.9em}.csv-instructions p{margin:.5vh 0}.csv-example{background:#fff;border:.15vh solid var(--color-blue, #A5DEE5);border-radius:.5vh;padding:1vh 1vw;margin-top:1vh;overflow-x:auto;font-size:clamp(.7rem,1.4vw,.85rem)}.csv-example code{background:transparent;padding:0}.csv-file-label{display:inline-block;background:var(--color-blue, #A5DEE5);color:#fff;padding:1vh 2vw;border-radius:.5vh;cursor:pointer;font-size:clamp(.85rem,1.8vw,1rem);transition:all .2s ease;text-align:center;width:100%;box-sizing:border-box}.csv-file-label:hover{background:var(--color-green, #E0F9B5);color:#333}.csv-file-input{display:none}.csv-reset-button{display:block;width:100%;margin-top:1vh;padding:1vh 2vw;background:transparent;color:#666;border:.15vh solid #ccc;border-radius:.5vh;cursor:pointer;font-size:clamp(.8rem,1.6vw,.9rem);transition:all .2s ease}.csv-reset-button:hover{border-color:var(--color-blue, #A5DEE5);color:#333}.csv-feedback{margin-top:1vh;padding:.8vh 1vw;border-radius:.5vh;font-size:clamp(.8rem,1.6vw,.9rem);text-align:center}.csv-feedback-success{background:#e0f9b580;color:#2d7a2d;border:.15vh solid var(--color-green, #E0F9B5)}.csv-feedback-error{background:#ffc8c880;color:#c0392b;border:.15vh solid #e74c3c}@media (max-width: 768px){.csv-upload-wrapper{max-width:90vw}.csv-upload-panel{padding:1.5vh 3vw}}.home-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2vh 2vw;text-align:center;background:var(--color-pink)}.fade-in{opacity:0;transform:translateY(2vh);transition:all 1s ease-out;margin:2vh 0}.fade-in.visible{opacity:1;transform:translateY(0)}.title{font-size:clamp(2.5rem,6vw,4rem);color:var(--color-text);margin:0 0 2vh;font-family:Arial Rounded MT Bold,Arial,sans-serif;letter-spacing:.2vw;background-color:var(--color-yellow);padding:1.5vh 3vw;border-radius:1vh;box-shadow:0 .2vh .4vh #0000001a}.main-image{width:25vh;height:25vh;border-radius:50%;margin:2vh 0;box-shadow:0 .4vh 1.5vh #0003;object-fit:cover;border:.4vh solid var(--color-yellow)}.subtext{font-size:clamp(1.5rem,3vw,2rem);color:var(--color-text);margin:2vh 0;max-width:80vw;line-height:1.4;background-color:var(--color-yellow);padding:1.5vh 2vw;border-radius:1vh}.start-button{background:var(--color-blue);color:#fff;border:none;padding:2vh 4vw;border-radius:3.5vh;font-size:clamp(1.2rem,2.5vw,1.5rem);cursor:pointer;transition:all .3s ease;box-shadow:0 .4vh .6vh #a5dee533;margin-top:2vh}.start-button:hover{background:var(--color-green);color:var(--color-text);transform:translateY(-.2vh);box-shadow:0 .6vh .8vh #e0f9b54d}@media (max-width: 768px){.title{font-size:clamp(2rem,5vw,3rem);padding:1vh 2vw}.subtext{font-size:clamp(1.2rem,2.5vw,1.5rem);padding:1vh 2vw}.main-image{width:20vh;height:20vh;border-width:.3vh}.start-button{font-size:clamp(1rem,2vw,1.2rem);padding:1.5vh 3vw}}.category-stage{padding:2vh 2vw;width:90vw;max-width:800px;background-color:var(--color-pink);border-radius:1vh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;margin:0}.category-stage h2{color:#000;margin-bottom:1.5vh;padding:1vh 2vw;background-color:var(--color-yellow);border-radius:1vh;display:inline-block;margin:0 auto 1.5vh;box-shadow:0 .2vh .4vh #0000001a;font-size:clamp(1.2rem,3vw,1.5rem)}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1vh;margin:2vh 0}.category-card{padding:1.5vh 1.5vw;border:.2vh solid var(--color-blue);border-radius:1vh;background:var(--color-blue);cursor:pointer;transition:all .2s ease;font-size:clamp(1rem,2vw,1.1rem);font-weight:500;color:#fff;position:relative;overflow:hidden}.category-card:after{content:"";position:absolute;top:50%;left:50%;width:300%;height:300%;background-color:#ffffff4d;transform:translate(-50%,-50%) scale(0);border-radius:50%;transition:transform .3s ease;pointer-events:none}.category-card:active:after{transform:translate(-50%,-50%) scale(1);opacity:0;transition:transform .3s ease,opacity .3s ease}.category-card:hover{transform:translateY(-.2vh);border-color:var(--color-green);background-color:var(--color-green);color:var(--color-text)}.category-card.selected{border-color:var(--color-green);background-color:var(--color-green);color:var(--color-text);transform:translateY(-.2vh);animation:selected-pop .3s ease}@keyframes selected-pop{0%{transform:scale(.95) translateY(-.2vh)}50%{transform:scale(1.05) translateY(-.2vh)}to{transform:scale(1) translateY(-.2vh)}}.proceed-button{background-color:var(--color-blue);color:#fff;padding:1vh 2vw;border:none;border-radius:.5vh;font-size:clamp(1rem,2vw,1.1rem);cursor:pointer;transition:all .2s ease;margin-top:1.5vh;position:relative;overflow:hidden;width:100%;max-width:200px}.proceed-button:after{content:"";position:absolute;top:50%;left:50%;width:300%;height:300%;background-color:#ffffff4d;transform:translate(-50%,-50%) scale(0);border-radius:50%;transition:transform .3s ease;pointer-events:none}.proceed-button:active:after{transform:translate(-50%,-50%) scale(1);opacity:0;transition:transform .3s ease,opacity .3s ease}.proceed-button:disabled{background-color:var(--color-blue);color:#fff9;cursor:not-allowed;opacity:.7}.proceed-button:not(:disabled):hover{background-color:var(--color-yellow);color:var(--color-text);transform:scale(1.05)}.proceed-button:not(:disabled):active{background-color:var(--color-yellow);color:var(--color-text);transform:scale(.95)}@media (max-width: 600px){.category-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5vh}.category-card{padding:1vh 1vw;font-size:clamp(.9rem,2vw,1rem)}.proceed-button{width:90%;max-width:none;padding:1vh 2vw}.category-stage h2{font-size:clamp(1rem,3vw,1.2rem);padding:.8vh 1vw}}body .app-container{background-color:transparent;box-shadow:none;padding:0;max-width:none;margin:0}body{margin:0;padding:0;background-color:var(--color-pink)}.filter-stage{padding:2vh 2vw;text-align:center;max-width:80vw;margin:0 auto;height:90vh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;z-index:1}.loading-state{text-align:center;padding:4vh 2vw;color:var(--color-text-light)}.error-screen{text-align:center;padding:4vh 2vw;max-width:80vw;margin:0 auto;background-color:var(--color-yellow);border-radius:1vh}.error-screen h2{color:var(--color-blue);margin-bottom:2vh;font-size:clamp(1.5rem,3vw,2rem)}.background-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:var(--color-pink);z-index:-1}.swipe-instruction{color:var(--color-text);font-size:clamp(1rem,2vw,1.1rem);margin-bottom:1vh;text-align:center;position:relative;z-index:1;background-color:var(--color-yellow);padding:.5vh 1vw;border-radius:2vh}.swipe-container{width:100%;max-width:80vw;height:70vh;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .3s cubic-bezier(.18,.89,.32,1.28);background:var(--color-white);border:.4vh solid var(--color-blue);border-radius:1.5vh;overflow:hidden;display:flex;flex-direction:column;z-index:1;pointer-events:all}.swipe-container *{pointer-events:none}.swipe-container.fade-out{transition:all .4s ease-out;opacity:0!important;transform:translate(100vw) rotate(30deg) scale(.8)!important}.option-card{flex-grow:1;display:flex;flex-direction:column;border-radius:1vh;height:100%;background-color:var(--color-white)}.option-card img{width:100%;height:70%;object-fit:cover;border-radius:.4vh .4vh 0 0;-webkit-user-drag:none;user-drag:none}.option-info{height:30%;padding:1vh 2vw;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.option-info h3{margin:0 0 .5vh;font-size:clamp(1.5rem,3vw,1.8rem);font-weight:700;color:var(--color-text)}.option-info p{color:var(--color-text-light);line-height:1.4;margin:0;font-size:clamp(.9rem,2vw,1rem);max-width:90%}.swipe-feedback{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;display:flex;justify-content:space-between;align-items:center;padding:1vh 2vw}.swipe-indicator{font-size:clamp(1.2rem,2.5vw,1.5rem);font-weight:700;padding:1vh 2vw;border-radius:2.5vh;opacity:0;transform:scale(.8);transition:all .3s ease;background-color:#ffffffe6;box-shadow:0 .2vh .4vh #0003}.swipe-indicator.yes{color:#0f0;border:.2vh solid #00FF00}.swipe-indicator.no{color:red;border:.2vh solid #FF0000}.swipe-indicator.active{opacity:1;transform:scale(1);background-color:#fff;box-shadow:0 .4vh .8vh #0000004d}.progress{text-align:center;padding:.75vh 1.5vw;font-size:clamp(.9rem,2vw,1rem);color:var(--color-text);background:var(--color-yellow);border-radius:5vh;border:.2vh solid var(--color-blue);position:relative;z-index:1;margin-top:.5vh}@media (max-width: 768px){.filter-stage{height:90vh}.swipe-container{height:65vh;border-width:.3vh}.option-card img{height:70%}.option-info{height:30%}.swipe-indicator{font-size:clamp(1rem,2vw,1.2rem);padding:.8vh 1.6vw}.swipe-instruction{font-size:clamp(.9rem,2vw,1rem);margin:.5vh 0;padding:.4vh .8vw}.option-info h3{font-size:clamp(1.3rem,3vw,1.6rem)}.option-info p{font-size:clamp(.85rem,2vw,.95rem)}}.results{padding:1vh 2vw;max-width:80vw;margin:0 auto;height:90vh;display:flex;flex-direction:column;align-items:center;background-color:var(--color-pink)}.results h1{font-size:clamp(1.8rem,4vw,2rem);color:var(--color-blue);margin-bottom:.5vh;background-color:var(--color-yellow);padding:1vh 2vw;border-radius:2vh}.results h2{font-size:clamp(1.2rem,3vw,1.5rem);color:var(--color-text);margin-bottom:.5vh}.rankings-container{width:100%;max-height:70vh;overflow-y:auto;padding:1vh 2vw;border-radius:1vh;background:var(--color-yellow);border:.2vh solid var(--color-blue)}.ranking-item{display:flex;align-items:center;padding:1vh 2vw;margin-bottom:.5vh;background:var(--color-white);border-radius:1vh;border:.2vh solid var(--color-blue);transition:transform .2s ease}.ranking-item:hover{transform:translateY(-.3vh)}.ranking-item .rank{font-size:clamp(1rem,2.5vw,1.2rem);font-weight:700;color:var(--color-blue);margin-right:1vw}.ranking-item .content{flex-grow:1}.ranking-item h3{margin:0;font-size:clamp(1rem,2.5vw,1.2rem);color:var(--color-text)}.ranking-item p{margin:0;color:var(--color-text-light);font-size:clamp(.9rem,2vw,1rem)}.ranking-item img{width:6vh;height:6vh;border-radius:1vh;object-fit:cover;margin-left:1vw;border:.2vh solid var(--color-blue)}.battle-stage{padding:1vh 2vw;margin:0 auto;height:100vh;display:flex;flex-direction:column;align-items:center;background-color:var(--color-pink);width:100%;justify-content:flex-start}.battle-stage h2{font-size:clamp(1.2rem,3vw,1.5rem);color:var(--color-text);margin-bottom:.5vh;background-color:var(--color-yellow);padding:1vh 2vw;border-radius:2vh}.battle-options{display:flex;gap:1.5vw;justify-content:center;width:100%;height:50vh;padding:1vh 0}.battle-option{flex:0 0 35%;padding:1vh;background:var(--color-white);border-radius:1vh;border:.2vh solid var(--color-blue);cursor:pointer;transition:transform .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:30vh;padding-bottom:1%}.battle-option:hover{transform:translateY(-.5vh);border-color:var(--color-green)}.battle-stage .battle-options .battle-option img{width:80%;height:80%;aspect-ratio:1 / 1;border-radius:1vh;object-fit:cover;margin-bottom:.5vh;border:.2vh solid var(--color-blue)}.battle-option h3{margin:0;font-size:clamp(1.2rem,2.5vw,1.5rem);color:var(--color-text);text-align:center;line-height:1.2}.battle-option p{margin:.3vh 0 1%;color:var(--color-text-light);font-size:clamp(.9rem,1.8vw,1rem);text-align:center;line-height:1.3}.loading-state{text-align:center;padding:1vh 2vw;color:var(--color-text-light);background-color:var(--color-yellow);border-radius:1vh;margin:.5vh}@media (max-width: 768px){.battle-options{flex-direction:column;gap:1.5vh;padding:0 5vw;height:auto;min-height:60vh}.battle-option{width:100%;flex:1 1 auto;padding:1vh 2vw;min-height:25vh;padding-bottom:1%}.results h1{font-size:clamp(1.5rem,4vw,1.8rem)}.battle-stage h2{font-size:clamp(1rem,3vw,1.3rem)}.ranking-item{flex-direction:column;text-align:center}.ranking-item img{margin:1vh 0 0}.battle-stage .battle-options .battle-option img{height:80%}.battle-option h3{font-size:clamp(1rem,2.5vw,1.2rem)}.battle-option p{font-size:clamp(.8rem,1.8vw,.9rem);margin-bottom:1%}}:root{--color-pink: #FFCFDF;--color-yellow: #FEFDCA;--color-blue: #A5DEE5;--color-green: #E0F9B5;--color-text: #333;--color-text-light: #666;--color-white: #FFFFFF}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--color-pink);color:var(--color-text);min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1vh 1vw}.app-container{width:90vw;max-width:1200px;margin:1vh auto;padding:2vh 2vw;background-color:var(--color-yellow);border-radius:1vh;box-shadow:0 .4vh .6vh #0000001a;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.err-msg{text-align:center;padding:2vh 2vw;width:80vw;max-width:600px;margin:1vh auto;background-color:var(--color-yellow);border-radius:1vh}.err-msg h2{color:var(--color-blue);margin-bottom:1vh;font-size:clamp(1.5rem,4vw,2rem)}.err-btn{background:var(--color-green);color:var(--color-text);border:none;padding:1vh 2vw;border-radius:.5vh;cursor:pointer;font-size:clamp(14px,2vw,16px);transition:all .2s ease;margin:.5vh 0}.err-btn:hover{background:var(--color-blue);color:#fff}.battle-options{display:flex;gap:1vh;justify-content:center;flex-wrap:wrap;margin:1vh auto;padding:1vh 0;width:100%}.battle-option{border:.2vh solid var(--color-green);border-radius:1vh;padding:1vh;width:45%;background:var(--color-yellow);transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.battle-option img{width:100%;height:20vh;object-fit:cover;border-radius:.5vh;margin-bottom:1vh}.battle-option:hover{transform:translateY(-.5vh);box-shadow:0 .4vh 1.5vh #0000001a;border-color:var(--color-blue)}.opt-card{width:80vw;max-width:500px;margin:1vh auto;border:.2vh solid var(--color-green);border-radius:1vh;padding:2vh;background:var(--color-yellow);transition:all .2s ease}.opt-card img{width:100%;height:25vh;object-fit:cover;border-radius:.5vh;margin-bottom:1vh}.filter-btns{display:flex;gap:1vh;justify-content:center;margin:1vh 0;flex-wrap:wrap}.btn-yes,.btn-no{padding:1vh 2vw;border:none;border-radius:.5vh;cursor:pointer;transition:all .2s ease;font-size:clamp(14px,2vw,16px);width:45%}.btn-yes:hover{background-color:var(--color-blue);color:#fff;transform:scale(1.05)}.btn-no:hover{background-color:var(--color-green);color:var(--color-text);transform:scale(1.05)}@media (max-width: 768px){.battle-option,.btn-yes,.btn-no{width:90%}.opt-card{width:90vw}}
