@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap";:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,Noto Sans TC,sans-serif}html{min-width:320px}body{min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}.sound-toggle{color:#94a3b8;background:#18243d;border:1px solid #364465;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:14px;font-size:13px;transition:all .2s;display:flex}.sound-toggle.active{color:#f8fafc;background:#261c46;border-color:#8b5cf6}.toggle-indicator{background:#475569;border-radius:20px;width:40px;height:23px;padding:3px;transition:background .2s}.toggle-indicator span{background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .2s;display:block}.sound-toggle.active .toggle-indicator{background:#8b5cf6}.sound-toggle.active .toggle-indicator span{transform:translate(17px)}.result-trophy{animation:1.8s ease-in-out infinite trophy-float}.winner-card{animation:1.5s ease-in-out infinite alternate winner-glow}.wheel-hub span{animation:2s ease-in-out infinite hub-pulse}@keyframes trophy-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes winner-glow{0%{box-shadow:0 0 12px #d946ef50}to{box-shadow:0 0 28px #d946ef90,0 0 55px #8b5cf640}}@keyframes hub-pulse{0%,to{box-shadow:0 0 10px #22d3ee}50%{box-shadow:0 0 26px #22d3ee}}@media (prefers-reduced-motion:reduce){.result-trophy,.winner-card,.wheel-hub span{animation:none}}:root{--bg:#080d1c;--panel:#10192e;--panel-soft:#151f38;--border:#293654;--purple:#8b5cf6;--cyan:#22d3ee;--pink:#f472b6;--text:#f8fafc;--muted:#94a3b8}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(ellipse at 50% -20%, #6d28d933, transparent 60%), var(--bg);margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.app-shell{max-width:1600px;min-height:100vh;margin:0 auto;padding:0 24px 24px}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:84px;margin-bottom:24px;display:flex}.brand{letter-spacing:-1px;align-items:center;gap:12px;font-size:30px;font-weight:800;display:flex}.brand-icon{color:#fff;background:linear-gradient(135deg,#8b5cf6,#06b6d4);border-radius:14px;place-items:center;width:45px;height:45px;display:grid;box-shadow:0 0 24px #8b5cf670}.header-right{color:var(--muted);letter-spacing:1px;align-items:center;gap:12px;font-size:12px;display:flex}.version{color:#c4b5fd;border:1px solid #6940a8;border-radius:20px;padding:7px 12px}.online-dot,.state-dot{background:var(--cyan);width:8px;height:8px;box-shadow:0 0 12px var(--cyan);border-radius:50%;display:inline-block}.layout{grid-template-columns:290px minmax(0,1fr) 280px;align-items:start;gap:18px;display:grid}.panel{border:1px solid var(--border);background:linear-gradient(145deg,#111b31,#0d1528);border-radius:20px;box-shadow:0 12px 40px #00000024}.options-panel,.settings-panel{padding:22px}.panel-heading,.history-heading{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.eyebrow{letter-spacing:2px;color:var(--cyan);font-size:10px;font-weight:700;display:block}.panel h2{margin:6px 0 0;font-size:19px}.count-badge{border:1px solid var(--border);color:#c4b5fd;border-radius:10px;padding:7px 10px;font-size:12px}.field-label{color:var(--muted);margin-bottom:8px;font-size:12px;display:block}.text-input{color:#fff;background:#18243d;border:1px solid #364465;border-radius:10px;outline:none;width:100%;height:43px;padding:0 12px}.text-input:focus,.option-row input:focus{border-color:var(--purple);box-shadow:0 0 0 2px #8b5cf625}.section-heading{color:var(--muted);justify-content:space-between;margin:28px 0 14px;font-size:12px;display:flex}.option-list{flex-direction:column;gap:9px;max-height:420px;display:flex;overflow-y:auto}.option-row{background:#172139;border:1px solid #293655;border-radius:11px;align-items:center;gap:8px;padding:7px 9px;display:flex}.option-number{color:#7183a1;font-size:10px}.color-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.option-row input{color:#fff;background:0 0;border:1px solid #0000;border-radius:5px;outline:none;width:100%;min-width:0;height:28px;padding:3px;font-size:13px}.remove-button{color:var(--muted);background:0 0;border:0;font-size:20px;line-height:1}.remove-button:hover{color:#fb7185}.outline-button{border:1px solid var(--purple);color:#d8b4fe;background:#8b5cf612;border-radius:11px;width:100%;margin-top:15px;padding:12px;font-weight:600}.outline-button:hover:not(:disabled){background:#8b5cf630}.panel-note{color:var(--muted);border:1px solid #314065;border-radius:12px;gap:10px;margin-top:30px;padding:14px;font-size:11px;line-height:1.7;display:flex}.panel-note span{color:var(--cyan)}.panel-note p{margin:0}.center-panel{text-align:center;background:radial-gradient(circle at 50% 47%,#29184d80,#0000 55%),linear-gradient(145deg,#111b31,#0b1325);min-width:0;padding:26px 24px 30px}.stage-heading h1{overflow-wrap:anywhere;margin:10px 0;font-size:clamp(22px,2.6vw,30px)}.stage-heading p{color:var(--muted);margin:0;font-size:13px}.wheel-space{aspect-ratio:1;filter:drop-shadow(0 0 22px #7c3aed50);justify-content:center;align-items:center;width:min(100%,470px);margin:36px auto 20px;display:flex;position:relative}.wheel-orbit{pointer-events:none;border:2px solid #7348d7;border-radius:50%;position:absolute;inset:-8px;box-shadow:0 0 20px #7c3aed80,inset 0 0 20px #06b6d420}.wheel-disc{will-change:transform;width:100%;height:100%;transition-property:transform;transition-timing-function:cubic-bezier(.35,0,.15,1);display:block;overflow:visible}.wheel-pointer{clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 0 9px #fff);z-index:3;background:#f8fafc;width:32px;height:40px;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.wheel-hub{z-index:2;background:#10182b;border:5px solid #b6a4ff;border-radius:50%;place-items:center;width:64px;height:64px;display:grid;position:absolute;box-shadow:0 0 25px #8b5cf6}.wheel-hub span{background:var(--cyan);border-radius:50%;width:25px;height:25px;box-shadow:0 0 15px #22d3ee}.spin-controls{flex-direction:column;align-items:center;gap:16px;margin-top:20px;display:flex}.state{color:var(--cyan);letter-spacing:2px;align-items:center;gap:9px;font-size:11px;font-weight:700;display:flex}.state.spinning{color:#d8b4fe}.spin-button{color:#fff;background:linear-gradient(135deg,#a855f7,#6d28d9);border:1px solid #c4b5fd;border-radius:50px;padding:15px 36px;font-size:16px;font-weight:700;transition:filter .2s,transform .2s;box-shadow:0 0 26px #8b5cf670}.spin-button:hover:not(:disabled){filter:brightness(1.18);transform:translateY(-2px)}.spin-hint{color:var(--muted);margin:0;font-size:12px}.heading-symbol{color:#a78bfa;font-size:22px}.setting-section{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:27px}.setting-title{justify-content:space-between;margin-bottom:18px;font-size:13px;display:flex}.setting-title strong{color:#c4b5fd}input[type=range]{width:100%;accent-color:var(--purple)}.range-labels{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.mode-card,.theme-preview{background:#1b2441;border:1px solid #65509b;border-radius:12px;padding:14px}.mode-card strong,.theme-preview strong{color:#ddd6fe;font-size:13px}.mode-card p,.theme-preview small{color:var(--muted);font-size:11px;line-height:1.6}.theme-preview{flex-direction:column;gap:9px;display:flex}.theme-dots{gap:7px;display:flex}.theme-dots span{border-radius:50%;width:23px;height:23px}.coming-soon{color:var(--muted);font-size:12px;line-height:1.8}.history-panel{margin-top:18px;padding:22px 26px}.history-heading{margin-bottom:18px}.history-actions{color:var(--muted);align-items:center;gap:15px;font-size:12px;display:flex}.history-actions button{color:#c4b5fd;background:0 0;border:0}.history-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.history-item{border:1px solid var(--border);background:#18243e;border-radius:12px;flex-direction:column;gap:7px;min-width:0;padding:14px;display:flex}.history-index{color:var(--muted);font-size:11px}.history-trophy{color:#facc15}.history-item strong{overflow-wrap:anywhere;font-size:15px}.history-item small{color:var(--muted);font-size:10px}.empty-history{text-align:center;color:var(--muted);grid-column:1/-1;padding:22px;font-size:13px}.footer{text-align:center;color:#64748b;letter-spacing:1.5px;margin-top:26px;font-size:10px}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#020617d9;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-modal{text-align:center;background:radial-gradient(circle at top,#432070,#0000 70%),#11182d;border:1px solid #9b6ef3;border-radius:24px;width:min(100%,420px);padding:34px;animation:.3s ease-out modal-appear;position:relative;box-shadow:0 0 90px #7c3aed60}.modal-close{color:#cbd5e1;background:0 0;border:none;font-size:26px;position:absolute;top:12px;right:15px}.result-trophy{color:#facc15;text-shadow:0 0 30px #facc15;margin-bottom:18px;font-size:56px}.result-modal h2{margin:12px 0 22px;font-size:25px}.winner-card{overflow-wrap:anywhere;background:linear-gradient(135deg,#492176,#1f3154);border:1px solid #d946ef;border-radius:16px;padding:26px 12px;font-size:30px;font-weight:800;box-shadow:0 0 25px #d946ef40}.result-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:25px;display:grid}.result-actions .outline-button{margin-top:0}.result-actions .spin-button{border-radius:11px;padding:12px;font-size:14px}@keyframes modal-appear{0%{opacity:0;transform:scale(.87)translateY(15px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=1150px){.layout{grid-template-columns:240px minmax(0,1fr)}.settings-panel{grid-column:1/-1}}@media (width<=750px){.app-shell{padding:0 14px 24px}.topbar{height:70px}.brand{font-size:24px}.version{display:none}.status-text{font-size:10px}.layout{grid-template-columns:minmax(0,1fr)}.center-panel{order:0;padding:25px 14px}.options-panel{order:1}.settings-panel{order:2;grid-column:auto}.wheel-space{width:min(100%,345px);margin:35px auto 20px}.history-panel{padding:18px}.history-list{grid-template-columns:repeat(2,minmax(0,1fr))}.history-heading{gap:12px}.history-actions{flex-direction:column;align-items:flex-end;gap:7px}}@media (prefers-reduced-motion:reduce){.result-modal{animation:none}.spin-button{transition:none}}.wheel-space{width:min(100%,410px);margin:22px auto 14px}.center-panel{padding-top:22px;padding-bottom:22px}.spin-controls{gap:12px;margin-top:14px}.panel-heading{margin-bottom:20px}.setting-section{margin-bottom:17px;padding-bottom:17px}.quick-history{text-align:left;background:#151e32bf;border:1px solid #293654;border-radius:14px;margin-top:24px;padding:16px}.quick-history-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.quick-history-heading span:first-child{color:#f8fafc;font-size:13px;font-weight:700}.quick-history-heading span:last-child{color:#94a3b8;font-size:11px}.quick-history-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.quick-history-item{background:#1c2944;border:1px solid #354466;border-radius:10px;align-items:center;gap:8px;min-width:0;padding:11px;display:flex}.quick-history-icon{color:#22d3ee;font-size:16px}.quick-history-item strong{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;overflow:hidden}.quick-history-item time{color:#94a3b8;white-space:nowrap;font-size:10px}.quick-history-empty{color:#94a3b8;text-align:center;grid-column:1/-1;margin:4px 0;font-size:12px}@media (width<=750px){.wheel-space{width:min(100%,320px);margin:20px auto 16px}.quick-history-list{grid-template-columns:1fr}.quick-history{margin-top:18px}}.mode-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mode-buttons button{color:#94a3b8;background:#172139;border:1px solid #354465;border-radius:10px;padding:13px 6px;font-size:12px;transition:all .2s}.mode-buttons button.selected{color:#fff;background:#37235c;border-color:#a78bfa;box-shadow:0 0 12px #8b5cf630}.mode-buttons button:hover:not(:disabled){border-color:#8b5cf6}.draw-progress{background:#18243d;border:1px solid #354465;border-radius:10px;margin-top:16px;padding:12px}.draw-progress p{color:#22d3ee;margin:0 0 12px;font-size:12px}.draw-progress button{color:#d8b4fe;background:#291b4a;border:1px solid #8b5cf6;border-radius:8px;width:100%;padding:9px;font-size:12px}.draw-progress button:hover:not(:disabled){background:#3b2465}.mode-description{color:#94a3b8;margin-top:12px;font-size:11px;line-height:1.7}.wheel-orbit:before{content:"";pointer-events:none;background:conic-gradient(#0000 0deg,#22d3ee 35deg,#0000 75deg 155deg,#a855f7 190deg,#0000 240deg,#ec4899 285deg,#0000 335deg);border-radius:50%;animation:8s linear infinite neon-orbit;position:absolute;inset:-6px;-webkit-mask:radial-gradient(circle,#0000 69%,#000 70% 73%,#0000 74%);mask:radial-gradient(circle,#0000 69%,#000 70% 73%,#0000 74%)}.wheel-space.is-spinning .wheel-orbit:before{animation-duration:1.8s}@keyframes neon-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.wheel-space.is-spinning .wheel-orbit{animation:1s ease-in-out infinite alternate orbit-pulse}@keyframes orbit-pulse{0%{box-shadow:0 0 16px #7c3aed60,inset 0 0 12px #22d3ee15}to{box-shadow:0 0 36px #7c3aedb0,0 0 60px #22d3ee35,inset 0 0 24px #22d3ee30}}.wheel-slice{transform-box:fill-box;transform-origin:50%;transition:opacity .42s,transform .42s}.wheel-slice.is-winning{animation:.22s ease-in-out infinite alternate winner-flash}@keyframes winner-flash{0%{filter:brightness()}to{filter:brightness(1.65)drop-shadow(0 0 15px #ffffff90)}}.wheel-slice.is-removing{opacity:0;transform:scale(.75)}.result-modal{isolation:isolate}.confetti-layer{pointer-events:none;z-index:2;border-radius:24px;position:absolute;inset:0;overflow:hidden}.confetti-piece{opacity:0;border-radius:2px;width:8px;height:14px;animation:1.8s ease-in forwards confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-20px)rotate(0)}10%{opacity:1}80%{opacity:1}to{opacity:0;transform:translateY(520px)rotate(600deg)}}.result-modal .winner-card{animation:.55s cubic-bezier(.2,1.5,.4,1) both result-pop,1.5s ease-in-out .55s infinite alternate winner-glow}@keyframes result-pop{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.wheel-orbit:before,.wheel-space.is-spinning .wheel-orbit,.wheel-slice.is-winning,.result-modal .winner-card,.confetti-piece{animation:none}.confetti-piece{display:none}.wheel-slice{transition:none}}.brand-logo-box{flex-shrink:0;width:66px;height:50px;display:block;position:relative;overflow:hidden}.brand-logo-box img{mix-blend-mode:screen;pointer-events:none;width:130px;max-width:none;height:130px;position:absolute;top:50%;left:50%;transform:translate(-50%,-45%)}
