*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}@font-face{font-family:NeoDonggeunmo;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.3/NeoDunggeunmo.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:AbiHowl;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_five@.2.0/UhBeeHowl.woff) format("woff");font-weight:400;font-display:swap}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}: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;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}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.gacha-overlay{position:fixed;inset:0;z-index:9999;overflow:hidden;-webkit-user-select:none;user-select:none;font-family:NeoDonggeunmo,"M PLUS Rounded 1c",Arial,sans-serif;background:#fff}.gacha-overlay .game-layer{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;background-color:#fff;transition:filter .5s linear}.gacha-overlay .game-layer.dim{filter:brightness(.6) saturate(.8)}.gacha-overlay .lottery-panel{position:absolute;left:32px;top:44%;width:360px;max-height:82vh;overflow-y:auto;background:#ffffffed;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px 22px 18px 24px;z-index:10;box-shadow:0 4px 20px #00000017,0 0 0 1px #b496dc2e;font-family:Nanum Square Round,sans-serif;pointer-events:auto}.gacha-overlay .lottery-panel::-webkit-scrollbar{width:4px}.gacha-overlay .lottery-panel::-webkit-scrollbar-track{background:transparent}.gacha-overlay .lottery-panel::-webkit-scrollbar-thumb{background:#b48cd259;border-radius:2px}.gacha-overlay .lottery-panel .lp-header{font-size:17px;font-weight:800;color:#6d28d9;text-align:center;margin-bottom:14px;letter-spacing:.02em}.gacha-overlay .lottery-panel .lp-table{width:100%;border-collapse:collapse;font-size:17px}.gacha-overlay .lottery-panel .lp-table thead tr{border-bottom:1.5px solid #e9d5ff}.gacha-overlay .lottery-panel .lp-table th{font-size:14px;font-weight:700;color:#7c3aed;padding:0 6px 8px;text-align:center}.gacha-overlay .lottery-panel .lp-table th:first-child{text-align:left}.gacha-overlay .lottery-panel .lp-table td{padding:7px 6px;color:#374151;font-weight:600;text-align:center;border-bottom:1px solid #f3f4f6}.gacha-overlay .lottery-panel .lp-table td:first-child{text-align:left}.gacha-overlay .lottery-panel .lp-table tbody tr:last-child td{border-bottom:none}.gacha-overlay .lottery-panel .lp-table .lp-name{font-size:17px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:185px}.gacha-overlay .lottery-panel .lp-table .lp-tickets{color:#374151;font-size:17px;white-space:nowrap}.gacha-overlay .lottery-panel .lp-table .lp-prob{font-weight:800;color:#7c3aed;font-size:17px;white-space:nowrap}.gacha-overlay .lottery-panel .lp-table .lp-winner td{color:#dc2626}.gacha-overlay .lottery-panel .lp-table .lp-winner .lp-name{font-weight:900;color:#dc2626}.gacha-overlay .lottery-panel .lp-table .lp-winner .lp-prob{color:#dc2626}.gacha-overlay .lottery-panel .lp-table .lp-winner{background:#fff1f2;border-radius:4px}.gacha-overlay .lottery-panel .lp-table .lp-zero td{color:#c4b5d0}.gacha-overlay .lottery-panel .lp-table .lp-zero .lp-tickets,.gacha-overlay .lottery-panel .lp-table .lp-zero .lp-prob{color:#d1d5db}.gacha-overlay .lottery-panel .lp-table .lp-zero{opacity:.65}@media(max-width:700px){.gacha-overlay .lottery-panel{display:none}}.gacha-overlay .machine-container{position:relative;white-space:nowrap;transform:translateY(100vh)}.gacha-overlay .machine-container .machine{position:relative;z-index:1;max-height:80vh;pointer-events:none}.gacha-overlay .machine-container .backboard{z-index:0;width:15vh;height:13vh;top:65%;left:48%;background-color:#e288bb;position:absolute}.gacha-overlay .machine-container .machine-title{position:absolute;display:block;top:10%;width:100%;text-align:center;font-size:5vh;z-index:3;color:#ffc7e5;text-shadow:0 0 2px #ad8bd6,0 0 2px #ad8bd6,0 0 2px #ad8bd6,0 0 2px #ad8bd6,0 0 2px #ad8bd6,0 0 2px #ad8bd6,0 0 2px #ad8bd6,0 0 2px #ad8bd6;filter:drop-shadow(0px 2px 0px rgba(0,0,0,.2))}.gacha-overlay .machine-container .machine-title span{display:inline-block;animation:gacha-blink .8s linear both infinite}.gacha-overlay .machine-container .machine-title span:nth-child(1){animation-delay:.12s}.gacha-overlay .machine-container .machine-title span:nth-child(2){animation-delay:.24s}.gacha-overlay .machine-container .machine-title span:nth-child(3){animation-delay:.36s}.gacha-overlay .machine-container .machine-title span:nth-child(4){animation-delay:.48s}.gacha-overlay .machine-container .machine-title span:nth-child(5){animation-delay:.6s}.gacha-overlay .machine-container .machine-title span:nth-child(6){animation-delay:.72s}.gacha-overlay .machine-container .machine-title span:nth-child(7){animation-delay:.84s}.gacha-overlay .machine-container .machine-title span:nth-child(8){animation-delay:.96s}.gacha-overlay .machine-container .machine-title span:nth-child(9){animation-delay:1.08s}.gacha-overlay .machine-container .machine-title span:nth-child(10){animation-delay:1.2s}.gacha-overlay .machine-container .handle{z-index:3;position:absolute;height:3.9vh;left:13%;top:69%}.gacha-overlay .machine-container .balls{position:absolute;top:22%;left:2%;width:96%;height:34.5%}.gacha-overlay .machine-container .pointer{position:absolute;height:15vh;top:75%;left:15%;z-index:5;pointer-events:none;opacity:0}.gacha-overlay .machine-container .pointer img{height:100%;display:block;transform:rotate(-30deg);transform-origin:0% 0%;animation:gacha-click 1s ease-in-out infinite both}.gacha-overlay .ball{--size: 8vh;--outline: #4c3fc2;--color1: #2facff;--color2: #ff8ff6;width:var(--size);height:var(--size);border-radius:100%;background-color:var(--color1);border:solid .8vh var(--outline);position:absolute;overflow:hidden;display:flex;align-items:center;justify-content:center}.gacha-overlay .ball:after{content:"";display:block;position:absolute;top:50%;height:200%;width:200%;background-color:var(--color2);border-radius:100%;border:inherit;transform:translate(-25%,-5%)}.gacha-overlay .ball .ball-label{position:relative;z-index:2;font-size:1.3vh;font-weight:900;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8);text-align:center;white-space:pre-line;line-height:1.25;pointer-events:none;max-width:90%;word-break:keep-all}.gacha-overlay .ui-layer{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0;z-index:1;pointer-events:none}.gacha-overlay .ui-layer .title-container{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0;z-index:10}.gacha-overlay .ui-layer .title-container .ui-title h2{text-align:center;font-size:5vh;color:#fff;text-shadow:0 0 2px #f06e5b,0 0 2px #f06e5b,0 0 2px #f06e5b,0 0 2px #f06e5b,0 0 2px #f06e5b,0 0 2px #f06e5b,0 0 2px #f06e5b,0 0 2px #f06e5b;filter:drop-shadow(0px 2px 0px rgba(0,0,0,.2));animation:gacha-wiggle 2s ease-in-out infinite both}.gacha-overlay .ui-layer .prize-container,.gacha-overlay .ui-layer .prize-container .prize-ball-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.gacha-overlay .ui-layer .prize-container .prize-reward-container{width:100%;height:100%;position:absolute;top:0;left:0;z-index:1;overflow:hidden;opacity:0}.gacha-overlay .ui-layer .prize-container .prize-reward-container>*{display:flex;position:absolute;width:100%;height:100%;top:0;left:0;align-items:center;justify-content:center}.gacha-overlay .ui-layer .prize-container .prize-reward-container .shine img{height:100vh;animation:gacha-spin linear 5s infinite forwards}.gacha-overlay .ui-layer .prize-container .prize-reward-container .prize{pointer-events:none}.gacha-overlay .ui-layer .prize-container .prize-reward-container .prize .student-prize-card{pointer-events:auto}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card{text-align:center;animation:gacha-card-in .5s cubic-bezier(.34,1.56,.64,1) both}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket{background:linear-gradient(160deg,#ff5252,#b71c1c);border-radius:20px 20px 4px 4px;padding:20px 44px 18px;box-shadow:0 0 0 4px #ff525259,0 10px 40px #b71c1c8c;position:relative;overflow:hidden}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 14px,rgba(255,255,255,.04) 14px,rgba(255,255,255,.04) 28px);pointer-events:none}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket .sp-ticket-emoji{display:block;font-size:5vh;line-height:1;margin-bottom:4px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket .sp-ticket-top{font-size:1.6vh;font-weight:800;letter-spacing:.3em;color:#fffc;margin-bottom:8px}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket .sp-ticket-dashed{border:none;border-top:2px dashed rgba(255,255,255,.45);margin:8px -44px}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket .sp-ticket-name{font-size:8.5vh;font-weight:900;color:#fff;line-height:1.1;margin:10px 0;text-shadow:0 3px 16px rgba(0,0,0,.25);letter-spacing:-.02em}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-ticket .sp-ticket-meta{font-size:1.7vh;color:#ffffffd1;font-weight:600;margin-top:2px}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-buttons{display:flex;gap:8px;margin-top:12px}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-buttons .sp-btn-retry{flex:1;padding:12px 14px;border-radius:12px;border:2px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;font-size:1.5vh;font-weight:700;cursor:pointer;font-family:Nanum Square Round,sans-serif;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-buttons .sp-btn-retry:hover{background:#ffffff38}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-buttons .sp-btn-confirm{flex:2;padding:12px 18px;border-radius:12px;border:none;background:#6366f1;color:#fff;font-size:1.6vh;font-weight:800;cursor:pointer;font-family:Nanum Square Round,sans-serif;white-space:nowrap}.gacha-overlay .ui-layer .prize-container .prize-reward-container .student-prize-card .sp-buttons .sp-btn-confirm:hover{background:#4f46e5}.gacha-overlay .confetti{position:absolute;top:0;left:0;overflow:hidden;width:100%;height:100%;z-index:10;pointer-events:none;perspective:100vmin}.gacha-overlay .confetti span{--size: 5;display:block;position:absolute;width:calc(var(--size) * 1px);height:calc(var(--size) * 1px);animation:gacha-rotate linear calc(var(--rs) * 1s) infinite both}.gacha-overlay .gacha-close-btn{position:absolute;top:16px;right:16px;z-index:200;background:#0006;border:none;color:#fff;font-size:18px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.gacha-overlay .gacha-close-btn:hover{background:#0009}@keyframes gacha-blink{0%{color:#ffc7e5}20%{color:#fcff33}to{color:#ffc7e5}}@keyframes gacha-wiggle{0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}to{transform:rotate(-5deg)}}@keyframes gacha-click{0%{transform:rotate(-30deg) translateY(0)}80%{transform:rotate(-30deg) translateY(5vh)}to{transform:rotate(-30deg) translateY(0)}}@keyframes gacha-spin{0%{transform:rotate(1turn)}to{transform:rotate(0)}}@keyframes gacha-rotate{0%{transform:rotate3d(var(--rx),var(--ry),var(--rz),0)}to{transform:rotate3d(var(--rx),var(--ry),var(--rz),1turn)}}@keyframes gacha-card-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}:root{--primary: #7DA84E;--primary-light: #EEF7E6;--primary-dark: #5C8235;--bg: #F5ECD8;--card: #FFFDF8;--text-1: #111827;--text-2: #374151;--text-3: #6B7280;--text-4: #9CA3AF;--border: #E5E7EB;--red: #EF4444;--red-light: #FEF2F2;--green: #10B981;--green-light: #ECFDF5;--orange: #F59E0B}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}html,body,#root{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;color:var(--text-1);line-height:1.5}body:has(.m-app){background:var(--bg)}body:has(.m-app){overflow:hidden}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.m-app{display:flex;flex-direction:column;height:100dvh;max-width:430px;margin:0 auto;background:var(--bg);overflow:hidden}.m-sidebar{display:none}.m-header{background:var(--primary);color:#fff;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:56px;position:relative;z-index:200}.m-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px}.m-tabbar{background:#fff;border-top:1px solid var(--border);display:flex;padding-bottom:max(env(safe-area-inset-bottom,0px),8px);flex-shrink:0}.m-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;border:none;background:none;color:var(--text-4);font-size:10px;gap:3px;min-height:56px;position:relative;transition:color .15s}.m-tab.active{color:var(--primary);font-weight:600}.m-tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:28px;height:3px;background:var(--primary);border-radius:0 0 4px 4px}.m-tab-icon{font-size:22px;line-height:1}.m-card{background:var(--card);border-radius:16px;padding:16px;box-shadow:0 1px 4px #0000000f;margin-bottom:12px}.m-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.m-section-title{font-size:15px;font-weight:700;color:var(--text-1)}.m-section-more{font-size:13px;color:var(--primary);background:none;border:none;padding:6px 4px;min-height:36px;display:flex;align-items:center}.m-input{width:100%;padding:14px 16px;font-size:16px;border:1.5px solid var(--border);border-radius:12px;outline:none;background:#fff;color:var(--text-1);transition:border-color .15s;-webkit-appearance:none;appearance:none}.m-input:focus{border-color:var(--primary)}.m-input.code{letter-spacing:8px;font-weight:700;text-align:center;font-size:26px;font-family:SF Mono,Consolas,monospace}.m-btn{width:100%;padding:15px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.m-btn:active{transform:scale(.98);opacity:.88}.m-btn:disabled{opacity:.45;pointer-events:none}.m-btn-primary{background:var(--primary);color:#fff}.m-btn-ghost{background:#fff;color:var(--text-3);border:1.5px solid var(--border)}.m-error{color:var(--red);font-size:13px;margin-top:8px;display:flex;align-items:center;gap:4px}.m-loading{display:flex;justify-content:center;align-items:center;height:180px;color:var(--text-4);font-size:14px}.m-chip{display:inline-flex;align-items:center;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;background:var(--primary-light);color:var(--primary)}.m-chip.me{background:var(--primary);color:#fff;font-weight:700}.m-divider{height:1px;background:var(--border);margin:4px 0}@keyframes approvalFadeIn{0%{opacity:0;transform:translateY(40px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes beanPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}@keyframes cardHighlight{0%,to{box-shadow:0 0 0 3px #10b981}50%{box-shadow:0 0 0 6px #6ee7b7}}.approval-toast{animation:approvalFadeIn .4s cubic-bezier(.34,1.56,.64,1) forwards}.bean-pop{display:inline-block;animation:beanPop .5s cubic-bezier(.34,1.56,.64,1) both}.card-highlight{animation:cardHighlight 1s ease-in-out infinite}@media(min-width:500px){.m-app{flex-direction:row;max-width:100%;margin:0;height:100dvh}.m-header,.m-tabbar{display:none}#funding-footer-slot{width:0;flex:none;overflow:visible}#funding-footer-slot>*{position:fixed;bottom:0;left:200px;right:0;z-index:200}.m-sidebar{display:flex;flex-direction:column;width:200px;min-width:200px;background:var(--primary-dark);color:#fff;padding:28px 16px 24px;overflow-y:auto;flex-shrink:0}.m-sidebar-logo{display:flex;align-items:center;gap:10px;margin-bottom:24px;padding:0 4px}.m-sidebar-logo-icon{font-size:28px;line-height:1}.m-sidebar-logo-text{font-size:16px;font-weight:800;letter-spacing:-.3px;color:#fff}.m-sidebar-user{background:#ffffff1f;border-radius:12px;padding:12px 14px;margin-bottom:20px}.m-sidebar-user-class{font-size:11px;opacity:.75;margin-bottom:2px}.m-sidebar-user-name{font-size:15px;font-weight:700}.m-sidebar-user-team{font-size:12px;opacity:.65;margin-top:2px}.m-sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1}.m-sidebar-tab{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;border:none;background:transparent;color:#ffffffb3;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;font-family:inherit;text-align:left}.m-sidebar-tab:hover{background:#ffffff1f;color:#fff}.m-sidebar-tab.active{background:#fff3;color:#fff;font-weight:700}.m-sidebar-tab-icon{font-size:18px;line-height:1}.m-sidebar-logout{margin-top:16px;padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#ffffffb3;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.m-sidebar-logout:hover{background:#ffffff1f;color:#fff}.m-scroll{flex:1;padding:28px 36px;overflow-y:auto;background:var(--bg)}.m-card{padding:20px 24px;border-radius:18px}.m-funding-bottom-bar{left:200px!important}}
