:root{--ink:#17384f;--muted:#55748a;--panel:rgba(255,255,255,.88)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:Inter,"Avenir Next","Segoe UI",system-ui,sans-serif;color:var(--ink);background:#dff4ff url('joyful-rain-bg.svg') center/cover fixed no-repeat}.app-shell{min-height:100vh;padding:22px clamp(16px,3vw,46px) 34px}.topbar{max-width:1500px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:18px}.brand-block{display:flex;align-items:center;gap:12px}.logo-frame{width:62px;height:62px;border-radius:18px;background:#ffffffd9;display:grid;place-items:center;overflow:hidden;font-size:29px;box-shadow:0 10px 28px #2a5b701f}.logo-frame img{width:100%;height:100%;object-fit:contain;padding:6px}.eyebrow{margin:0 0 2px;font-size:11px;letter-spacing:.18em;font-weight:900;color:#4b7890}.brand-block h1{margin:0;font-size:clamp(20px,2vw,30px)}.theme-control{display:flex;gap:10px;align-items:center;background:#ffffffc9;border-radius:14px;padding:9px 12px}.theme-control label,.theme-control select{font-weight:800}.theme-control select{border:0;background:transparent;color:var(--ink)}.stage{max-width:1500px;margin:14px auto 0}.hero-copy{text-align:center;max-width:860px;margin:auto;position:relative;z-index:3}.ribbon{display:inline-block;padding:8px 22px;margin-bottom:8px;background:#fffbe1;border-radius:999px;font:italic 700 16px Georgia,serif}.hero-copy h2{font:700 clamp(31px,4.6vw,66px)/1.02 Georgia,serif;margin:0;text-shadow:0 2px #fff}.hero-copy p{color:#41667b;font-weight:600}.wheel-zone{min-height:690px;display:grid;grid-template-columns:minmax(500px,760px) minmax(270px,380px);justify-content:center;align-items:center;gap:clamp(28px,5vw,72px);padding:28px 20px 8px}.wheel-wrap{width:min(64vw,690px);aspect-ratio:1;position:relative;display:grid;place-items:center}.wheel{width:100%;height:100%;overflow:visible}#wheelRotor{transform-box:view-box;transform-origin:50% 50%}.wheel-rim{fill:#315f74;stroke:#fff6cd;stroke-width:15}.inner-ring{fill:none;stroke:#ffffffb5;stroke-width:6}.hub-ring{fill:#27566b;stroke:#fff2b6;stroke-width:10}.hub{fill:url(#hubGradient);stroke:#fff;stroke-width:3}.hub-main{font-size:32px;font-weight:1000;fill:#224e64}.hub-sub{font-size:11px;font-weight:900;fill:#548096;letter-spacing:.16em}.sector-path{stroke:#ffffffd1;stroke-width:5}.reward-label{font-weight:1000;fill:#17384f;font-size:23px;paint-order:stroke;stroke:#ffffffe8;stroke-width:7px;stroke-linejoin:round}.lamp{fill:#fff7be;stroke:#d5a83a;stroke-width:3;filter:drop-shadow(0 0 7px #ffec8bf2)}.pointer{position:absolute;top:-8px;left:50%;transform:translateX(-50%);z-index:8;width:74px;height:92px;display:grid;place-items:start center;filter:drop-shadow(0 7px 7px #203d4e47)}.pointer span{width:0;height:0;border-left:31px solid transparent;border-right:31px solid transparent;border-top:70px solid #ef675d}.pointer:before{content:"";position:absolute;top:-9px;width:42px;height:42px;border-radius:50%;background:#fff4c2;border:8px solid #315f74}.spin-hit{position:absolute;width:25%;aspect-ratio:1;border-radius:50%;border:0;background:transparent;cursor:pointer;z-index:7}.action-panel{width:100%;display:grid;gap:14px}.status-card{background:var(--panel);border-radius:24px;padding:22px 20px;box-shadow:0 22px 60px #274b621f;display:grid;gap:5px}.status-kicker{font-size:11px;letter-spacing:.18em;font-weight:1000;color:#5d8293}.status-card strong{font-size:24px}.status-card small{color:var(--muted);line-height:1.45}.btn{min-height:52px;border-radius:16px;border:0;padding:12px 18px;font-weight:1000;cursor:pointer}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-next{background:#1f5065;color:#fff}.btn-secondary{background:#fffffff0;color:var(--ink);border:1px solid #24586e24}.btn-primary{background:#2b8296;color:white}.btn-danger{background:#fff1ef;color:#a33d37}.result-card{width:100%;background:linear-gradient(145deg,#fffef8,#effcff);border:1px solid #ffffffeb;border-radius:24px;padding:18px;text-align:center;box-shadow:0 18px 44px #1b415429}.result-card[hidden],.modal-backdrop[hidden],.setup-panel[hidden]{display:none}.result-card p{margin:2px 0;font-size:11px;letter-spacing:.18em;font-weight:1000;color:#65899a}.result-card h3{font:700 28px Georgia,serif;margin:6px 0 14px}.result-icon{font-size:34px}.btn-result{background:#23586d;color:#fff;width:100%;min-height:44px}.modal-backdrop{position:fixed;z-index:38;inset:0;background:#17384f61;backdrop-filter:blur(5px)}.setup-panel{position:fixed;z-index:40;right:18px;top:18px;bottom:18px;width:min(650px,calc(100vw - 36px));overflow:auto;background:#fff;border-radius:28px;box-shadow:0 30px 100px #14374959;padding:24px}.setup-head,.section-head{display:flex;justify-content:space-between;align-items:center}.icon-btn{border:0;background:#eef7fa;border-radius:50%;width:42px;height:42px;font-size:28px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.setup-grid label,.reward-row label{display:grid;gap:7px;font-size:12px;font-weight:900}.setup-grid input,.reward-row input{width:100%;border:1px solid #cadce4;border-radius:12px;padding:11px 12px}.reward-row{display:grid;grid-template-columns:34px minmax(0,1fr) 120px;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid #edf2f4}.reward-swatch{width:30px;height:30px;border-radius:50%;align-self:center}.setup-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.setup-actions .btn{min-height:46px;font-size:12px}.import-label{display:inline-grid;place-items:center}.hint,.setup-message{font-size:13px;color:var(--muted)}@media(max-width:980px){body{background-attachment:scroll}.wheel-zone{grid-template-columns:1fr;min-height:0;gap:8px}.wheel-wrap{width:min(88vw,660px)}.action-panel{grid-template-columns:1fr 1fr;max-width:660px;margin:auto}.status-card,.result-card{grid-column:1/-1}}@media(max-width:640px){.app-shell{padding:12px 10px 22px}.theme-control label{display:none}.theme-control select{max-width:150px;font-size:12px}.logo-frame{width:50px;height:50px}.brand-block .eyebrow{display:none}.brand-block h1{font-size:17px;max-width:150px}.hero-copy h2{font-size:clamp(28px,9vw,42px)}.hero-copy p{font-size:13px}.wheel-wrap{width:min(96vw,560px)}.wheel-zone{padding:12px 0}.pointer{transform:translateX(-50%) scale(.78);transform-origin:top center}.action-panel{gap:9px}.setup-panel{inset:8px;width:auto}.setup-grid{grid-template-columns:1fr}.reward-row{grid-template-columns:30px minmax(0,1fr) 92px}}@media(max-width:420px){.action-panel{grid-template-columns:1fr}.status-card,.result-card{grid-column:auto}}