:root{--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--bg-body: #f4f6f8;--bg-card: #ffffff;--bg-modal: rgba(255,255,255,.95);--bg-input: #ffffff;--bg-hover: #f8f9fa;--text-main: #212529;--text-sub: #6c757d;--border-color: #dee2e6;--shadow-color: rgba(0, 0, 0, .08);--primary-color: #007bff;--danger-color: #dc3545;--success-color: #28a745}.dark{--bg-body: #1a1a1a;--bg-card: #242424;--bg-modal: rgba(36,36,36,.95);--bg-input: #2a2a2a;--bg-hover: #333333;--text-main: #e0e0e0;--text-sub: #a0a0a0;--border-color: #444444;--shadow-color: rgba(0, 0, 0, .5);--primary-color: #4dabf7;--danger-color: #ff6b6b;--success-color: #51cf66}*{-webkit-touch-callout:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}input,textarea,[contenteditable=true]{-webkit-user-select:text}::-webkit-scrollbar{display:none}body{margin:0;min-height:100vh;padding-top:max(var(--sat),40px);padding-bottom:max(var(--sab),15px);background-color:var(--bg-body);color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;background-image:url(../bg-light.png);background-repeat:no-repeat;background-position:right 20px bottom 20px;background-size:35vw auto;background-attachment:fixed;transition:background-color .3s ease,color .3s ease,background-image .3s ease}body.dark{background-image:url(../bg-dark.png)}@media(max-width:600px){body{background-size:45vw auto;background-position:right -10px bottom calc(var(--sab) + 60px)}}button,input,select{font-family:inherit;color:var(--text-main)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 4px var(--shadow-color)}@media(min-width:601px){.mobile-view{display:none!important}.desktop-view{display:table!important;width:100%}}@media(max-width:600px){.mobile-view{display:block!important}.desktop-view{display:none!important}}.custom-modal-overlay{position:fixed;inset:0;background-color:#0006;z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.custom-modal-content{background:var(--bg-card);width:80%;max-width:320px;border-radius:16px;padding:20px;box-shadow:0 10px 25px #0000001a;animation:slideUp .2s ease-out;border:1px solid var(--border-color)}.scene-option-item{padding:12px 15px;margin-bottom:8px;border-radius:10px;background:var(--bg-hover);color:var(--text-main);font-size:16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .2s}.scene-option-item.active{background:var(--primary-color);color:#fff;font-weight:700;box-shadow:0 4px 10px #007bff4d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.roulette-window{height:80px;overflow:hidden;position:relative;background:var(--bg-input);border-radius:12px;border:2px solid var(--primary-color);box-shadow:inset 0 4px 8px #0000001a;margin-bottom:20px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 20%,black 80%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 20%,black 80%,transparent 100%)}.roulette-rail{width:100%;display:flex;flex-direction:column;align-items:center;transform:translateY(0)}.roulette-item{height:80px;width:100%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:var(--text-main);white-space:nowrap;letter-spacing:1px;flex-shrink:0}.mode-fast{animation:infiniteScroll .4s linear infinite}.mode-fast .roulette-item{filter:blur(.5px);transform:scaleY(1.1);opacity:.8}@keyframes infiniteScroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.mode-slow{animation:tickDrop .15s cubic-bezier(.175,.885,.32,1.275)}@keyframes tickDrop{0%{transform:translateY(-60px);opacity:0;filter:blur(2px)}to{transform:translateY(0);opacity:1;filter:blur(0)}}.result-lock-in{animation:popInBounce .6s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes popInBounce{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}
