:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}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;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg-color: #1a1a2e;--panel-bg: #16213e;--accent: #e94560;--text: #ffffff}html{overflow-x:hidden;background-color:var(--bg-color)}body{margin:0;background-color:var(--bg-color);color:var(--text);font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden;min-height:100vh}@media(max-width:768px){body{overflow-y:auto;overflow-x:hidden}}*{box-sizing:border-box}.app-container{display:flex;height:100vh;width:100%;max-width:100vw;overflow-x:hidden;transition:all .8s cubic-bezier(.2,.8,.2,1)}@media(max-width:768px){.app-container{height:auto;min-height:100vh;flex-direction:column;width:100%}}.app-container.mode-spin{overflow:hidden}.app-container.mode-spin .control-panel{transform:translate(-110%);opacity:0;pointer-events:none;margin-right:0;z-index:1;transition:transform .4s ease,margin .4s ease}.app-container.mode-spin .wheel-stage{position:absolute;inset:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden;transition:all .5s ease .1s}.app-container.mode-spin .wheel-container{width:min(85vh,85vw);height:min(85vh,85vw);transition:width .5s ease .1s,height .5s ease .1s}.app-container.mode-spin:after{content:"";position:absolute;inset:0;background:#00000080;z-index:5;pointer-events:none;animation:fadeInOverlay .5s ease .4s both}@media(max-width:768px){.app-container.mode-spin{height:100vh;overflow:hidden}.app-container.mode-spin .control-panel{transform:translateY(100%);opacity:0;position:fixed;bottom:0;left:0;right:0;height:auto;max-height:30vh;padding:.8rem 1rem;border-radius:16px 16px 0 0;z-index:15;transition:transform .3s ease,opacity .3s ease}.app-container.mode-spin .wheel-stage{position:absolute;inset:0;width:100%;height:100%;min-height:100vh;transition:all .5s ease .2s}.app-container.mode-spin .wheel-container{width:min(90vw,75vh);height:min(90vw,75vh);max-width:calc(100vw - 2rem);transition:width .5s ease .2s,height .5s ease .2s}}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.control-panel{width:360px;margin-left:0;margin-right:1.5rem;background:var(--panel-bg);padding:2rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:5px 0 20px #0000004d;z-index:10;transition:transform .4s ease,opacity .4s ease,margin .4s ease,width .4s ease;flex-shrink:0;overflow:hidden}.control-panel .header-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.control-panel .audio-toggles{display:flex;flex-direction:row;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.control-panel .sound-toggle,.control-panel .music-toggle,.control-panel .lang-toggle,.control-panel .help-toggle{background:#ffffff1a;border:1px solid #444;border-radius:8px;padding:.4rem .5rem;font-size:1.2rem;cursor:pointer;transition:all .2s;line-height:1;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center}.control-panel .sound-toggle:hover,.control-panel .music-toggle:hover,.control-panel .lang-toggle:hover,.control-panel .help-toggle:hover{background:#fff3;border-color:var(--accent)}.control-panel .title{font-size:3rem;line-height:1;margin:0;white-space:nowrap;background:linear-gradient(45deg,#f0c,#33f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:900}.control-panel .current-indicator{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#ffffff0d;border-radius:12px;border:2px solid var(--accent);margin-bottom:1rem;animation:pulse .5s infinite alternate}.control-panel .current-indicator .label{font-size:1.2rem;color:#888;text-transform:uppercase;letter-spacing:2px;margin-bottom:.5rem}.control-panel .current-indicator .value{font-size:3rem;font-weight:900;color:#fff;text-align:center;word-break:break-all;line-height:1.1;text-shadow:0 0 20px var(--accent)}@keyframes pulse{0%{box-shadow:0 0 10px #e9456033}to{box-shadow:0 0 30px #e9456099}}.control-panel .drawer-input{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem;min-width:0}.control-panel .drawer-input label{font-size:.9rem;color:#888;white-space:nowrap;flex-shrink:0}.control-panel .drawer-input input{flex:1;min-width:0;background:#0000004d;border:1px solid #444;border-radius:6px;color:#fff;padding:.5rem .8rem;font-size:.9rem}.control-panel .drawer-input input:focus{outline:none;border-color:var(--accent)}.control-panel .drawer-input input::placeholder{color:#555}.control-panel .input-group{flex:1;display:flex;flex-direction:column}.control-panel .input-group .input-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.control-panel .input-group label{font-size:.9rem;color:#888}.control-panel .input-group .header-actions{display:flex;align-items:center;gap:.8rem}.control-panel .input-group .auto-fill-btn{background:#ffffff1a;border:1px solid #444;color:#aaa;padding:.3rem .6rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s}.control-panel .input-group .auto-fill-btn:hover{background:#e9456033;border-color:var(--accent);color:var(--accent)}.control-panel .input-group .weight-toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.8rem}.control-panel .input-group .weight-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.control-panel .input-group .weight-toggle span{color:#aaa}.control-panel .input-group .weight-toggle:hover span{color:var(--accent)}.control-panel .input-group .auto-fill-panel{background:#0006;border:1px solid #444;border-radius:8px;padding:.8rem;margin-bottom:.5rem}.control-panel .input-group .auto-fill-panel .auto-fill-row{display:flex;gap:.5rem;margin-bottom:.5rem}.control-panel .input-group .auto-fill-panel .auto-fill-field{flex:1}.control-panel .input-group .auto-fill-panel .auto-fill-field label{display:block;font-size:.75rem;color:#666;margin-bottom:.2rem}.control-panel .input-group .auto-fill-panel .auto-fill-field input{width:100%;background:#0000004d;border:1px solid #555;border-radius:4px;color:#fff;padding:.4rem;font-size:.85rem;box-sizing:border-box}.control-panel .input-group .auto-fill-panel .auto-fill-field input:focus{outline:none;border-color:var(--accent)}.control-panel .input-group .auto-fill-panel .auto-fill-preview{font-size:.75rem;color:#888;margin-bottom:.5rem;padding:.3rem;background:#ffffff0d;border-radius:4px;text-align:center}.control-panel .input-group .auto-fill-panel .auto-fill-checkbox{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;cursor:pointer;font-size:.8rem}.control-panel .input-group .auto-fill-panel .auto-fill-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.control-panel .input-group .auto-fill-panel .auto-fill-checkbox span{color:#aaa}.control-panel .input-group .auto-fill-panel .auto-fill-checkbox:hover span{color:var(--accent)}.control-panel .input-group .auto-fill-panel .auto-fill-generate{width:100%;background:var(--accent);border:none;color:#fff;padding:.5rem;border-radius:4px;cursor:pointer;font-weight:700;transition:all .2s}.control-panel .input-group .auto-fill-panel .auto-fill-generate:hover{filter:brightness(1.1)}.control-panel .input-group textarea{flex:1;background:#0000004d;border:1px solid #444;border-radius:8px;color:#fff;padding:1rem;resize:none;font-size:1rem}.control-panel .input-group textarea:focus{outline:none;border-color:var(--accent)}.control-panel .input-group .stats{text-align:right;font-size:.8rem;color:#666;margin-top:.5rem}.control-panel .input-group .stats .weight-hint{color:var(--accent);opacity:.8}.control-panel .spin-btn{padding:1.2rem;font-size:1.5rem;font-weight:700;background:var(--accent);color:#fff;border:none;border-radius:50px;cursor:pointer;box-shadow:0 0 20px #e9456080;transition:transform .2s,box-shadow .2s}.control-panel .spin-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 30px #e94560cc}.control-panel .spin-btn:disabled{background:#555;cursor:not-allowed;box-shadow:none}.control-panel .history-btn{padding:.8rem;font-size:1rem;font-weight:600;background:#ffffff14;color:#fff;border:1px solid #444;border-radius:12px;cursor:pointer;transition:all .2s}.control-panel .history-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#e945601a}.control-panel .history-btn:disabled{opacity:.6;cursor:not-allowed}.wheel-stage{flex:1;display:flex;justify-content:center;align-items:center;position:relative;transition:all .8s ease;z-index:6;overflow:hidden;min-width:0}.wheel-container{width:min(75vh,70vw);height:min(75vh,70vw);max-width:100%;position:relative;border-radius:50%;box-shadow:0 0 50px #ffffff1a;touch-action:none;cursor:grab;transition:width .5s ease,height .5s ease}.wheel-container:active{cursor:grabbing}.swipe-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:none;flex-direction:column;align-items:center;gap:.5rem;color:#fff9;font-size:1rem;pointer-events:none;z-index:15;animation:bounceHint 1.5s ease-in-out infinite}.swipe-hint span:first-child{font-size:2rem}@media(max-width:768px){.swipe-hint{display:flex}}@keyframes bounceHint{0%,to{transform:translate(-50%,-50%);opacity:.6}50%{transform:translate(-50%,-60%);opacity:1}}.wheel-svg{width:100%;height:100%;border-radius:50%;transition:transform 5s cubic-bezier(.1,.7,.1,1);will-change:transform}.app-container:not(.mode-spin) .wheel-svg{animation:idleSpin 60s linear infinite}@keyframes idleSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pointer{position:absolute;top:50%;right:-20px;transform:translateY(-50%);width:0;height:0;border-top:20px solid transparent;border-bottom:20px solid transparent;border-right:40px solid #fff;z-index:20;filter:drop-shadow(-2px 0 5px rgba(0,0,0,.5))}.result-overlay{position:fixed;inset:0;z-index:100;display:flex;justify-content:center;align-items:center;background:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.result-box{background:#fff;color:#1a1a2e;padding:3rem 5rem;border-radius:20px;text-align:center;box-shadow:0 0 50px #ffffff80;animation:popIn .5s cubic-bezier(.175,.885,.32,1.275)}.result-box .result-label{font-size:1.5rem;color:#666;letter-spacing:2px}.result-box .result-drawer{font-size:1.2rem;color:#888;margin-top:.5rem}.result-box .result-value{font-size:4rem;font-weight:900;margin:1rem 0;background:linear-gradient(45deg,#f0c,#33f);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.result-box .result-message{font-size:1.1rem;color:#666;margin-bottom:.5rem;padding:.5rem 1rem;background:#e945601a;border-radius:8px;border-left:3px solid var(--accent)}.result-box .result-hint{margin-top:2rem;font-size:.9rem;color:#999;animation:blink 1.5s infinite}.history-overlay{position:fixed;inset:0;z-index:110;display:flex;justify-content:center;align-items:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.history-box{width:min(520px,90vw);max-height:70vh;background:#fff;color:#1a1a2e;border-radius:16px;padding:1.5rem;box-shadow:0 0 30px #0006;display:flex;flex-direction:column;gap:1rem;overflow:hidden}.history-header{display:flex;justify-content:space-between;align-items:center}.history-title{font-size:1.5rem;font-weight:900;letter-spacing:1px}.history-header-actions{display:flex;align-items:center;gap:.5rem}.history-clear{background:#e94560;border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;color:#fff;cursor:pointer;transition:all .2s}.history-clear:hover{background:#d13550}.history-close{background:transparent;border:none;font-size:1.2rem;cursor:pointer;color:#666}.history-empty{text-align:center;color:#777;padding:2rem 0}.history-list{list-style:none;padding:0;margin:0;overflow:auto;display:flex;flex-direction:column;gap:.75rem}.history-item{padding:.75rem 1rem;border-radius:10px;background:#f5f5f7;display:flex;justify-content:space-between;align-items:center;gap:1rem}.history-winner{font-weight:700}.history-time{font-size:.85rem;color:#666;white-space:nowrap}.help-overlay{position:fixed;inset:0;z-index:120;display:flex;justify-content:center;align-items:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.help-box{width:min(560px,92vw);max-height:75vh;background:#fff;color:#1a1a2e;border-radius:16px;padding:1.5rem;box-shadow:0 0 30px #0006;display:flex;flex-direction:column;gap:1rem;overflow:auto}.help-header{display:flex;justify-content:space-between;align-items:center}.help-title{font-size:1.5rem;font-weight:900;letter-spacing:1px}.help-close{background:transparent;border:none;font-size:1.2rem;cursor:pointer;color:#666}.help-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.5rem;color:#333}.help-github{font-size:.9rem;color:#444;word-break:break-all}.help-github a{color:#2c6bed;text-decoration:none}.help-github a:hover{text-decoration:underline}.footer{position:fixed;left:0;right:0;bottom:10px;text-align:center;font-size:.8rem;color:#fff9;z-index:2;pointer-events:none}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:1024px)and (min-width:769px){.control-panel{width:320px;padding:1.5rem;margin-right:1rem;gap:1rem}.control-panel .title{font-size:2.5rem}.control-panel .drawer-input{flex-direction:column;align-items:stretch;gap:.3rem}.control-panel .drawer-input label{font-size:.85rem}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media(max-width:768px){.control-panel{width:100%;height:auto;min-height:auto;margin-left:0;margin-right:0;padding:1rem;box-sizing:border-box;z-index:20;order:2;flex-shrink:0;transition:transform .3s ease,opacity .3s ease}.control-panel .header-row{align-items:center;flex-wrap:wrap}.control-panel .title{font-size:1.8rem;display:inline-block;margin-right:.5rem}.control-panel .audio-toggles{flex-wrap:nowrap}.control-panel .sound-toggle,.control-panel .music-toggle,.control-panel .lang-toggle,.control-panel .help-toggle{min-width:36px;min-height:32px;width:36px;height:36px;font-size:1rem;padding:.3rem .4rem}.control-panel .current-indicator{padding:1rem;margin-bottom:.5rem}.control-panel .current-indicator .value{font-size:2rem}.control-panel .input-group{flex:none}.control-panel .input-group textarea{min-height:100px;max-height:150px}.control-panel .input-group .input-header{flex-direction:column;align-items:flex-start;gap:.4rem}.control-panel .input-group .header-actions{flex-wrap:wrap;gap:.5rem}.control-panel .drawer-input{flex-direction:column;align-items:stretch;gap:.3rem;margin-bottom:.6rem}.control-panel .drawer-input label{font-size:.8rem}.control-panel .spin-btn{padding:.8rem;font-size:1.2rem}.control-panel .history-btn{padding:.6rem;font-size:.9rem}.wheel-stage{flex:none;width:100%;min-height:50vh;padding:1rem 0;order:1;overflow:hidden}.wheel-container{width:min(85vw,45vh);height:min(85vw,45vh);max-width:calc(100vw - 2rem);touch-action:pan-x}.swipe-hint{font-size:.85rem}.swipe-hint span:first-child{font-size:1.5rem}.pointer{right:-15px;border-top:15px solid transparent;border-bottom:15px solid transparent;border-right:30px solid #fff}.footer{position:relative;padding:1rem 0 1.5rem;margin-top:.5rem}.result-box{padding:2rem 2.5rem;margin:1rem;max-width:90vw}.result-box .result-value{font-size:2.5rem}.result-box .result-label{font-size:1.2rem}.history-box,.help-box{margin:1rem;max-height:80vh}}
