@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";:root{--ink: #284d78;--ink-strong: #38699f;--cloud: #f4fbff;--sky-bg: #eef9ff;--line: #c9e4fb;--line-soft: #dff0ff;--mint: #8edaf6;--blue: #518bd0;--blue-light: #7ebcf2;--coral: #f4a7c6;--violet: #a9b9ff;--white-glass: rgba(255, 255, 255, .78);--white-strong: rgba(255, 255, 255, .92);--shadow-soft: 0 18px 48px rgba(89, 146, 204, .18);--shadow-small: 0 10px 22px rgba(94, 151, 214, .22);font-family:Pretendard Variable,Pretendard,system-ui,sans-serif;color:var(--ink);background:var(--sky-bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,#ffffffeb,#def2ffb8),repeating-linear-gradient(135deg,#addcf82e 0,#addcf82e 12px,#fff3 12px,#fff3 24px),var(--sky-bg)}button,input{font:inherit}button{cursor:pointer;color:inherit}.page{min-height:100vh;display:grid;place-items:center;padding:24px}.registration{background:radial-gradient(circle at 18% 12%,rgba(142,218,246,.35),transparent 30%),radial-gradient(circle at 82% 8%,rgba(169,185,255,.24),transparent 28%),linear-gradient(180deg,#ffffffe6,#def2ffb8),repeating-linear-gradient(135deg,#addcf82e 0,#addcf82e 12px,#ffffff38 12px,#ffffff38 24px),var(--sky-bg)}.registration-card{width:min(820px,100%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;padding:34px;border:1px solid rgba(201,228,251,.92);border-radius:18px;background:#ffffffc2;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-mark{width:auto;height:92px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(87,143,201,.26))}h1,h2,p{margin:0}h1{color:var(--ink-strong);font-size:clamp(34px,6vw,62px);line-height:1.08;font-weight:1000;letter-spacing:-.04em}h2{color:var(--ink-strong);font-size:22px;font-weight:1000}.eyebrow{color:#6ca9e3;letter-spacing:.16em;font-size:12px;font-weight:900}.muted{color:#5f7fa3;line-height:1.65}.small{font-size:13px}.channel-form{display:flex;width:100%;gap:10px;margin-top:14px}input{min-width:0;border:1px solid var(--line);border-radius:10px;background:#ffffffe6;color:var(--ink);padding:15px 16px;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}input::placeholder{color:#93bfdf}input:focus{border-color:var(--mint);box-shadow:0 0 0 4px #8edaf63d;background:#fff}.channel-form input{flex:1}.error,.notice{color:#d95780}.fairness-note{display:flex;flex-direction:column;gap:5px;margin-top:18px;padding:18px 22px;color:var(--ink-strong);border:1px solid rgba(201,228,251,.95);border-radius:14px;background:#f4fbffc7;font-size:14px;box-shadow:inset 0 1px #fffc}.fairness-note span{color:#6d8dad}.primary,.secondary,.text-button{border:0;border-radius:10px;padding:14px 20px;font-weight:900;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease,border-color .2s ease}.primary{color:#fff;background:linear-gradient(180deg,var(--blue-light),var(--blue));box-shadow:var(--shadow-small)}.secondary{color:var(--ink-strong);background:#ffffffb8;border:1px solid var(--line);box-shadow:0 8px 18px #5992cc1a}.text-button{color:var(--ink-strong);padding:8px 10px;background:#ffffff8c;border:1px solid rgba(201,228,251,.8)}button:hover{transform:translateY(-1px);filter:brightness(1.03)}button:disabled{cursor:wait;opacity:.65;transform:none}.large{min-height:54px}header{border-bottom:1px solid rgba(201,228,251,.9);background:#ffffffd1;box-shadow:0 8px 30px #5992cc1a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header-inner{max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 24px}.header-inner h1{margin-top:5px;font-size:27px}.channel{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid rgba(201,228,251,.9);border-radius:14px;background:#ffffffa3}.channel img,.channel-placeholder{width:42px;height:42px;border-radius:50%;background:#dbeeff;object-fit:cover}.channel strong{color:var(--ink-strong)}.channel span{display:block;color:#6d8dad;font-size:12px;margin-top:3px}.content{max-width:1440px;margin:0 auto;padding:24px}.tab-list{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto}.tab-button{border:1px solid var(--line);border-radius:999px;padding:10px 16px;color:var(--ink-strong);background:#ffffffad;font-weight:900;white-space:nowrap;box-shadow:0 6px 16px #5992cc14}.tab-button.active{color:#fff;border-color:transparent;background:linear-gradient(180deg,var(--blue-light),var(--blue));box-shadow:var(--shadow-small)}.card{border:1px solid rgba(201,228,251,.92);border-radius:16px;background:#ffffffc2;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toolbar{padding:18px}.toolbar-buttons{display:flex;gap:10px}.toolbar-buttons button{flex:1}.option-grid{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;margin-top:18px}.toggle{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font-size:14px;font-weight:800;cursor:pointer}.toggle input{display:none}.toggle-control{position:relative;width:42px;height:23px;border-radius:99px;background:#c8deee;transition:.2s;box-shadow:inset 0 1px 3px #43719f2e}.toggle-control:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #43719f3d;transition:.2s}.toggle input:checked+.toggle-control{background:linear-gradient(180deg,var(--blue-light),var(--blue))}.toggle input:checked+.toggle-control:after{transform:translate(19px)}.timer-option,.timer-option label{display:flex;align-items:center;gap:8px}.timer-option input{width:80px;padding:8px}.timer{position:sticky;top:15px;z-index:2;width:max-content;margin:16px auto 0;padding:8px 18px;border-radius:99px;color:#fff;background:linear-gradient(180deg,var(--blue-light),var(--blue));font-weight:1000;box-shadow:var(--shadow-small)}.notice{margin:16px 0 0;padding:14px 16px;border:1px solid rgba(244,167,198,.6);border-radius:10px;background:#f4a7c629;font-weight:800}.participant-layout{margin-top:18px}.participants-card{min-height:460px;overflow:hidden}.section-title{display:flex;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid rgba(201,228,251,.85);background:#f4fbff6b}.section-title .muted{margin-top:7px;font-size:13px}.status{height:fit-content;white-space:nowrap;border-radius:99px;padding:6px 10px;color:#6d8dad;background:#f4fbffdb;border:1px solid rgba(201,228,251,.86);font-size:12px;font-weight:900}.status.connected{color:var(--ink-strong);background:#8edaf638;border-color:#7ebcf280}.status.error{color:#d95780;background:#f4a7c629;border-color:#f4a7c68c}.participants{min-height:340px;max-height:560px;overflow-y:auto;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding:18px}.vote-winner-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:14px}.vote-winner-summary strong{color:var(--ink-strong);font-size:28px}.vote-winner-summary span{color:#6d8dad}.empty{width:100%;align-self:center;color:#92abc4;text-align:center;font-weight:800}.viewer-chip{display:inline-flex;align-items:center;gap:6px;height:fit-content;padding:9px 11px;border:1px solid rgba(201,228,251,.9);border-radius:9px;background:#ffffffd1;color:var(--ink);font-size:14px;font-weight:800;box-shadow:0 4px 10px #5992cc14}.viewer-chip.inactive{opacity:.35;text-decoration:line-through}.viewer-chip img{width:18px;height:18px;object-fit:contain}.viewer-chip b{color:#4f86c8;font-size:10px}.participant-footer{display:flex;justify-content:space-between;padding:15px 18px;color:#6d8dad;border-top:1px solid rgba(201,228,251,.85);background:#f4fbff6b;font-size:13px;font-weight:800}.roulette-preview-card{margin-top:18px;overflow:hidden}.roulette-preview-body{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:18px;align-items:center;padding:18px}.roulette-preview-card .roulette-wheel-area{padding:4px}.roulette-ranking{height:100%;max-height:430px;overflow:hidden;border:1px solid rgba(201,228,251,.9);border-radius:14px;background:#f4fbffb3}.roulette-ranking-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 10px;border-bottom:1px solid rgba(201,228,251,.85)}.roulette-ranking-title span{color:#4f86c8;font-size:12px;font-weight:1000}.roulette-ranking-list{max-height:370px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:12px}.roulette-ranking-list .muted{padding:16px 4px;text-align:center}.roulette-ranking-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid rgba(201,228,251,.82);border-radius:10px;background:#ffffffd1}.roulette-ranking-item span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(180deg,var(--blue-light),var(--blue));font-size:12px;font-weight:1000}.roulette-ranking-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roulette-ranking-item b{color:#4f86c8;font-size:12px}.history{margin-top:18px;padding:20px}.winner-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.footer{display:flex;justify-content:center;gap:16px;padding:0 24px 28px;color:#6d8dad;font-size:13px;font-weight:800}.footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}.number-vote-setup,.number-vote-card{margin-top:18px;overflow:hidden}.number-vote-edit-list{display:grid;gap:10px;padding:18px}.number-vote-edit-item{display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:10px}.number-vote-edit-item strong{color:#4f86c8;font-weight:1000}.number-vote-edit-item .secondary{padding:12px 16px}.number-vote-title-status{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.number-vote-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:18px;padding:18px}.number-vote-list{display:grid;align-content:start;gap:10px}.number-vote-item{display:grid;gap:8px;width:100%;border:1px solid rgba(201,228,251,.9);border-radius:14px;background:#ffffffbd;padding:14px;text-align:left;box-shadow:0 6px 16px #5992cc14}.number-vote-item.active{border-color:#518bd0ad;background:#f4fbfff5;box-shadow:0 14px 30px #5992cc29}.number-vote-item-top{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:10px}.number-vote-item-top b{color:#4f86c8;font-size:13px;font-weight:1000}.number-vote-item-top strong{overflow:hidden;color:var(--ink-strong);text-overflow:ellipsis;white-space:nowrap;font-weight:1000}.number-vote-item-top em{color:#6d8dad;font-style:normal;font-size:13px;font-weight:1000}.number-vote-bar{height:13px;overflow:hidden;border-radius:999px;background:#c9e4fbb8}.number-vote-bar i{display:block;height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,var(--mint),var(--blue));transition:width .22s ease}.number-vote-detail{min-height:320px;display:grid;align-content:start;gap:14px;border:1px solid rgba(201,228,251,.9);border-radius:14px;background:#f4fbffb3;padding:16px}.number-vote-detail-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.number-vote-detail-head h2{margin-top:4px;word-break:break-word}.number-vote-voters{max-height:360px;overflow-y:auto;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding-right:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:20px;background:#10243d75;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.slot-modal{width:min(720px,100%);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:30px;border:1px solid rgba(201,228,251,.95);border-radius:20px;background:#ffffffeb;box-shadow:0 22px 70px #5992cc42;text-align:center;overflow:hidden}.slot-window{width:min(440px,100%);height:82px;overflow:hidden;border-block:2px solid var(--blue-light);background:#f4fbffe6}.slot-track{animation:slot-spin 2.8s cubic-bezier(.12,.72,.12,1) forwards}.slot-row{height:78px;display:grid;place-items:center;font-size:25px;font-weight:1000}.slot-viewer-chip{max-width:92%;justify-content:center;padding:12px 16px;border-color:#7ebcf273;background:#ffffffe6;font-size:22px;font-weight:1000}.slot-viewer-chip img{width:24px;height:24px}.winner{display:flex;width:100%;flex-direction:column;gap:16px;align-items:center;animation:winner-in .45s ease both}.winner h2{color:var(--ink-strong);font-size:clamp(36px,8vw,62px)}.winner-viewer-chip{max-width:100%;justify-content:center;padding:16px 22px;border-color:#7ebcf28c;background:#f4fbfff0;color:var(--ink-strong);font-size:clamp(30px,6vw,52px);font-weight:1000;box-shadow:0 14px 34px #5992cc2e}.winner-viewer-chip img{width:clamp(30px,5vw,44px);height:clamp(30px,5vw,44px)}.winner-viewer-chip b{font-size:13px}.winner p{color:#6d8dad}.winner-chat{width:100%;overflow:hidden;border:1px solid rgba(201,228,251,.9);border-radius:12px;background:#f4fbffbd;text-align:left}.winner-chat-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(201,228,251,.85)}.winner-chat-messages{height:190px;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:8px;padding:12px}.winner-chat-messages::-webkit-scrollbar{display:none}.chat-balloon{width:fit-content;max-width:90%;padding:9px 11px;border-radius:3px 10px 10px;color:var(--ink)!important;background:#fff;border:1px solid rgba(201,228,251,.9);line-height:1.45}@keyframes slot-spin{0%{transform:translateY(0)}to{transform:translateY(calc(-100% + 78px))}}@keyframes winner-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.roulette-modal{position:relative;width:min(760px,100%);min-height:560px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:30px;border:1px solid rgba(201,228,251,.95);border-radius:22px;background:radial-gradient(circle at 50% 35%,#def2fffa,#fffffff0 58%);box-shadow:0 22px 80px #5992cc47;text-align:center;overflow:hidden}.roulette-wheel-area{display:flex;flex-direction:column;align-items:center;justify-content:center}.roulette-pointer-label{z-index:2;display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:-18px;color:var(--ink-strong);font-size:16px;font-weight:1000;text-shadow:0 2px 10px rgba(126,188,242,.38)}.roulette-pointer{display:block;width:0;height:0;border-inline:18px solid transparent;border-top:32px solid var(--blue);border-bottom:0;filter:drop-shadow(0 6px 10px rgba(81,139,208,.28))}.roulette-wheel-wrap{position:relative;width:min(380px,82vw);aspect-ratio:1;display:grid;place-items:center;border:10px solid #fff;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 3px #c9e4fbf2,0 18px 42px #5992cc38}.roulette-wheel{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;overflow:hidden;background:#eef8ff;transition:transform .35s ease}.roulette-wheel.spinning{animation:roulette-spin 3.6s cubic-bezier(.09,.74,.08,1) forwards}.roulette-wheel svg{width:100%;height:100%;display:block}.roulette-slice-button{cursor:pointer;outline:none}.roulette-wheel.spinning .roulette-slice-button{cursor:default;pointer-events:none}.roulette-slice{stroke:#fff;stroke-width:2.4;filter:drop-shadow(0 1px 0 rgba(40,77,120,.12));transition:filter .18s ease,opacity .18s ease,stroke-width .18s ease}.roulette-slice-button:hover .roulette-slice,.roulette-slice-button:focus .roulette-slice,.roulette-slice.selected{filter:brightness(1.08) drop-shadow(0 0 8px rgba(81,139,208,.3));stroke:var(--ink-strong);stroke-width:4}.roulette-empty-slice{fill:#e8f5ff;stroke:var(--line);stroke-width:3}.roulette-label{fill:#fff;stroke:#284d78a3;stroke-width:3px;paint-order:stroke;dominant-baseline:middle;font-size:15px;font-weight:1000;text-anchor:middle;letter-spacing:-.3px;pointer-events:none}.roulette-empty-label{position:relative;z-index:2;margin-top:132px;color:#6d8dad;font-size:14px;font-weight:900}.roulette-center{position:relative;z-index:2;display:grid;width:82px;height:82px;place-items:center;border:8px solid #fff;border-radius:50%;color:#fff;background:linear-gradient(180deg,var(--blue-light),var(--blue));font-size:34px;font-weight:1000;box-shadow:0 12px 24px #518bd03d}.roulette-tooltip{position:relative;width:min(420px,92vw);margin-top:18px;padding:14px;border:1px solid rgba(201,228,251,.95);border-radius:14px;background:#fffffff5;box-shadow:var(--shadow-soft);text-align:left}.roulette-tooltip:before{content:"";position:absolute;left:50%;top:-10px;width:18px;height:18px;border-left:1px solid rgba(201,228,251,.95);border-top:1px solid rgba(201,228,251,.95);background:#fffffff5;transform:translate(-50%) rotate(45deg)}.roulette-tooltip>strong{position:relative;z-index:1;display:block;color:var(--ink-strong);font-size:18px;word-break:break-word}.roulette-voter-list{position:relative;z-index:1;max-height:156px;overflow-y:auto;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-right:4px}.roulette-winner{position:relative;display:flex;width:100%;flex-direction:column;align-items:center;gap:16px;animation:winner-in .45s ease both}.roulette-winner>strong{max-width:100%;padding:12px 20px;border:1px solid rgba(126,188,242,.55);border-radius:16px;color:var(--ink-strong);background:#f4fbfff0;font-size:clamp(38px,8vw,76px);font-weight:1000;line-height:1.05;word-break:break-word;box-shadow:0 18px 42px #5992cc38}.roulette-winner p{color:#6d8dad}.roulette-author{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;color:#6d8dad}.fanfare{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fanfare i{--angle: calc(var(--i) * 15deg);position:absolute;left:50%;top:42%;width:10px;height:18px;border-radius:3px;background:hsl(calc(var(--i) * 18 + 195),86%,68%);transform:rotate(var(--angle)) translateY(0) scale(.25);animation:confetti-pop .9s ease-out forwards;animation-delay:calc((var(--i) % 6) * 30ms)}@keyframes roulette-spin{0%{transform:rotate(0)}to{transform:rotate(var(--spin-degrees))}}@keyframes confetti-pop{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.25)}20%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(-250px) rotate(540deg) scale(1)}}@media(max-width:850px){.header-inner{align-items:flex-start;flex-direction:column}.channel{width:100%}.channel .text-button{margin-left:auto}.roulette-preview-body{grid-template-columns:1fr}.roulette-ranking{max-height:240px}.roulette-ranking-list{max-height:180px}}@media(max-width:560px){.content,.header-inner{padding-inline:14px}.channel-form,.toolbar-buttons{flex-direction:column}.registration-card{gap:16px;padding:24px 18px}.brand-mark{height:76px}.section-title{flex-direction:column}.status{width:fit-content}}
