.ig{background:linear-gradient(160deg,#241e48,#171331);color:#e7e3fa;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:calc(var(--safe-area-top, 0px) + var(--s-5)) var(--s-4) calc(var(--safe-area-bottom, 0px) + 64px);position:fixed;z-index:10000}.ig-inner{margin:auto 0;max-width:400px;text-align:center;width:100%}.ig-icon{border-radius:var(--r-lg);display:block;margin:0 auto var(--s-3)}.ig-title{color:#f4f2fc;font-size:var(--fs-h1);font-weight:800;line-height:1.2;margin:0 0 var(--s-2)}.ig-sub{color:#b3acd4;font-size:var(--fs-sm);line-height:1.5;margin:0 0 var(--s-3)}.ig-perks{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center;list-style:none;margin:0 0 var(--s-4);padding:0}.ig-perks li{align-items:center;background:#b6a6ff24;border-radius:999px;border-radius:var(--r-pill,999px);color:#d8ceff;display:inline-flex;font-size:var(--fs-xs);font-weight:700;gap:6px;padding:4px var(--s-2)}.ig-primary{align-items:center;background:#b6a6ff;border:none;border-radius:var(--r-lg);color:#171331;cursor:pointer;display:flex;font:inherit;font-size:var(--fs-body);font-weight:800;gap:var(--s-2);justify-content:center;margin-bottom:var(--s-3);padding:14px;width:100%}.ig-primary--soft{background:#b6a6ff38;color:#f4f2fc;margin:var(--s-3) 0 0;padding:12px}.ig-card{background:#ffffff0d;border:1px solid #b6a6ff47;border-radius:var(--r-xl);padding:var(--s-4);text-align:left}.ig-card-head{align-items:center;color:#b3acd4;display:flex;font-size:var(--fs-xs);font-weight:700;gap:var(--s-2);justify-content:space-between;letter-spacing:.06em;margin-bottom:var(--s-3);text-transform:uppercase}.ig-card-head b{color:#f4f2fc}.ig-switch{align-items:center;background:none;border:1px solid #b6a6ff59;border-radius:999px;border-radius:var(--r-pill,999px);color:#d8ceff;cursor:pointer;display:inline-flex;font:inherit;font-size:var(--fs-xs);font-weight:700;gap:4px;letter-spacing:0;padding:4px 10px;text-transform:none}.ig-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s-3)}.ig-pick{background:none;border:1px solid #b6a6ff4d;border-radius:999px;border-radius:var(--r-pill,999px);color:#e7e3fa;cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:600;padding:6px 12px}.ig-pick.is-on{background:#b6a6ff;border-color:#b6a6ff;color:#171331}.ig-steps{flex-direction:column;list-style:none;margin:0;padding:0}.ig-step,.ig-steps{display:flex;gap:var(--s-3)}.ig-num,.ig-step{align-items:center}.ig-num{background:#b6a6ff;border-radius:50%;color:#171331;display:inline-flex;flex-shrink:0;font-size:var(--fs-xs);font-weight:800;height:26px;justify-content:center;width:26px}.ig-step-body{flex:1 1;min-width:0}.ig-step-text{color:#f4f2fc;font-size:var(--fs-body);font-weight:700;line-height:1.35;margin:0}.ig-step-hint{color:#a49dc6;font-size:var(--fs-xs);font-weight:600;line-height:1.4;margin:2px 0 0}.ig-glyph{align-items:center;background:#b6a6ff29;border-radius:var(--r-md);color:#c9b8ff;display:inline-flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.ig-after{color:#a49dc6;font-size:var(--fs-xs);font-weight:600;line-height:1.4;margin:var(--s-3) 0 0}.ig-secondary{align-items:center;background:#0000;border:1px solid #ffffff26;border-radius:var(--r-lg);color:#e7e3fa;display:flex;font:inherit;font-size:var(--fs-sm);font-weight:700;gap:var(--s-2);justify-content:center;margin-top:var(--s-4);padding:12px}.ig-secondary,.ig-skip{cursor:pointer;width:100%}.ig-skip{background:none;border:none;color:#a49dc6;font:inherit;font-size:var(--fs-sm);font-weight:600;margin-top:var(--s-2);padding:var(--s-2)}.ig-pointer{align-items:center;animation:ig-bob 1.2s ease-in-out infinite;background:#b6a6ff;border-radius:50%;color:#171331;display:inline-flex;height:40px;justify-content:center;pointer-events:none;position:fixed;width:40px;z-index:1}.ig-pointer--bottom{left:calc(50% - 20px)}.ig-pointer--bottom,.ig-pointer--bottom-right{bottom:10px;bottom:calc(var(--safe-area-bottom, 0px) + 10px)}.ig-pointer--bottom-right{right:14px}.ig-pointer--top-right{animation-name:ig-bob-up;right:14px;top:10px;top:calc(var(--safe-area-top, 0px) + 10px)}@keyframes ig-bob{50%{transform:translateY(6px)}}@keyframes ig-bob-up{50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.ig-pointer{animation:none}}#root,body,html{max-width:100vw;overflow-x:clip;width:100%}@media (display-mode:standalone){#root,body,html{max-width:100vw;width:100vw}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:Plus Jakarta Sans,sans-serif;min-height:100dvh}.loading-screen{align-items:center;display:flex;flex-direction:column;gap:16px;height:100dvh;justify-content:center}.loading-logo{font-size:48px}.auth-page{align-items:center;background:var(--bg-primary);display:flex;justify-content:center;min-height:100dvh;padding:24px 16px;padding:calc(var(--safe-area-top, 0px) + 24px) 16px calc(var(--safe-area-bottom, 0px) + 24px)}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--glass-edge),var(--glass-lift);margin:auto;max-width:420px;padding:var(--s-6);width:100%}.auth-role-row{display:flex;gap:var(--s-2);margin-bottom:var(--s-3)}.auth-role{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text-secondary);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:6px;padding:var(--s-3) var(--s-2);transition:border-color .14s ease,background-color .14s ease,color .14s ease}.auth-role:hover{border-color:var(--accent)}.auth-role[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}.auth-role-label{color:var(--text-primary);font-size:var(--fs-sm);font-weight:700}.auth-role-sub{color:var(--text-muted);font-size:var(--fs-xs);font-weight:600}.auth-google{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:var(--fs-body);font-weight:600;gap:var(--s-2);height:46px;justify-content:center;padding:0 var(--s-4);transition:filter .14s ease,transform 80ms ease;width:100%}.auth-google:hover:not(:disabled){filter:brightness(.97)}.auth-google:active:not(:disabled){transform:scale(.99)}.auth-google:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.35}.auth-divider{align-items:center;color:var(--text-muted);display:flex;font-size:var(--fs-xs);font-weight:700;gap:var(--s-3);letter-spacing:.1em;margin:var(--s-4) 0;text-transform:uppercase}.auth-divider:after,.auth-divider:before{background:var(--border);content:"";flex:1 1;height:1px}.auth-hint{color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;margin:0 0 var(--s-3);text-align:center}.auth-logo{color:var(--accent);font-size:24px;font-weight:800;margin-bottom:20px}.auth-card h2{font-size:28px;font-weight:700;margin-bottom:8px}.auth-sub{font-size:14px;margin-bottom:28px}.auth-card label,.auth-sub{color:var(--text-secondary)}.auth-card label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;margin-top:16px}.auth-card input,.auth-card select,.auth-card textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-family:inherit;font-size:15px;outline:none;padding:12px 16px;transition:border .2s;width:100%}.auth-card input:focus,.auth-card select:focus,.auth-card textarea:focus{border-color:var(--accent)}.optional{color:var(--text-muted);font-weight:400}.error-box{background:var(--danger-bg);border:1px solid var(--danger);border-radius:10px;color:var(--danger-fg);font-size:14px;margin-bottom:16px;padding:12px 16px}.auth-footer{color:var(--text-secondary);font-size:14px;margin-top:20px;text-align:center}.auth-footer a{color:var(--accent);font-weight:600;text-decoration:none}.btn-primary{background:var(--accent);border:none;border-radius:12px;color:var(--text-on-accent);cursor:pointer;font-size:16px;font-weight:700;margin-top:24px;padding:14px;transition:opacity .2s;width:100%}.btn-primary:disabled{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);cursor:not-allowed;opacity:1}.btn-primary:hover:not(:disabled){opacity:.9}.home-page{display:flex;flex-direction:column;min-height:auto}.home-header{align-items:center;background:#0000;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:14px 16px}.home-logo{color:var(--accent);flex-shrink:0;font-size:16px;font-weight:800}.home-header-right{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.home-avatar{background:var(--peer);border:none;border-radius:var(--r-pill);color:var(--text-on-accent);font-size:var(--fs-body);font-weight:800;padding:0}.home-avatar,.home-icon-btn{align-items:center;cursor:pointer;display:inline-flex;flex-shrink:0;height:40px;justify-content:center;position:relative;width:40px}.home-icon-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--accent)}.home-icon-badge{background:var(--danger-solid);border-radius:var(--r-pill);color:var(--ink-on-danger);font-size:10px;font-weight:800;height:18px;line-height:18px;min-width:18px;padding:0 4px;position:absolute;right:-4px;text-align:center;top:-4px}.home-avatar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-profile{background:var(--bg-input);font-size:12px;padding:7px 10px;transition:all .2s;white-space:nowrap}.btn-profile:hover{border-color:var(--accent);color:var(--accent)}.btn-logout{display:none}.home-body{flex:1 1;padding:16px 16px 96px}.users-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.user-card{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;padding:16px;transition:border-color .2s}.user-card-actions{display:flex;gap:8px}@media (max-width:599px){.user-card-actions{flex-basis:100%}.user-card-actions .btn-chat{flex:1 1;min-width:0}}.user-card:hover{border-color:var(--accent)}.user-avatar{align-items:center;background:var(--accent);border-radius:50%;color:var(--text-on-accent);display:flex;flex-shrink:0;font-size:20px;font-weight:700;height:52px;justify-content:center;overflow:hidden;position:relative;text-transform:uppercase;width:52px}.chat-avatar img,.user-avatar img{border-radius:50%;height:100%;object-fit:cover;width:100%}.user-info{flex:1 1;min-width:0}.user-info h3{font-size:15px;font-weight:700}.btn-chat{background:var(--accent);border:none;border-radius:10px;color:var(--text-on-accent);cursor:pointer;font-size:13px;font-weight:600;padding:10px 14px;transition:opacity .2s;white-space:nowrap}.btn-chat:hover{opacity:.9}.btn-random{background:linear-gradient(180deg,var(--accent-strong),var(--accent));background:linear-gradient(180deg,var(--accent-strong),var(--peer,var(--accent)));border:none;border-radius:var(--r-lg);box-shadow:inset 0 1px 0 #ffffff29;color:var(--text-on-accent);cursor:pointer;font-family:var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.01em;padding:15px;transition:filter .2s,transform .08s;width:100%}.btn-random:hover{filter:brightness(1.06)}.btn-random:active{transform:scale(.98)}.chat-page{background:var(--bg-primary);bottom:0;display:flex;flex-direction:column;left:0;margin:0 auto;max-width:860px;padding-top:0;padding-top:var(--safe-area-top,0);position:fixed;right:0;top:0;width:100%}.chat-header{align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-4)}.btn-back{background:#0000;border:none;color:var(--accent);cursor:pointer;display:grid;flex-shrink:0;font-size:15px;font-weight:600;height:40px;margin-left:calc(var(--s-2)*-1);place-items:center;width:40px}.chat-peer-info{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.chat-peer-text{min-width:0}.chat-peer-info h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-peer-info .chat-peer-sub{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.chat-avatar{align-items:center;background:var(--accent);border-radius:50%;color:var(--text-on-accent);display:flex;flex-shrink:0;font-weight:700;height:40px;justify-content:center;overflow:hidden;position:relative;width:40px}.chat-peer-info h3{font-size:16px;font-weight:700}.chat-peer-info span{color:var(--text-secondary);font-size:12px;font-weight:600}.call-controls{display:flex;flex-shrink:0;gap:10px}.btn-call{background:var(--accent);color:var(--text-on-accent)}.btn-call,.btn-mute{border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px}.btn-mute{background:var(--warning-solid);color:var(--ink-on-warning)}.btn-end{background:var(--danger-solid);border:none;border-radius:10px;color:var(--ink-on-danger);cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px}.chat-messages{flex:1 1;gap:12px;overflow-y:auto;padding:24px}.chat-messages,.message{display:flex;flex-direction:column}.message{gap:4px;max-width:70%}.message.mine{align-items:flex-end;align-self:flex-end}.message.theirs{align-items:flex-start;align-self:flex-start}.message.message--card{align-items:stretch;max-width:min(100%,520px);text-align:left}.message-sender{color:var(--text-secondary);font-size:11px;font-weight:600}.message p{border-radius:16px;font-size:15px;line-height:1.5;padding:12px 16px}.message.mine p{background:var(--accent);color:var(--text-on-accent)}.message.theirs p{background:var(--bg-card);border:1px solid var(--border)}.chat-input{background:var(--bg-card);border-top:1px solid var(--border);display:flex;gap:var(--s-2);padding:var(--s-3) var(--s-4)}.chat-input input{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:15px;min-width:0;outline:none;padding:12px 16px}.chat-input input:focus{border-color:var(--accent)}.chat-input button{background:var(--accent);border:none;border-radius:12px;color:var(--text-on-accent);cursor:pointer;font-size:15px;font-weight:600;padding:12px 20px}.incoming-call{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--bg-card);border:2px solid var(--accent);border-radius:16px;box-shadow:var(--glass-lift);left:50%;padding:20px 28px;position:fixed;text-align:center;top:20px;transform:translateX(-50%);z-index:999}.incoming-call p{font-size:16px;font-weight:600;margin-bottom:16px}.incoming-call-buttons{display:flex;gap:12px;justify-content:center}.btn-accept{background:var(--accent);color:var(--text-on-accent)}.btn-accept,.btn-reject{border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;padding:10px 24px}.btn-reject{background:var(--danger-solid);color:var(--ink-on-danger)}.tabs{display:flex;gap:12px;margin:24px 0 20px}.tab{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.tab.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent)}.online-badge{display:inline-block;font-size:11px;margin-top:4px}.online-badge.online{color:var(--success)}.online-badge.offline{color:var(--text-muted)}.online-badge.busy{color:var(--warning);font-weight:600}.success-box{background:var(--success-bg);border:1px solid var(--accent-ring);border-radius:10px;color:var(--success-fg);font-size:14px;margin-bottom:16px;padding:12px 16px}.btn-forgot{background:#0000;border:none;color:var(--accent);cursor:pointer;font-size:13px;padding:0}.btn-forgot:hover{text-decoration:underline}.hub-page{display:flex;flex-direction:column;min-height:100dvh}.hub-header{align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;gap:16px;padding:20px 32px}.hub-topic{color:var(--accent);font-size:24px;font-weight:800}.hub-tabs{display:flex;gap:8px;padding:20px 32px 0}.hub-tab{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:6px;padding:10px 20px;transition:all .2s}.hub-tab.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent)}.hub-body{flex:1 1;padding:24px 32px}.difficulty-toggle{display:flex;gap:12px;margin-bottom:20px}.diff-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.diff-btn.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent)}.questions-list{display:flex;flex-direction:column;gap:12px}.question-card{align-items:flex-start;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;display:flex;gap:14px;padding:16px 20px}.question-number{align-items:center;background:var(--accent);border-radius:50%;color:var(--text-on-accent);display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:28px;justify-content:center;width:28px}.question-card p{font-size:15px;line-height:1.5;margin:0}.vocab-list{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.vocab-card{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;cursor:pointer;display:flex;justify-content:center;min-height:120px;padding:24px;transition:border-color .2s}.vocab-card:hover{border-color:var(--accent)}.vocab-front{text-align:center}.vocab-front h3{color:var(--accent);font-size:20px;font-weight:700}.tap-hint{color:var(--text-muted);display:block;font-size:12px;font-weight:600;margin-top:8px}.vocab-back{text-align:center}.vocab-meaning{color:var(--text-primary);font-size:14px;margin-bottom:8px}.vocab-example{color:var(--accent);font-size:13px;font-style:italic}.idioms-list{display:flex;flex-direction:column;gap:16px}.idiom-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px}.idiom-card h3{color:var(--accent);font-size:18px;font-weight:700;margin-bottom:10px}.idiom-meaning{color:var(--text-secondary);font-size:14px;margin-bottom:6px}.idiom-example{color:var(--text-primary);font-size:14px;font-style:italic}.profile-page{width:100%}.profile-header{align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;gap:16px;padding:20px 32px}.profile-header h2{font-size:20px;font-weight:700}.profile-body{margin:0 auto;max-width:500px;padding:40px 32px;width:100%}@media (display-mode:standalone),(max-width:768px){.profile-body{margin:0!important;max-width:100%!important}}.profile-avatar-big{align-items:center;background:var(--accent);border-radius:50%;color:var(--text-on-accent);font-size:36px;font-weight:700;height:90px;margin:0 auto 24px;width:90px}.profile-avatar-big,.profile-stats{display:flex;justify-content:center}.profile-stats{gap:16px;margin-bottom:32px}.stat-card{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:4px;padding:16px 32px}.stat-number{color:var(--accent);font-size:24px;font-weight:700}.stat-label{color:var(--text-secondary);font-size:12px;font-weight:600}.profile-form{display:flex;flex-direction:column;gap:8px}.profile-form label{color:var(--text-secondary);font-size:13px;font-weight:600;margin-top:12px}.profile-form input,.profile-form select,.profile-form textarea{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-family:inherit;font-size:15px;outline:none;padding:12px 16px;width:100%}.profile-form input:focus,.profile-form select:focus,.profile-form textarea:focus{border-color:var(--accent)}.btn-profile{border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background .2s}.btn-profile,.btn-profile:hover{background:var(--border)}.fullscreen-call{-webkit-overflow-scrolling:touch;align-items:center;background:var(--bg-primary);bottom:0;display:flex;flex-direction:column;gap:16px;justify-content:flex-start;left:0;overflow-y:auto;padding-bottom:max(40px,20px);padding-bottom:max(40px,var(--safe-area-bottom,20px));padding-top:max(10vh,20px);padding-top:max(10vh,var(--safe-area-top,20px));position:fixed;right:0;top:0;z-index:1000}.call-avatar-big{align-items:center;background:var(--accent);border:4px solid var(--accent);border-radius:50%;box-shadow:var(--e-2);color:var(--text-on-accent);display:flex;flex-shrink:0;font-size:48px;font-weight:700;height:120px;justify-content:center;overflow:hidden;position:relative;width:120px}.call-avatar-big img{height:100%;object-fit:cover;width:100%}@media (max-height:700px){.fullscreen-call{gap:10px;padding-top:max(12px,12px);padding-top:max(12px,var(--safe-area-top,12px))}.call-avatar-big{border-width:3px;font-size:34px;height:84px;width:84px}.call-peer-name{font-size:22px;margin-top:4px}.call-status-text{font-size:15px;margin-bottom:12px}}.call-peer-name{flex-shrink:0;font-size:28px;font-weight:800;margin-top:8px}.call-status-text{align-items:center;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:16px;gap:8px;justify-content:center;margin-bottom:32px}.call-live-dot{background:var(--accent);border-radius:50%;flex-shrink:0;height:9px;width:9px}.call-peer-muted{align-items:center;background:var(--bg-secondary);border-radius:var(--r-pill);color:var(--text-muted);display:inline-flex;flex-shrink:0;font-size:12px;font-weight:600;gap:5px;padding:3px 9px}.fullscreen-call-buttons{flex-wrap:wrap;gap:16px;margin:0 auto;max-width:282px}.call-btn-big,.fullscreen-call-buttons{align-items:center;display:flex;justify-content:center}.call-btn-big{--act:var(--text-primary);background:rgb(113 113 122/var(--act-fill));background:rgb(var(--act-rgb,113 113 122)/var(--act-fill));border:1.5px solid rgb(var(--act-rgb,113 113 122)/var(--act-ring));border-radius:50%;color:var(--act);cursor:pointer;flex-direction:column;font-size:24px;gap:3px;height:70px;transition:transform 80ms ease,filter .14s ease;width:70px}.call-btn-big span{color:var(--text-primary);font-size:var(--fs-xs);font-weight:700;letter-spacing:-.01em}.call-btn-big.act-vocab{--act:var(--act-vocab);--act-rgb:var(--act-vocab-rgb)}.call-btn-big.act-quiz{--act:var(--act-quiz);--act-rgb:var(--act-quiz-rgb)}.call-btn-big.act-picture{--act:var(--act-picture);--act-rgb:var(--act-picture-rgb)}.call-btn-big.act-video{--act:var(--act-video);--act-rgb:var(--act-video-rgb)}.call-btn-big.act-taboo{--act:var(--act-taboo);--act-rgb:var(--act-taboo-rgb)}.call-btn-big.act-debate{--act:var(--act-debate);--act-rgb:var(--act-debate-rgb)}.call-btn-big.act-guess{--act:var(--act-guess);--act-rgb:var(--act-guess-rgb)}.call-btn-big.active-mute{--act:var(--ink-on-warning);background:var(--warning-solid);border-color:#0000}.call-btn-big.active-mute span{color:var(--ink-on-warning)}.call-btn-big.end{--act:#fff;background:var(--danger-solid);border-color:#0000;box-shadow:inset 0 1px 0 #ffffff47,0 10px 24px -14px var(--danger-solid);font-size:28px;height:80px;width:80px}.call-btn-big.end span{color:var(--ink-on-danger)}.call-btn-big:hover{filter:brightness(1.08)}.call-btn-big:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.call-btn-big{transition:none}}.level-filter{-ms-overflow-style:none;display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.level-filter::-webkit-scrollbar{display:none}.level-filter .level-btn{flex-shrink:0;white-space:nowrap}.level-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;padding:6px 14px;transition:all .2s}.level-btn.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent)}.daily-panel{background:var(--bg-primary);border-left:1px solid var(--border);display:flex;flex-direction:column;height:100dvh;max-width:420px;overflow:hidden;position:fixed;right:0;top:0;width:100%;z-index:1001}.daily-panel-header{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px;padding:calc(16px + var(--safe-area-top, 0px)) 20px 16px}.daily-panel-header h3{color:var(--accent);font-size:16px;font-weight:700}.daily-close{background:#0000;border:none;color:var(--text-secondary);cursor:pointer;font-size:18px}.daily-panel-tabs{background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;gap:6px;padding:12px 16px}.call-roadmap{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--bg-primary);display:flex;inset:0;justify-content:center;overflow-y:auto;padding:20px 16px;padding:calc(20px + var(--safe-area-top, 0px)) 16px calc(20px + var(--safe-area-bottom, 0px));position:fixed;z-index:1002}.call-roadmap-card{backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);background:#1e1940c7;border:1px solid #ffffff14;border-radius:22px;box-shadow:0 24px 60px #00000080,inset 0 1px 0 #ffffff0f;max-height:100%;max-width:420px;overflow-y:auto;padding:26px 20px 22px;position:relative;text-align:center;width:100%}.call-roadmap-skip{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;color:#c8c2e4;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;position:absolute;right:12px;top:12px;transition:background .15s,color .15s}.call-roadmap-skip:hover{background:#ffffff1f;color:#f4f2fc}.call-roadmap-label{color:#b6a6ff;font-size:12px;font-weight:700;letter-spacing:.04em;margin:0 0 6px;text-transform:uppercase}.call-roadmap-title{color:#f4f2fc;font-size:21px;font-weight:800;line-height:1.25;margin:0 0 14px}.call-roadmap-topic-pill{background:#b6a6ff29;border:1px solid #b6a6ff66;border-radius:999px;color:#ded4ff;display:inline-block;font-size:13px;margin:0 0 18px;max-width:100%;padding:7px 16px}.call-roadmap-topic-pill b{color:#f4f2fc}.call-roadmap-steps{display:flex;flex-direction:column;gap:12px;text-align:left}.call-roadmap-step{align-items:flex-start;background:hsla(0,0%,100%,.035);border:1px solid #ffffff12;border-radius:16px;display:flex;gap:13px;padding:14px}.call-roadmap-step-num{align-items:center;background:#b6a6ff;border-radius:50%;color:#171331;display:flex;flex-shrink:0;font-size:14px;font-weight:800;height:30px;justify-content:center;width:30px}.call-roadmap-step-body{flex:1 1;min-width:0}.call-roadmap-step-label{color:#f4f2fc;font-size:14.5px;font-weight:700;margin:2px 0 4px}.call-roadmap-step-text{color:#c8c2e4;font-size:13px;font-weight:600;line-height:1.5;margin:0}.call-roadmap-questions{display:flex;flex-direction:column;gap:6px;margin-top:10px}.call-roadmap-question{background:#b6a6ff24;border-left:2px solid #b6a6ff;border-radius:8px;color:#ded4ff;font-size:12.5px;line-height:1.4;margin:0;padding:7px 10px}.call-roadmap-start{background:#b6a6ff;border:none;border-radius:14px;color:#171331;cursor:pointer;font-size:16px;font-weight:700;margin-top:20px;padding:14px;width:100%}.call-roadmap-more{border:none;color:#b6a6ff;font-size:13px;margin-top:10px;padding:10px;text-decoration:underline;width:100%}.call-roadmap-more,.dp-tab{background:#0000;cursor:pointer;font-weight:600}.dp-tab{border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:12px;padding:8px 14px;transition:all .2s}.dp-tab.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent)}.daily-panel-body{flex:1 1;overflow-y:auto;padding:16px}.chat-topic-btn{background:var(--accent-soft);border:1px solid var(--accent-ring);border-radius:var(--r-md);color:var(--accent);cursor:pointer;display:grid;flex-shrink:0;place-items:center;width:46px}.splash-screen{background:var(--bg-primary);height:100dvh;justify-content:center;padding:40px}.splash-content,.splash-screen{align-items:center;display:flex;flex-direction:column;position:relative}.splash-content{gap:16px;margin-bottom:60px}.splash-content:before{background:radial-gradient(circle,var(--accent-soft),#0000 62%);border-radius:50%;content:"";filter:blur(6px);height:260px;left:50%;pointer-events:none;position:absolute;top:40%;transform:translate(-50%,-50%);width:260px}.splash-logo{animation:pulse 1.5s infinite;font-size:72px}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.splash-title{-webkit-text-fill-color:#0000;background:var(--accent);background-clip:text;-webkit-background-clip:text;font-size:36px;font-weight:800}.splash-quote{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--glass-fill);border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-edge),var(--glass-lift);max-width:340px;padding:24px;position:relative;text-align:center}.splash-motto{text-wrap:pretty;color:var(--text-primary);font-family:var(--font-display);font-size:19px;font-style:italic;font-weight:500;line-height:1.45;margin-bottom:12px}.splash-by{color:var(--accent);letter-spacing:.06em}.splash-by,.splash-credit{font-size:13px;font-weight:600;text-transform:uppercase}.splash-credit{bottom:40px;color:var(--text-muted);letter-spacing:.08em;position:absolute}.bottom-nav{align-items:stretch;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);background:var(--nav-fill);border:1px solid var(--nav-border);border-radius:var(--r-xl);bottom:14px;bottom:calc(14px + var(--safe-area-bottom, 0px));box-shadow:var(--glass-edge),var(--nav-lift);display:flex;justify-content:space-around;left:12px;min-height:64px;overflow:hidden;position:fixed;right:12px;z-index:var(--z-nav)}.bottom-nav-btn{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:3px;height:100%;justify-content:center;min-width:0;padding:8px 0;position:relative}.bottom-nav-btn.active:before{background:radial-gradient(circle,var(--accent-soft),#0000 70%);background:radial-gradient(circle,var(--nav-pool,var(--accent-soft)),#0000 70%);border-radius:var(--r-pill);content:"";height:26px;pointer-events:none;position:absolute;top:6px;width:34px}.bottom-nav-icon{font-size:22px}.live-dot{background:var(--accent);border:2px solid var(--bg-card);border-radius:50%;height:12px;position:absolute;right:-3px;top:-3px;width:12px}@media (prefers-reduced-motion:no-preference){.live-dot{animation:nav-badge-pulse 2s ease-in-out infinite}}.nav-badge-live{box-shadow:0 0 0 0 var(--accent-ring)}@media (prefers-reduced-motion:no-preference){.nav-badge-live{animation:nav-badge-pulse 2s ease-in-out infinite}}@keyframes nav-badge-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-ring)}50%{box-shadow:0 0 0 5px rgb(var(--accent-rgb)/0)}}.bottom-nav-label{color:var(--text-secondary);font-size:clamp(8px,2.2vw,10px);font-weight:700}.bottom-nav-btn.active .bottom-nav-label{color:var(--accent);font-weight:700}.bottom-nav-btn.active .bottom-nav-icon{transform:scale(1.15)}.dt-overlay{align-items:flex-end;animation:dtFadeIn .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}@keyframes dtFadeIn{0%{opacity:0}to{opacity:1}}@keyframes dtSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.dt-modal{animation:dtSlideUp .35s cubic-bezier(.32,.72,0,1);background:var(--bg-primary);border-radius:0;display:flex;flex-direction:column;height:100dvh;max-width:480px;overflow:hidden;width:100%}.dt-header{flex-shrink:0;justify-content:space-between;padding:12px 20px;padding:calc(12px + var(--safe-area-top, 0px)) 20px 12px}.dt-header,.dt-header-info{align-items:center;display:flex}.dt-header-info{flex:1 1;gap:10px;min-width:0}.dt-badge{background:var(--accent-soft);border-radius:20px;color:var(--accent);font-size:13px;font-weight:700;padding:4px 10px;white-space:nowrap}.dt-title{color:var(--text-primary);font-size:22px;font-weight:800;line-height:1.2;margin:0}.dt-close{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:background .2s;width:36px}.dt-close:hover{background:var(--border)}.dt-tabs{border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;gap:8px;padding:0 20px 16px}.dt-tab,.dt-tabs{display:flex;justify-content:center}.dt-tab{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 4px #0000001a;color:var(--text-secondary);cursor:pointer;flex-basis:calc(33.333% - 8px);flex-grow:1;flex-shrink:1;font-size:15px;font-weight:700;gap:6px;min-width:90px;padding:13px 10px;transition:all .2s cubic-bezier(.4,0,.2,1)}.dt-tab:hover{border-color:var(--accent);color:var(--text-primary);transform:translateY(-2px)}.dt-tab.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent);transform:translateY(-2px)}.dt-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:16px 20px 32px}.dt-section{display:flex;flex-direction:column;gap:10px}.dt-vocab-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;padding:14px 16px;transition:all .2s}.dt-vocab-card:active{transform:scale(.98)}.dt-vocab-card.expanded{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.dt-vocab-row{align-items:center;color:var(--text-secondary);display:flex;justify-content:space-between}.dt-vocab-word{color:var(--text-primary);font-size:19px;font-weight:700}.dt-vocab-meaning{color:var(--text-secondary);font-size:15px;font-weight:600;line-height:1.4;margin:6px 0 0}.dt-vocab-example{animation:dtFadeIn .2s ease;background:var(--accent-soft);border-radius:10px;color:var(--accent);font-size:15px;font-style:italic;line-height:1.5;margin:8px 0 0;padding:10px 12px}.dt-idiom-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px}.dt-idiom-phrase{color:var(--accent);font-size:19px;font-weight:700;margin:0 0 6px}.dt-idiom-meaning{color:var(--text-primary);font-size:15px;margin:0 0 8px}.dt-idiom-example{color:var(--text-secondary);font-size:15px;font-style:italic;font-weight:600;margin:0}.dt-diff-toggle{display:flex;gap:8px;margin-bottom:12px}.dt-diff-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:15px;font-weight:700;padding:12px;transition:all .2s}.dt-diff-btn.active{background:var(--accent);border-color:#0000;color:var(--text-on-accent)}.dt-questions-list{display:flex;flex-direction:column;gap:10px}.dt-question-card{align-items:flex-start;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;display:flex;gap:12px;padding:14px 16px}.dt-q-num{align-items:center;background:var(--accent);border-radius:50%;color:var(--text-on-accent);display:flex;flex-shrink:0;font-size:15px;font-weight:800;height:30px;justify-content:center;width:30px}.dt-q-text{color:var(--text-primary);font-size:16px;line-height:1.5;margin:0;padding-top:3px}.dt-section--video{display:block;height:100%}.dt-video-fit{display:flex;flex-direction:column;gap:10px;max-height:100%;min-height:0}.dt-video-frame{aspect-ratio:4/3;border:1px solid var(--border);border-radius:16px;flex:0 1 auto;height:auto;min-height:120px;overflow:hidden;position:relative}.dt-video-frame,.dt-video-frame video{background:var(--bg-secondary);width:100%}.dt-video-frame video{display:block;height:100%;object-fit:contain}.dt-video-dead{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:15px;font-weight:600;gap:8px;inset:0;justify-content:center;position:absolute}.dt-video-replay{background:#0000008c;border:none;border-radius:50%;bottom:10px;color:#fff;cursor:pointer;display:grid;height:40px;place-items:center;position:absolute;right:10px;width:40px}.dt-video-nav{align-items:center;display:flex;flex-shrink:0;gap:12px;justify-content:space-between}.dt-video-arrow{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;color:var(--text-primary);cursor:pointer;display:grid;height:46px;place-items:center;transition:border-color .2s,background .2s;width:52px}.dt-video-arrow:hover{border-color:var(--accent)}.dt-video-arrow:active{transform:scale(.96)}.dt-video-count{font-feature-settings:"tnum";color:var(--text-secondary);font-size:17px;font-variant-numeric:tabular-nums;font-weight:800}.topic-intro-overlay{align-items:center;animation:dtFadeIn .4s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:var(--overlay);display:flex;height:100vh;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100vw;z-index:9999}.topic-intro-modal{animation:modalScaleIn .5s cubic-bezier(.34,1.56,.64,1);background:var(--bg-card);border:1px solid var(--accent-ring);border-radius:24px;box-shadow:0 20px 40px #0006,inset 0 0 0 1px #ffffff0d;max-width:360px;padding:32px 24px;position:relative;text-align:center;width:100%;z-index:10000}.topic-intro-label{color:var(--accent);font-size:13px;font-weight:700;letter-spacing:1.5px;margin:0 0 12px;text-transform:uppercase}.topic-intro-title{color:var(--text-primary);font-size:32px;font-weight:800;line-height:1.2;margin:0 0 16px}.topic-intro-desc{color:var(--text-secondary);font-size:15px;font-weight:600;line-height:1.5;margin:0 0 28px}.topic-intro-actions{display:flex;flex-direction:column;gap:12px}.topic-intro-btn-primary{align-items:center;background:var(--accent);border:none;border-radius:16px;color:var(--text-on-accent);cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:10px;justify-content:center;padding:16px;transition:all .2s}.topic-intro-btn-primary:active{transform:scale(.96)}.topic-intro-btn-secondary{background:#0000;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:600;padding:12px;transition:color .2s}.topic-intro-btn-secondary:active{color:#ccc}.dt-quiz-container{display:flex;flex-direction:column;height:100%}.dt-quiz-header{align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text-secondary);display:flex;font-size:14px;font-weight:700;justify-content:space-between;margin-bottom:24px;padding:12px 16px}.dt-quiz-q{color:var(--text-primary);font-size:18px;font-weight:800;line-height:1.4;margin:0 0 24px;text-align:center}.dt-quiz-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.dt-quiz-opt{align-items:center;background:var(--bg-card);border:2px solid var(--border);border-radius:16px;color:var(--text-primary);cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:12px;padding:16px;text-align:left;transition:all .2s cubic-bezier(.4,0,.2,1)}.dt-quiz-opt:hover:not(.disabled){background:var(--accent-soft);border-color:var(--accent);transform:translateY(-2px)}.dt-quiz-opt:active:not(.disabled){transform:translateY(0)}.dt-quiz-opt.correct{background:var(--success-bg);border-color:var(--success);color:var(--success-fg)}.dt-quiz-opt.wrong{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-fg)}.dt-quiz-opt.disabled{cursor:not-allowed;opacity:.7}.dt-quiz-next{background:var(--accent);border:none;border-radius:16px;color:var(--text-on-accent);cursor:pointer;font-size:16px;font-weight:800;margin-top:auto;padding:16px;transition:all .2s;width:100%}.dt-quiz-next:active{transform:scale(.98)}.dt-quiz-result{padding:40px 20px;text-align:center}.dt-quiz-result h3{color:var(--text-primary);font-size:24px;margin-bottom:16px}.dt-score{color:var(--accent);font-size:48px;font-weight:800;margin-bottom:24px}@media (max-width:480px){.auth-card{padding:var(--s-5)}.auth-card h2{font-size:24px;margin-bottom:4px}.auth-sub{margin-bottom:16px}.btn-primary{margin-top:16px}}@media (max-height:760px),(max-width:480px){.auth-page{padding:calc(var(--safe-area-top, 0px) + var(--s-3)) var(--s-3) calc(var(--safe-area-bottom, 0px) + var(--s-3))}.auth-card{padding:var(--s-4)}.auth-card .auth-logo{margin-bottom:var(--s-2)!important}.auth-card .auth-logo img,.auth-card .auth-logo svg{height:auto;max-width:110px}.auth-card h2{margin-bottom:2px!important}.auth-sub{font-size:var(--fs-sm);margin-bottom:var(--s-3)!important}.auth-role-row{margin-bottom:var(--s-2)}.auth-role{flex-direction:row;gap:var(--s-2);justify-content:center;padding:var(--s-2)}.auth-role-sub{display:none}.auth-hint{margin-bottom:var(--s-2)}.auth-google{height:42px}.auth-divider{margin:var(--s-3) 0}.auth-card label{margin-bottom:4px;margin-top:var(--s-2)}.auth-card input,.auth-card select,.auth-card textarea{padding:10px 14px}.auth-card .btn-primary{margin-bottom:var(--s-2);margin-top:var(--s-3);padding:12px}.auth-footer{margin-top:var(--s-2)}}.puzzle-hint{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:14px;padding:12px 16px;text-align:center}.puzzle-hint-label{color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:1.2px;margin:0 0 4px;text-transform:uppercase}.puzzle-hint-text{color:var(--text-primary);font-size:14px;font-weight:600;margin:0}.puzzle-hint-az{color:var(--accent);font-size:13px;font-weight:700;margin:6px 0 0}.puzzle-hint-locked{color:var(--text-muted);font-size:11px;font-weight:600;margin:6px 0 0}.puzzle-grid{display:flex;flex-direction:column;gap:6px;margin:0 auto 16px;width:min(320px,100%)}.puzzle-row{gap:6px}.puzzle-row,.puzzle-tile{display:flex;justify-content:center}.puzzle-tile{align-items:center;background:var(--bg-input);border:2px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:24px;font-weight:800;height:56px;text-transform:uppercase;width:56px}.puzzle-tile.is-correct,.puzzle-tile.is-filled{border-color:var(--accent)}.puzzle-tile.is-correct{background:var(--accent);color:var(--text-on-accent)}.puzzle-tile.is-present{background:var(--ai-fill);border-color:var(--ai-fill);color:var(--text-on-ai)}.puzzle-tile.is-absent{background:var(--bg-secondary);border-color:var(--bg-secondary);color:var(--text-muted)}.puzzle-keyboard{display:flex;flex-direction:column;gap:6px}.puzzle-key-row{display:flex;gap:4px;justify-content:center}.puzzle-key{background:var(--bg-card);border:none;border:1px solid var(--border);border-radius:8px;color:var(--text-primary);cursor:pointer;flex:1 1;font-size:14px;font-weight:700;height:46px;max-width:40px;min-width:30px;padding:0 6px}.puzzle-key--wide{font-size:16px;max-width:58px}.puzzle-key.is-correct{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.puzzle-key.is-present{background:var(--ai-fill);border-color:var(--ai-fill);color:var(--text-on-ai)}.puzzle-key.is-absent{background:var(--bg-secondary);color:var(--text-muted)}.puzzle-result{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:14px;padding:16px;text-align:center}.puzzle-result.is-win{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-ring)}.puzzle-result-title{color:var(--text-primary);font-size:15px;font-weight:800;margin:0 0 4px}.puzzle-result-sub{color:var(--text-secondary);font-size:13px;font-weight:600;margin:0}@media (prefers-reduced-motion:no-preference){.puzzle-tile.is-absent,.puzzle-tile.is-correct,.puzzle-tile.is-present{animation:puzzleFlip .42s ease both}.puzzle-shake{animation:puzzleShake .4s ease}}@keyframes puzzleFlip{0%{opacity:.4;transform:rotateX(90deg)}to{opacity:1;transform:rotateX(0deg)}}@keyframes puzzleShake{0%,to{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}.imgstage-skeleton{background:linear-gradient(100deg,var(--bg-secondary) 30%,var(--border) 50%,var(--bg-secondary) 70%);background-size:200% 100%}@media (prefers-reduced-motion:no-preference){.imgstage-skeleton{animation:imgstageShimmer 1.4s ease-in-out infinite}}@keyframes imgstageShimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.taboo-confetti-layer{border-radius:inherit;inset:0;overflow:hidden;pointer-events:none;position:absolute}.taboo-confetti-piece{border-radius:2px;height:12px;opacity:0;position:absolute;top:34%;width:8px}.taboo-dots span{background:var(--text-muted);border-radius:50%;display:inline-block;height:6px;margin:0 3px;opacity:.35;width:6px}@media (prefers-reduced-motion:no-preference){.debate-card,.qstage-card,.taboo-card{animation:tabooCardIn .42s cubic-bezier(.34,1.32,.5,1) both}.taboo-confetti-piece{animation:tabooConfettiBurst 1.1s ease-out forwards}.taboo-orb{animation:tabooPulse 2.4s ease-in-out infinite}.taboo-toast{animation:tabooToastIn .26s cubic-bezier(.34,1.56,.64,1) both}.taboo-score-pop{animation:tabooScorePop .46s cubic-bezier(.34,1.56,.64,1)}.taboo-dots span{animation:tabooDots 1.3s ease-in-out infinite}}@keyframes tabooCardIn{0%{opacity:0;transform:perspective(900px) rotateY(-70deg) scale(.92)}to{opacity:1;transform:perspective(900px) rotateY(0deg) scale(1)}}@keyframes tabooConfettiBurst{0%{opacity:1;transform:translateZ(0) scale(.4) rotate(0deg)}70%{opacity:1}to{opacity:0;transform:translate3d(var(--tx),var(--ty),0) scale(1) rotate(var(--rot))}}@keyframes tabooPulse{0%,to{box-shadow:0 0 0 0 rgb(var(--accent-rgb)/.3);transform:scale(1)}50%{box-shadow:0 0 0 18px rgb(var(--accent-rgb)/0);transform:scale(1.05)}}@keyframes tabooToastIn{0%{opacity:0;transform:translateY(-10px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tabooScorePop{0%{transform:scale(1)}45%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes tabooDots{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:no-preference){.guess-score-pop{animation:tabooScorePop .46s cubic-bezier(.34,1.56,.64,1)}.guess-reveal{animation:guessRevealIn .34s cubic-bezier(.34,1.32,.5,1) both}.guess-player.is-winner{animation:tabooScorePop .48s cubic-bezier(.34,1.56,.64,1) .28s both}.guess-timer.is-urgent{animation:guessTimerPulse 1s ease-in-out infinite}}@keyframes guessRevealIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes guessTimerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.09)}}.sc-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.sc-card{align-items:stretch;aspect-ratio:1/1;background:var(--accent-soft);border:none;border:1px solid var(--accent-ring);border-radius:16px;color:var(--accent);cursor:pointer;display:flex;font-family:inherit;justify-content:stretch;padding:0;transition:transform .15s ease,background .2s ease,border-color .2s ease;white-space:normal}.sc-card:active{transform:scale(.96)}.sc-card.seen{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted)}.sc-face{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:2px;justify-content:center}.sc-num{font-size:20px;font-weight:800;line-height:1}.sc-mark{font-size:13px;opacity:.75}.sc-card.open{aspect-ratio:auto;background:var(--bg-card);border:2px solid var(--accent);color:var(--text-primary);grid-column:1/-1;min-height:118px}.sc-body{align-items:flex-start;flex:1 1;flex-direction:column;gap:8px;padding:16px 18px;text-align:left}.sc-body,.sc-body-num{display:flex;justify-content:center}.sc-body-num{align-items:center;background:var(--accent);border-radius:50%;color:var(--text-on-accent);flex-shrink:0;font-size:12px;font-weight:800;height:26px;width:26px}.sc-question{color:var(--text-primary);font-size:16px;font-weight:600;line-height:1.45}.sc-hint{color:var(--text-muted);font-size:11px;font-weight:600}@media (min-width:520px){.sc-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.sc-question{font-size:17px}}.idiom-meaning--l1,.vocab-meaning--l1{color:var(--text-secondary);font-size:13px;font-weight:600}.pd{background:var(--bg-primary);display:flex;flex-direction:column;inset:0;position:fixed;z-index:9999}.pd-header{border-bottom:1px solid var(--border);justify-content:space-between;padding:16px 20px;padding-top:calc(16px + var(--safe-area-top, 0px))}.pd-header,.pd-heading{align-items:center;display:flex;gap:12px}.pd-heading{min-width:0}.pd-badge{display:none}.pd-kicker{color:var(--text-secondary);font-size:11px;font-weight:600;margin:0;text-transform:uppercase}.pd-title{color:var(--text-primary);font-size:16px;font-weight:700;margin:0}.pd-close{background:#0000;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.pd-message{align-items:center;color:var(--text-secondary);justify-content:center;padding:20px;text-align:center}.pd-body,.pd-message{display:flex;flex:1 1}.pd-body{flex-direction:column;min-height:0}.pd-stage{align-items:center;background:var(--bg-secondary);display:flex;flex:1 1;justify-content:center;min-height:0;overflow:hidden;position:relative}.pd-stage img{height:100%;object-fit:contain;width:100%}.pd-arrow{background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;height:40px;position:absolute;top:50%;transform:translateY(-50%);width:40px}.pd-arrow--prev{left:12px}.pd-arrow--next{right:12px}.pd-dots{display:flex;gap:6px;justify-content:center;padding:12px 0}.pd-dots span{background:var(--border);border-radius:50%;height:6px;width:6px}.pd-dots span.is-on{background:var(--accent)}.pd-nav{display:none}.pd-nav .dt-video-arrow:disabled{cursor:default;opacity:.4}.pd-side{border-top:1px solid var(--border);flex-shrink:0;max-height:45vh;overflow-y:auto;padding-bottom:16px;padding-bottom:calc(16px + var(--safe-area-bottom, 0px))}.pd-words{padding:12px 20px 8px}@media (min-width:900px) and (min-aspect-ratio:5/4){.dt-modal{max-width:min(1280px,100vw)}.dt-header{padding:16px 28px 14px}.dt-title{font-size:28px}.dt-tabs{flex-wrap:nowrap;padding:0 28px 14px}.dt-tab{flex:1 1;font-size:16px;min-width:0;padding:11px 10px}.dt-content{padding:20px 28px}.dt-section--video{grid-column-gap:28px;grid-row-gap:16px;column-gap:28px;display:grid;grid-template-areas:"clip words" "clip qs" "nav  foot";grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);grid-template-rows:auto minmax(0,1fr) auto;height:100%;row-gap:16px}.dt-section--video .dt-video-fit{display:contents}.dt-section--video .dt-video-frame{aspect-ratio:auto!important;grid-area:clip;height:100%!important;max-height:none!important;min-height:0}.dt-section--video .dt-video-nav{grid-area:nav}.dt-section--video .dt-video-words{font-size:20px;grid-area:words}.dt-section--video .dt-video-words p{font-size:13px!important}.dt-section--video .dt-questions-list{align-content:start;grid-area:qs;min-height:0;overflow-y:auto}.dt-section--video .dt-q-text{font-size:19px}.dt-section--video .dt-q-num{font-size:16px;height:34px;width:34px}.dt-section--video .dt-video-footer{align-self:center;grid-area:foot}.dt-section--video .dt-video-footer>*{margin-top:0!important}.dt-section--list{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.dt-section--narrow{margin:0 auto;max-width:760px;width:100%}.pd{align-items:center}.pd-body,.pd-header{width:min(1280px,100%)}.pd-header{border-bottom:none;padding:16px 28px 14px}.pd-badge{display:inline-block}.pd-title{font-size:28px;font-weight:800}.pd-body{grid-column-gap:28px;grid-row-gap:16px;column-gap:28px;display:grid;grid-template-areas:"stage side" "nav side";grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);grid-template-rows:minmax(0,1fr) auto;padding:4px 28px 24px;row-gap:16px}.pd-stage{border:1px solid var(--border);border-radius:20px;grid-area:stage}.pd-arrow,.pd-dots{display:none}.pd-nav{display:flex;grid-area:nav}.pd-side{border-top:none;grid-area:side;max-height:none;min-height:0;padding-bottom:0}.pd-words{font-size:20px;padding:0 0 12px}.pd-words p{font-size:13px!important}.pd-side>div:last-child{zoom:1.35;padding:0!important}}.stage-card{border:1px solid var(--stage-edge);box-shadow:var(--glass-lift);color:var(--stage-ink);isolation:isolate;overflow:hidden;position:relative}.stage-card .taboo-dots span{background:var(--stage-ink)}.stage-card:before{animation:stage-drift 18s ease-in-out 0s infinite alternate;animation:stage-drift 18s ease-in-out var(--hero-drift-delay,0s) infinite alternate;background:linear-gradient(115deg,var(--hero-1),var(--hero-2),var(--hero-3),var(--hero-4),var(--hero-5),var(--hero-1));background-size:400% 400%;content:"";inset:0;position:absolute;z-index:-2}.stage-card:after{animation:stage-light 23s ease-in-out 0s infinite alternate;animation:stage-light 23s ease-in-out var(--hero-light-delay,0s) infinite alternate;aspect-ratio:1;background:radial-gradient(circle,#ffffff3d,#fff0 65%);border-radius:50%;content:"";left:-20%;pointer-events:none;position:absolute;top:-40%;width:80%;z-index:-1}@keyframes stage-drift{0%{background-position:0 30%}50%{background-position:60% 70%}to{background-position:100% 40%}}@keyframes stage-light{0%{transform:translate(0)}50%{transform:translate(70%,40%)}to{transform:translate(110%,5%)}}@media (prefers-reduced-motion:reduce){.stage-card:after,.stage-card:before{animation:none}}.partners-invite{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--glass-lift);margin:0 0 var(--s-4);padding:var(--s-4)}.partners-invite-title{color:var(--text-primary);font-size:var(--fs-body);font-weight:800;margin:0 0 var(--s-1)}.partners-invite-text{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:600;margin:0 0 var(--s-3)}.partners-invite-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.partners-invite-actions .ui-btn{gap:var(--s-2);text-decoration:none}.ts-activity{grid-gap:var(--s-2);display:grid;gap:var(--s-2)}.ts-activity-now{color:var(--text-primary);font-size:var(--fs-body);font-weight:800;margin:0}.ts-activity-sub{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:600;margin:0}.ts-activity-list{grid-gap:4px;display:grid;gap:4px;list-style:none;margin:var(--s-2) 0 0;padding:0}.ts-activity-list li{background:var(--bg-secondary);border-radius:var(--r-md);color:var(--text-secondary);display:flex;font-size:var(--fs-sm);font-weight:600;gap:var(--s-3);justify-content:space-between;padding:var(--s-2) var(--s-3)}.ts-activity-list li b{font-feature-settings:"tnum";color:var(--accent);font-variant-numeric:tabular-nums;font-weight:800}.ts-activity-list li.is-off b{color:var(--text-muted)}.update-banner{align-items:center;background:var(--bg-card);border:1px solid var(--accent-ring);border-radius:var(--r-pill);bottom:92px;bottom:calc(92px + var(--safe-area-bottom, 0px));box-shadow:var(--glass-lift);box-sizing:border-box;color:var(--accent);display:flex;gap:var(--s-2);left:50%;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);position:fixed;transform:translateX(-50%);width:min(560px,calc(100% - 32px));z-index:var(--z-toast)}.update-banner-text{color:var(--text-primary);flex:1 1;font-size:var(--fs-sm);font-weight:700;min-width:0}.update-banner-btn{background:var(--accent);border:0;border-radius:var(--r-pill);color:var(--text-on-accent);cursor:pointer;flex-shrink:0;font:inherit;font-size:var(--fs-sm);font-weight:800;min-height:34px;padding:0 var(--s-3)}.update-banner-later{background:#0000;border:0;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font:inherit;font-size:var(--fs-xs);font-weight:700}:root,[data-theme=light]{--bg-primary:#f5f4f9;--bg-secondary:#eae8f2;--bg-card:#fff;--bg-input:#fbfafd;--text-primary:#191727;--text-secondary:#48445e;--text-muted:#605c78;--border:#18143026;--shadow:#1814301a;--overlay:#17133173;--success:#403a7e;--danger:#a5352f;--warning:#6f5ad0;--success-bg:#ebe8fb;--success-fg:#2e2960;--danger-bg:#f7e6e5;--danger-fg:#7f2622;--warning-bg:#f0ecff;--warning-fg:#3b3183;--gold:#2b2668;--silver:#5b3fa8;--bronze:#8a6fd8;--act-vocab:#8a6fd8;--act-vocab-rgb:138 111 216;--act-quiz:#2b2668;--act-quiz-rgb:43 38 104;--act-picture:#4a5bb0;--act-picture-rgb:74 91 176;--act-video:#6156bd;--act-video-rgb:97 86 189;--act-taboo:#8c4a91;--act-taboo-rgb:140 74 145;--act-debate:#5b3fa8;--act-debate-rgb:91 63 168;--act-guess:#3f47a0;--act-guess-rgb:63 71 160;--act-fill:0.10;--act-ring:0.30;--danger-solid:#b8433c;--ink-on-danger:#fff;--warning-solid:#6f5ad0;--ink-on-warning:#fff;--glass-fill:#fffffff0;--glass-border:#09090b21;--glass-edge:inset 0 1px 0 #ffffffe6;--glass-lift:0 10px 24px -18px #09090b57;--nav-lift:0 18px 36px -24px #09090b4d;--tint-accent:radial-gradient(130% 130% at 100% 0%,#403a7e1c,#fffffff0 60%);--tint-ai:radial-gradient(130% 120% at 0% 0%,#6f5ad01c,#fffffff0 58%);--neutral-fill:#71717a1a;--neutral-ring:#71717a4d}[data-theme=dark]{--bg-primary:#171331;--bg-secondary:#241e48;--bg-card:#1e1940;--bg-input:#292251;--text-primary:#f4f2fc;--text-secondary:#c8c2e4;--text-muted:#a49dc6;--border:#ffffff21;--shadow:#00000073;--overlay:#0e0b20ad;--success:#c9b8ff;--danger:#e08d86;--warning:#b6a6ff;--success-bg:#c9b8ff24;--success-fg:#e3d8ff;--danger-bg:#e08d861f;--danger-fg:#f0bbb6;--warning-bg:#b6a6ff24;--warning-fg:#cfc4ff;--gold:#dbd0ff;--silver:#b6a6ff;--bronze:#8f85dd;--act-vocab:#e3d8ff;--act-vocab-rgb:227 216 255;--act-quiz:#8f85dd;--act-quiz-rgb:143 133 221;--act-picture:#8fa3e8;--act-picture-rgb:143 163 232;--act-video:#a2b0f0;--act-video-rgb:162 176 240;--act-taboo:#dfa6f0;--act-taboo-rgb:223 166 240;--act-debate:#a37fe8;--act-debate-rgb:163 127 232;--act-guess:#b0a6f2;--act-guess-rgb:176 166 242;--act-fill:0.16;--act-ring:0.42;--glass-fill:linear-gradient(180deg,hsla(0,0%,100%,.062),hsla(0,0%,100%,.028));--glass-border:#ffffff1a;--glass-edge:inset 0 1px 0 #ffffff0f;--glass-lift:0 16px 30px -26px #000000bf;--nav-lift:0 22px 44px -28px #0009;--tint-accent:radial-gradient(130% 130% at 100% 0%,#b6a6ff1c,#ffffff08 60%);--tint-ai:radial-gradient(130% 120% at 0% 0%,#c9b8ff1c,#ffffff08 58%);--neutral-fill:#a0a0aa29;--neutral-ring:#a0a0aa6b}:root,[data-theme=light]{--accent:#403a7e;--accent-rgb:64 58 126;--accent-strong:#2e2960;--accent-soft:#403a7e1a;--accent-ring:#403a7e4d;--text-on-accent:#fff;--ai:#6f5ad0;--ai-rgb:111 90 208;--ai-strong:#5946ac;--ai-soft:#6f5ad01a;--ai-ring:#6f5ad052;--ai-fill:#c9baff;--ai-fill-strong:#ded4ff;--text-on-ai:#241c52;--hero-1:#2b2764;--hero-2:#5438a6;--hero-3:#3a46a8;--hero-4:#74388c;--hero-5:#43276d;--coral:#dc553a;--coral-soft:#dc553a2e;--coral-ink:#8f3219;--stage-ink:#fff;--stage-ink-soft:#ffffffc7;--stage-chip:#ffffff1f;--stage-chip-border:#ffffff38;--stage-edge:#ffffff29;--stage-no:#ffe4df;--stage-no-chip:#ffc4bc1f;--stage-no-border:#ffc4bc61;--nav-fill:linear-gradient(180deg,#ffffffb3,#f7f5ff85);--nav-border:#403a7e24}[data-theme=dark]{--accent:#b6a6ff;--accent-rgb:182 166 255;--accent-strong:#cfc4ff;--accent-soft:#b6a6ff33;--accent-ring:#b6a6ff66;--text-on-accent:#171331;--ai:#c9b8ff;--ai-rgb:201 184 255;--ai-strong:#dbd0ff;--ai-soft:#c9b8ff33;--ai-ring:#c9b8ff6b;--ai-fill:#c3b1ff;--ai-fill-strong:#dbd0ff;--text-on-ai:#1a1436;--hero-1:#b6a6ff;--hero-2:#a9b3ff;--hero-3:#d6b4f6;--hero-4:#e7c2ef;--hero-5:#c4b0ff;--coral:#ff9477;--coral-soft:#ff947733;--coral-ink:#ffc4b3;--stage-ink:#171331;--stage-ink-soft:#171331bd;--stage-chip:#ffffff61;--stage-chip-border:#ffffff8c;--stage-edge:#ffffff59;--stage-no:#8c1d24;--stage-no-chip:#ffffff73;--stage-no-border:#8c1d2447;--nav-fill:var(--glass-fill);--nav-border:var(--glass-border)}:root{--peer:var(--accent);--peer-soft:var(--accent-soft);--text-on-peer:var(--text-on-accent)}:root,[data-theme=light]{--logo-wordmark:#18181b}[data-theme=dark]{--logo-wordmark:#fafafa}:root{--logo-text-1:var(--accent);--logo-text-2:var(--accent);--logo-text-3:var(--accent);--safe-area-top:env(safe-area-inset-top);--safe-area-bottom:env(safe-area-inset-bottom);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--font-display:"Outfit","Segoe UI",system-ui,sans-serif;--font-ui:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--fs-display:30px;--fs-h1:23px;--fs-h2:18px;--fs-body:15px;--fs-sm:13px;--fs-xs:11px;--lh-tight:1.2;--lh-body:1.5;--e-1:none;--e-2:0 1px 3px var(--shadow);--e-3:0 8px 30px var(--shadow);--e-4:var(--nav-lift);--z-nav:100;--z-sheet:1000;--z-stage:1500;--z-modal:2000;--z-toast:3000;--brand-gradient:linear-gradient(100deg,var(--accent),var(--ai))}html{-webkit-text-size-adjust:100%}#root,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#f5f4f9;background:var(--bg-primary);color:#191727;color:var(--text-primary);font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-ui);font-weight:500;margin:0;max-width:100%;min-height:100vh;min-height:100dvh;overflow-x:clip;overscroll-behavior-y:none;padding:0;position:relative;transition:background-color .3s ease,color .3s ease;-webkit-user-select:none;user-select:none;width:100%}#root>*{position:relative;z-index:1}.home-logo,.ui-stat-value,h1,h2,h3{font-family:Outfit,Segoe UI,system-ui,sans-serif;font-family:var(--font-display);letter-spacing:-.02em}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;-webkit-tap-highlight-color:transparent;scrollbar-width:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.btn-accept,.btn-call,.btn-chat,.btn-end,.btn-mute,.btn-primary,.btn-random,.btn-reject,.chat-input button,.diff-btn.active,.dp-tab.active,.hub-tab.active,.level-btn.active,.message.mine p,.question-number,.tab.active{color:#fff;color:var(--text-on-accent)}.settings-button{align-items:center;background:#fff;background:var(--bg-card);border:1px solid #18143026;border:1px solid var(--border);border-radius:50%;box-shadow:0 12px 30px #1814301a;box-shadow:0 12px 30px var(--shadow);color:#403a7e;color:var(--accent);cursor:pointer;display:inline-flex;height:48px;justify-content:center;left:16px;position:absolute;top:16px;transition:transform .2s ease,border-color .2s ease,background .2s ease;width:48px;z-index:1000}.settings-button:hover{border-color:#403a7e;border-color:var(--accent);transform:translateY(-2px) scale(1.04)}.settings-backdrop,.settings-panel{position:absolute}.settings-panel{max-width:100%}.settings-panel-header{align-items:center;background:#403a7e1a;background:var(--accent-soft);display:flex;justify-content:space-between;padding:20px}.settings-title{align-items:center;color:#191727;color:var(--text-primary);display:flex;font-size:18px;font-weight:800;gap:8px}.settings-close{align-items:center;background:#f5f4f9;background:var(--bg-primary);border:none;border-radius:50%;color:#48445e;color:var(--text-secondary);cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:background .2s ease,color .2s ease,transform .2s ease;width:32px}.settings-close:hover{background:#403a7e;background:var(--accent);color:#fff;color:var(--text-on-accent);transform:scale(1.04)}.settings-divider{background:#18143026;background:var(--border);height:1px;margin:0}.settings-content{padding:12px}.settings-row{align-items:center;border-radius:8px;display:flex;justify-content:space-between;padding:14px 20px;transition:background .2s ease}.settings-row:hover{background:color-mix(in srgb,#f5f4f9 50%,#0000);background:color-mix(in srgb,var(--bg-primary) 50%,#0000)}.settings-row-label{align-items:center;color:#191727;color:var(--text-primary);display:flex;font-size:14px;font-weight:700;gap:8px}.theme-switch{background:#18143026;background:var(--border);border:none;border-radius:13px;cursor:pointer;height:26px;padding:0;position:relative;transition:background .25s ease;width:48px}.theme-switch.dark{background:#403a7e;background:var(--accent)}.theme-switch-thumb{align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 3px #1814301a;box-shadow:0 1px 3px var(--shadow);display:flex;height:20px;justify-content:center;margin:3px;transform:translateX(0);transition:transform .25s ease;width:20px}.theme-switch.dark .theme-switch-thumb{transform:translateX(22px)}@media (max-width:520px){.settings-panel{width:100%}}.desktop-layout,.mobile-layout{background:#f5f4f9;background:var(--bg-primary);display:flex;height:100dvh;height:var(--app-height,100dvh);overflow:hidden;width:100%}.mobile-layout{border:none;box-shadow:none;margin:0;max-width:100%}.desktop-layout{border-left:1px solid #18143026;border-left:1px solid var(--border);box-shadow:0 0 40px #00000080;margin:0 auto;max-width:1200px}.desktop-layout,.desktop-sidebar{border-right:1px solid #18143026;border-right:1px solid var(--border)}.desktop-sidebar{background:#eae8f2;background:var(--bg-secondary);flex-shrink:0;width:300px}.main-content{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;flex-direction:column;overflow-x:hidden;overflow-y:auto;position:relative}.main-content>*{flex-shrink:0}@media (min-width:1024px){:root{--fs-display:36px;--fs-h1:28px;--fs-h2:21px;--fs-body:17px;--fs-sm:15px;--fs-xs:12px}.desktop-layout .main-content>:not(.bottom-nav):not(.layout-escape){margin-left:auto;margin-right:auto;max-width:880px;width:100%}}.layout-escape{background:#fff;background:var(--bg-card);border:1px solid #18143026;border:1px solid var(--border);border-radius:999px;border-radius:var(--r-pill);box-shadow:0 10px 24px -18px #09090b57;box-shadow:var(--glass-lift);color:#48445e;color:var(--text-secondary);cursor:pointer;font:inherit;font-size:11px;font-size:var(--fs-xs);font-weight:700;height:32px;padding:0 12px;padding:0 var(--s-3);position:fixed;right:12px;top:calc(10px + env(safe-area-inset-top));top:calc(10px + var(--safe-area-top, 0px));z-index:3000;z-index:var(--z-toast,90)}.settings-sidebar{display:flex;flex-direction:column;height:100%;padding:0;width:100%}.settings-panel{background:#eae8f2;background:var(--bg-secondary);border-left:1px solid #18143026;border-left:1px solid var(--border);bottom:0;box-shadow:-4px 0 24px #1814301a;box-shadow:-4px 0 24px var(--shadow);color:#191727;color:var(--text-primary);height:100dvh;max-width:80vw;padding:0;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .3s ease;width:280px;z-index:999}.settings-panel.open{transform:translateX(0)}.settings-backdrop{background:#17133173;background:var(--overlay);border:0;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .3s ease;z-index:998}.settings-backdrop.open{opacity:1;pointer-events:auto}.streak-overlay{align-items:center;animation:streak-fade-in .3s ease;background:#f5f4f9;background:var(--bg-primary);display:flex;inset:0;justify-content:center;overflow:hidden;padding:24px;position:fixed;z-index:10001}.streak-card{animation:streak-pop-in .45s cubic-bezier(.18,.9,.32,1.4);max-width:360px;position:relative;text-align:center;width:100%}.streak-crown{filter:drop-shadow(0 2px 6px rgba(24,20,48,.1));filter:drop-shadow(0 2px 6px var(--shadow));font-size:38px;margin-bottom:4px}.streak-flame{align-items:center;display:inline-flex;justify-content:center;margin-bottom:8px;position:relative}.streak-flame-emoji{display:block;font-size:84px;line-height:1;position:relative;z-index:1}.streak-flame-glow{background:radial-gradient(circle,var(--streak-accent) 0,#0000 65%);border-radius:50%;filter:blur(8px);height:120px;opacity:.28;position:absolute;width:120px}.streak-flame--none .streak-flame-emoji{filter:grayscale(.4) opacity(.85);font-size:64px}.streak-flame--flame-sm .streak-flame-emoji{font-size:72px}.streak-flame--flame-lg .streak-flame-emoji{font-size:96px}.streak-flame--confetti .streak-flame-emoji,.streak-flame--crown .streak-flame-emoji{font-size:104px}.streak-count{font-size:72px;font-weight:900;letter-spacing:-2px;line-height:1}.streak-days{color:#48445e;color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:2px;margin-top:2px;text-transform:uppercase}.streak-title{color:#191727;color:var(--text-primary);font-size:24px;font-weight:800;margin:16px 0 8px}.streak-message{font-size:15px;line-height:1.5;margin:0 0 20px}.streak-message,.streak-next{color:#48445e;color:var(--text-secondary)}.streak-next{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;display:inline-block;font-size:13px;font-weight:600;margin-bottom:22px;padding:8px 14px}.streak-btn-primary{border:none;border-radius:14px;color:#fff;color:var(--text-on-accent);cursor:pointer;font-size:16px;font-weight:800;padding:15px;width:100%}.streak-btn-secondary{background:#0000;border:1px solid #ffffff26;border-radius:14px;color:#191727;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:700;margin-top:10px;padding:13px;width:100%}.streak-confetti{inset:0;overflow:hidden;pointer-events:none;position:absolute}.streak-confetti span{animation-iteration-count:1;animation-name:streak-confetti-fall;animation-timing-function:ease-in;border-radius:2px;height:14px;position:absolute;top:-20px;width:9px;will-change:transform,opacity}.journey-overlay{animation:streak-fade-in .3s ease;background:#f5f4f9;background:var(--bg-primary);inset:0;overflow-y:auto;position:fixed;z-index:10001}.journey-header{background:linear-gradient(#f5f4f9 60%,#0000);background:linear-gradient(var(--bg-primary) 60%,#0000);padding:calc(20px + env(safe-area-inset-top)) 16px 16px;padding:calc(20px + var(--safe-area-top, 0px)) 16px 16px;position:sticky;text-align:center;top:0;z-index:2}.journey-close{background:#eae8f2;background:var(--bg-secondary);border:none;border-radius:10px;color:#191727;color:var(--text-primary);cursor:pointer;display:flex;left:14px;padding:10px;position:absolute;top:calc(16px + env(safe-area-inset-top));top:calc(16px + var(--safe-area-top, 0px));z-index:1}.journey-hero-flame{font-size:44px;line-height:1;pointer-events:none}.journey-head-count{font-size:34px;font-weight:900;line-height:1.1}.journey-head-days{font-size:15px;font-weight:700;opacity:.75}.journey-head-tier{color:#48445e;color:var(--text-secondary);font-size:13px;font-weight:800;letter-spacing:1.5px;margin-top:2px;text-transform:uppercase}.journey-progress-track{background:#eae8f2;background:var(--bg-secondary);border-radius:6px;height:8px;margin:10px auto 0;overflow:hidden;width:min(240px,70%)}.journey-progress-fill{background:var(--journey-accent);border-radius:6px;height:100%;transition:width .6s cubic-bezier(.34,1.2,.5,1)}.journey-head-sub{color:#48445e;color:var(--text-secondary);font-size:13px;font-weight:600;margin-top:8px}.journey-spark{color:#403a7e;color:var(--accent);opacity:.28;pointer-events:none;position:fixed;z-index:0}.journey-trail{align-items:center;display:flex;flex-direction:column;gap:22px;margin:0 auto;max-width:340px;padding:10px 0 90px;position:relative}.journey-trail:before{background:repeating-linear-gradient(#18143026 0 8px,#0000 8px 16px);background:repeating-linear-gradient(var(--border) 0 8px,#0000 8px 16px);bottom:60px}.journey-trail:after,.journey-trail:before{content:"";left:50%;margin-left:-2px;position:absolute;top:0;width:4px}.journey-trail:after{background:var(--journey-accent);border-radius:4px;height:0;height:var(--journey-trail-fill,0)}.journey-node{position:relative;z-index:1}.journey-node--left{align-self:flex-start;margin-left:28px}.journey-node--right{align-self:flex-end;margin-right:28px}.journey-dot{align-items:center;background:#eae8f2;background:var(--bg-secondary);border:2px solid #18143026;border:2px solid var(--border);border-radius:50%;color:#605c78;color:var(--text-muted);display:flex;font-size:16px;font-weight:800;height:52px;justify-content:center;width:52px}.journey-node.is-done .journey-dot{background:#403a7e;background:var(--node-accent,var(--accent));border-color:#0000;box-shadow:inset 0 1px 0 #ffffff38;color:#fff;color:var(--text-on-accent)}.journey-node.is-milestone .journey-dot{border-color:#403a7e;border-color:var(--accent);font-size:26px;height:64px;width:64px}.journey-node.is-milestone.is-done .journey-dot{background:#403a7e;background:var(--accent);box-shadow:inset 0 1px 0 #ffffff38}.journey-node.is-current .journey-dot{outline:3px solid #191727;outline:3px solid var(--text-primary);outline-offset:3px;transform:scale(1.12)}.journey-lock{font-size:15px;opacity:.6}.journey-node-label{color:#48445e;color:var(--text-secondary);font-size:11px;font-weight:700;margin-top:4px;text-align:center}.journey-node-label--today{background:var(--journey-accent);border-radius:10px;color:#fff;color:var(--text-on-accent);padding:2px 10px}@keyframes streak-fade-in{0%{opacity:0}to{opacity:1}}@keyframes streak-pop-in{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes streak-confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0deg)}to{opacity:.9;transform:translateY(105vh) rotate(540deg)}}@media (prefers-reduced-motion:no-preference){.streak-flame-emoji{animation:streak-flicker 2.2s ease-in-out infinite;will-change:transform}.streak-flame-glow{animation:streak-pulse 2.2s ease-in-out infinite}.journey-node.is-current .journey-dot{animation:streak-node-pulse 1.6s ease-in-out infinite}.journey-hero-flame{animation:streak-flicker 2.2s ease-in-out infinite}.journey-spark{animation:streak-pulse 2.6s ease-in-out infinite}}@keyframes streak-flicker{0%,to{transform:scale(1) rotate(-1deg)}50%{transform:scale(1.08) rotate(1deg)}}@keyframes streak-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.65;transform:scale(1.12)}}@keyframes streak-node-pulse{0%,to{box-shadow:0 0 0 0 #ffffff80}50%{box-shadow:0 0 0 8px #fff0}}@keyframes logo-bubble{0%{opacity:0;transform:translateY(0) scale(.45)}20%{opacity:1}60%{opacity:.7;transform:translateY(-26px) scale(1)}to{opacity:0;transform:translateY(-44px) scale(.8)}}@keyframes logo-bubble-drift{0%{opacity:0;transform:translate(0) scale(.4)}22%{opacity:.9}to{opacity:0;transform:translate(6px,-42px) scale(.9)}}@media (prefers-reduced-motion:reduce){[style*=logo-bubble]{animation:none!important;opacity:.35}}
/*# sourceMappingURL=main.c31d144e.css.map*/