*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:#0d0d0f;overflow:hidden;font-family:Segoe UI,system-ui,sans-serif;font-size:12px;color:#d0d0dc}.tom-viewport{width:100vw;height:100vh;height:100dvh}.warning-root{position:absolute;inset:0;background:#000;z-index:30;padding:24px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.warning-inner,.warning-root{display:flex;flex-direction:column;align-items:center}.warning-inner{margin:auto;gap:28px;max-width:560px;width:100%;padding:40px 0;word-break:keep-all}.warning-header{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.warning-icon{font-size:28px;color:#c22}.warning-title-ko{font-size:26px;font-weight:800;color:#fff;letter-spacing:.04em}.warning-title-en{font-size:14px;font-weight:500;color:hsla(0,0%,100%,.4);letter-spacing:.12em;text-transform:uppercase}.warning-privacy{margin-top:14px;text-align:center}.privacy-trigger{background:none;border:none;color:hsla(0,0%,100%,.4);font-size:11px;text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-family:inherit;padding:4px}.privacy-trigger:hover{color:hsla(0,0%,100%,.7)}.privacy-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.privacy-modal{background:#14161a;border:1px solid #2c313a;border-radius:16px;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6)}.privacy-header{justify-content:space-between;padding:18px 20px;border-bottom:1px solid #2c313a;flex-shrink:0}.privacy-header,.privacy-title{display:flex;align-items:center}.privacy-title{gap:8px;color:#fff;font-size:15px;font-weight:700;margin:0}.privacy-close{background:none;border:none;color:#888;font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.privacy-close:hover{color:#fff}.privacy-body{overflow-y:auto;padding:20px;color:#c4c8d0;font-size:13px;line-height:1.7}.privacy-body h1{color:#fff;font-size:17px;font-weight:700;margin:0 0 10px}.privacy-body h2{color:#dfe3ea;font-size:13px;font-weight:600;margin:18px 0 8px}.privacy-body p{margin:0 0 8px}.privacy-body ul{margin:0 0 8px;padding-left:18px}.privacy-body li{margin:2px 0}.privacy-body hr{border:none;border-top:1px solid #2c313a;margin:14px 0}.privacy-body strong{color:#e6e9ef}.privacy-body a{color:#5aa9ff;text-decoration:underline}.privacy-body em{color:#6b7280;font-style:italic}.privacy-body blockquote{border-left:2px solid #3a4150;padding-left:12px;margin:8px 0;color:#9aa0ab}.privacy-body table{width:100%;border-collapse:collapse;font-size:12px;margin:4px 0 8px}.privacy-body th{color:#9aa0ab;text-align:left;font-weight:600}.privacy-body td,.privacy-body th{border:1px solid #2c313a;padding:5px 8px}.privacy-body td{vertical-align:top}.warning-body{display:flex;flex-direction:column;gap:6px;text-align:center;border-top:1px solid hsla(0,0%,100%,.08);border-bottom:1px solid hsla(0,0%,100%,.08);padding:28px 0;width:100%}.warning-gap{height:16px}.warning-line-ko{font-size:14px;color:hsla(0,0%,100%,.88);line-height:1.7;font-weight:500}.warning-line-en{font-size:12px;color:hsla(0,0%,100%,.4);line-height:1.6;font-style:italic}.warning-question-ko{font-size:15px;font-weight:700;color:#fff;line-height:1.6;margin-top:4px}.warning-question-en{font-size:12px;color:hsla(0,0%,100%,.45);font-style:italic;line-height:1.6}.warning-btn{height:48px;padding:0 40px;background:rgba(180,20,20,.85);border:1px solid rgba(220,50,50,.5);border-radius:4px;color:#fff;font-size:14px;font-weight:700;letter-spacing:.08em;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .15s;font-family:inherit;min-width:220px;justify-content:center}.warning-btn:hover:not(:disabled){background:#c81e1e}.warning-btn-loading{background:rgba(60,60,60,.8);border-color:hsla(0,0%,100%,.1);cursor:not-allowed}.warning-spinner{width:14px;height:14px;border:2px solid hsla(0,0%,100%,.2);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.warning-guideline{display:flex;flex-direction:column;gap:8px;text-align:center;max-width:480px}.warning-guideline-title{font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:hsla(0,0%,100%,.7)}.warning-guideline p:not(.warning-guideline-title){font-size:11px;color:hsla(0,0%,100%,.5);line-height:1.7}.app{position:relative;width:100vw;height:100vh}.canvas-container{position:absolute;inset:0}.canvas-container canvas{display:block}.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0d0d0f;gap:18px;z-index:20}.loading-text{font-size:1.1rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:#c8c8d0}.loading-error{font-size:2rem;color:#ff6060}.spinner{width:36px;height:36px;border:3px solid #2a2a35;border-top-color:#7b7bff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.gui-panel{position:absolute;top:16px;right:16px;width:280px;max-height:calc(100vh - 32px);overflow-y:auto;background:rgba(14,14,20,.88);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;scrollbar-width:thin;scrollbar-color:#3a3a50 transparent}.gui-panel::-webkit-scrollbar{width:5px}.gui-panel::-webkit-scrollbar-track{background:transparent}.gui-panel::-webkit-scrollbar-thumb{background:#3a3a50;border-radius:3px}.gui-header{display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:600;letter-spacing:.06em;color:#e8e8f0;border-bottom:1px solid hsla(0,0%,100%,.07)}.gui-header-icon{font-size:16px}.folder{border-bottom:1px solid hsla(0,0%,100%,.05)}.folder-title{width:100%;padding:9px 14px;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#9090b0;transition:color .15s}.folder-title:hover{color:#b8b8d8}.folder-arrow{font-size:10px;transition:transform .2s}.folder-arrow.open{transform:rotate(90deg)}.folder-content{padding:4px 0}.slider-row{padding:5px 14px;display:flex;flex-direction:column;gap:3px}.slider-label-row{display:flex;justify-content:space-between;align-items:center}.slider-name{color:#a8a8c0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.slider-value{color:#7b7bff;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:36px;text-align:right}.slider-number-input{width:60px;background:rgba(123,123,255,.07);border:1px solid rgba(123,123,255,.25);border-radius:3px;color:#7b7bff;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;padding:1px 5px;outline:none;flex-shrink:0}.slider-number-input:focus{border-color:rgba(123,123,255,.6)}.slider-number-input::-webkit-inner-spin-button,.slider-number-input::-webkit-outer-spin-button{-webkit-appearance:none}.slider-input{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#2a2a38;border-radius:2px;outline:none;cursor:pointer}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#7b7bff;cursor:pointer;-webkit-transition:background .15s;transition:background .15s}.slider-input:hover::-webkit-slider-thumb{background:#9b9bff}.btn-reset{display:block;width:calc(100% - 28px);margin:8px 14px;padding:6px 0;background:rgba(123,123,255,.12);border:1px solid rgba(123,123,255,.25);border-radius:5px;color:#9090cc;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.btn-reset:hover{background:rgba(123,123,255,.22);color:#c0c0f0}.bone-group{padding:5px 14px 2px}.bone-name{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#606078;margin-bottom:4px}.empty-state{padding:10px 14px;color:#555568;font-style:italic}.score-display{position:absolute;top:3.5%;left:50%;transform:translateX(-50%);pointer-events:none;z-index:5;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;white-space:nowrap}.score-label{font-size:clamp(8px,1.2vw,11px);letter-spacing:.22em;text-transform:uppercase;color:hsla(0,0%,100%,.4);text-shadow:0 0 6px hsla(0,0%,100%,.15)}.score-label,.score-value{font-family:Courier New,Courier,monospace;font-weight:700}.score-value{font-size:clamp(16px,2.8vw,26px);letter-spacing:.08em;color:hsla(0,0%,100%,.88);text-shadow:0 0 12px rgba(255,80,80,.45),0 0 24px rgba(255,80,80,.2)}.phase-gauge{margin-top:5px;width:clamp(90px,11vw,150px);height:3px;border-radius:2px;background:hsla(0,0%,100%,.14);overflow:hidden}.phase-gauge-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,hsla(0,100%,74%,.85),rgba(255,60,60,.95));box-shadow:0 0 8px rgba(255,80,80,.5);transition:width 1s linear}@media (max-width:640px){.score-display{top:2.5%}.score-value{font-size:clamp(14px,5vw,20px)}}.live-chat-root{inset:0;pointer-events:none;z-index:5}.live-chat-panel,.live-chat-root{position:absolute;overflow:hidden}.live-chat-panel{right:0;bottom:80px;width:300px;height:58%;display:flex;flex-direction:column;justify-content:flex-end;padding:16px 14px;background:linear-gradient(90deg,transparent 0,rgba(0,0,0,.06) 40%,rgba(0,0,0,.32)),linear-gradient(0deg,rgba(0,0,0,.52) 0,rgba(0,0,0,.18) 55%,transparent)}@media (max-width:640px){.live-chat-panel{left:0;right:0;width:100%;height:44%;bottom:0;padding-bottom:72px;padding-top:12px;padding-right:12px;overflow:hidden;background:linear-gradient(0deg,rgba(0,0,0,.58) 0,rgba(0,0,0,.22) 55%,transparent)}}.chat-viewers{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:hsla(0,0%,100%,.75);letter-spacing:.03em;margin-bottom:6px;text-shadow:0 1px 4px rgba(0,0,0,.9)}.chat-viewers-dot{width:6px;height:6px;border-radius:50%;background:#f44;box-shadow:0 0 6px rgba(255,68,68,.8);flex-shrink:0;animation:viewersDotPulse 2s ease-in-out infinite}@keyframes viewersDotPulse{0%,to{opacity:1}50%{opacity:.5}}.chat-viewers-label{font-weight:400;color:hsla(0,0%,100%,.45)}.chat-msg-list{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:3px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;pointer-events:auto;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 18%);mask-image:linear-gradient(180deg,transparent 0,#000 18%);scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.15) transparent}.chat-msg-list>.chat-msg:first-child{margin-top:auto}.chat-msg-list::-webkit-scrollbar{width:3px}.chat-msg-list::-webkit-scrollbar-track{background:transparent}.chat-msg-list::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.15);border-radius:2px}.chat-msg{display:flex;align-items:flex-start;gap:6px;padding:2px 3px;border-radius:2px;animation:chatMsgIn .22s ease-out both;line-height:1.45}.chat-avatar{width:20px;height:20px;border-radius:50%;flex-shrink:0;object-fit:cover;margin-top:1px}.chat-avatar-fallback{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:rgba(0,0,0,.75)}.chat-msg-body{flex:1 1;min-width:0}.chat-time{font-size:10px;color:hsla(0,0%,100%,.35);flex-shrink:0;align-self:flex-end;font-family:Courier New,Courier,monospace;letter-spacing:.03em;padding-bottom:1px}.chat-msg-superchat{display:flex;flex-direction:column;gap:2px;padding:5px 8px;border-radius:4px;border-left:3px solid;margin:3px 0}@keyframes chatMsgIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.chat-sc-amount{font-size:11px;font-weight:700;letter-spacing:.05em;font-family:Courier New,Courier,monospace}.chat-badge{font-size:10px;margin-right:3px;flex-shrink:0}.chat-username{font-weight:700;text-shadow:0 0 6px rgba(0,0,0,.8)}.chat-colon,.chat-username{font-size:12px;flex-shrink:0}.chat-colon{color:hsla(0,0%,100%,.35);margin:0 3px 0 1px}.chat-text{font-size:12px;color:hsla(0,0%,92%,.92);line-height:1.48;word-break:break-word;text-shadow:0 1px 4px rgba(0,0,0,.9)}.chat-input-area{display:flex;align-items:center;gap:6px;margin-top:8px;pointer-events:auto;cursor:text}.chat-input{flex:1 1;height:32px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.18);border-radius:16px;padding:0 14px;font-size:12px;color:hsla(0,0%,100%,.6);outline:none;cursor:text;font-family:inherit}.chat-input::placeholder{color:hsla(0,0%,100%,.35)}.chat-input-send{width:32px;height:32px;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.18);border-radius:50%;color:hsla(0,0%,100%,.55);font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:background .15s}.chat-input-send:hover{background:hsla(0,0%,100%,.2)}.chat-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;pointer-events:auto;z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px}.chat-modal{background:rgba(18,18,24,.96);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;padding:28px 24px 20px;max-width:380px;width:100%;gap:12px}.chat-modal,.chat-modal-card{display:flex;flex-direction:column}.chat-modal-card{gap:10px}.chat-modal-card-link{cursor:pointer;border-radius:8px;transition:opacity .15s}.chat-modal-card-link:hover{opacity:.82}.chat-modal-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:#111}.chat-modal-card-info{display:flex;flex-direction:column;gap:3px}.chat-modal-video-title{font-size:13px;font-weight:700;color:hsla(0,0%,100%,.92);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-modal-channel{font-size:11px;color:hsla(0,0%,100%,.45)}.chat-modal-divider{height:1px;background:hsla(0,0%,100%,.08);margin:2px 0}.chat-modal-title{font-size:15px;font-weight:700;color:hsla(0,0%,100%,.95);letter-spacing:.03em;text-align:center}.chat-modal-body{font-size:12px;color:hsla(0,0%,100%,.6);line-height:1.7;text-align:center}.chat-modal-buttons{display:flex;gap:8px;margin-top:4px}.chat-modal-btn{flex:1 1;height:38px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s;border:1px solid transparent;font-family:inherit}.chat-modal-btn-cancel{background:hsla(0,0%,100%,.07);border-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.55)}.chat-modal-btn-cancel:hover{background:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.8)}.chat-modal-btn-confirm{background:rgba(255,50,50,.8);border-color:rgba(255,80,80,.4);color:#fff}.chat-modal-btn-confirm:hover{background:#ff3232}