.custom-modal{display:none;position:fixed;background:rgba(5,10,20,.96);z-index:5000;overflow-y:auto;opacity:0;transition:opacity .5s;pointer-events:none!important}.custom-modal,.custom-modal *{scrollbar-width:none;-ms-overflow-style:none}.custom-modal ::-webkit-scrollbar,.custom-modal::-webkit-scrollbar{display:none}.custom-modal.show{display:flex;opacity:1;pointer-events:auto!important}.completion-inner{max-width:560px;margin:0 auto;padding:40px 28px 120px;animation:.6s .1s both comp-rise}@keyframes comp-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.comp-close{top:16px;right:18px;background:0 0;border:none;border-radius:8px;width:34px;height:34px;color:var(--text-muted);font-size:20px;cursor:pointer;z-index:5010;display:flex;align-items:center;justify-content:center;transition:color .2s;line-height:1}.comp-close:hover{color:var(--text-bright)}.comp-progress-track{width:100%;height:4px;background:rgba(255,255,255,.06);border-radius:999px;margin:0 0 28px;overflow:hidden}.comp-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#00d2f1,#22c55e,#a78bfa);border-radius:999px;transition:width 1.8s cubic-bezier(.22, 1, .36, 1)}.comp-progress-fill.animate{width:100%}.comp-milestones{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}.comp-milestone{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:11px;font-weight:700;opacity:0;transform:translateY(8px) scale(.9);transition:opacity .4s,transform .4s}.comp-milestone.pop{opacity:1;transform:translateY(0) scale(1)}.comp-milestone.m-cyan{background:rgba(0,210,241,.1);border:1px solid rgba(0,210,241,.3);color:#00d2f1}.comp-milestone.m-green{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);color:#22c55e}.comp-milestone.m-purple{background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.3);color:#a78bfa}.comp-milestone.m-orange{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);color:#f59e0b}.comp-headline{text-align:center;margin-bottom:8px}.comp-headline .comp-emoji{font-size:36px;display:block;margin-bottom:10px;animation:.5s .4s both flash-pop}.comp-headline h2{font-size:clamp(20px, 4vw, 26px);font-weight:800;color:var(--text-white);margin:0;line-height:1.25}.comp-sub{text-align:center;font-size:14px;color:var(--text-muted);margin:8px 0 28px}.comp-xp-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:999px;background:rgba(0,210,241,.08);border:1px solid rgba(0,210,241,.25);font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--cyan);margin-bottom:28px}.comp-divider{width:36px;height:1px;background:var(--border);margin:0 auto 22px}.comp-section-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--cyan);opacity:.5;margin-bottom:14px}.comp-topic{margin-bottom:16px}.comp-topic-title{font-size:14px;font-weight:700;color:var(--text-white);margin-bottom:3px}.comp-topic-desc{font-size:13px;color:var(--text-muted);line-height:1.55}.comp-next-section{margin-top:28px;text-align:center}.comp-next-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--cyan);margin-bottom:10px}.comp-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.comp-primary{padding:14px 36px;border-radius:12px;background:rgba(0,210,241,.1);border:1px solid var(--cyan);color:var(--cyan);font-size:15px;font-weight:700;cursor:pointer;transition:.25s;width:100%;max-width:320px}.comp-primary:hover{background:rgba(0,210,241,.18);transform:translateY(-1px)}.comp-secondary{padding:11px 24px;border-radius:10px;background:0 0;border:1px solid var(--border);color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:.25s;width:100%;max-width:320px}.comp-secondary:hover{border-color:rgba(255,255,255,.2);color:var(--text-bright)}.comp-explore{margin-top:24px;padding:14px 18px;border-radius:12px;background:rgba(167,139,250,.05);border:1px solid rgba(167,139,250,.15);text-align:center}.comp-explore-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--purple);opacity:.6;margin-bottom:8px}.comp-explore a{display:block;font-size:13px;font-weight:600;color:var(--purple);text-decoration:none;padding:5px 0;transition:color .2s}.comp-explore a:hover{color:#c4b5fd}.comp-rating{margin-top:24px;text-align:center}.close-modal-btn,.modal-description,.modal-title,.unlocked-section{display:none}.gcm-overlay{display:none;position:fixed;inset:0;z-index:9000;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .35s}.gcm-overlay.gcm-show{display:flex;opacity:1}.gcm-overlay.gcm-visible{opacity:1}.gcm-card{position:relative;background:linear-gradient(160deg,#0d1a2e 0,#060b18 100%);border:1px solid rgba(120,220,255,.14);border-radius:20px;padding:36px 32px 32px;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;box-shadow:0 32px 80px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);transform:translateY(24px) scale(.97);transition:transform .4s cubic-bezier(.22, 1, .36, 1)}.gcm-overlay.gcm-visible .gcm-card{transform:translateY(0) scale(1)}.gcm-close{position:absolute;top:16px;right:16px;width:32px;height:32px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:rgba(255,255,255,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.gcm-close:hover{background:rgba(255,255,255,.12);color:#fff}.gcm-badge{font-size:44px;text-align:center;margin-bottom:14px;line-height:1;filter:drop-shadow(0 0 20px var(--gcm-accent, #00d2f1));animation:.5s cubic-bezier(.22,1,.36,1) .15s both gcm-badge-pop}@keyframes gcm-badge-pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.gcm-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;color:#fff;text-align:center;margin:0 0 8px;line-height:1.3}.gcm-subtitle{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;color:rgba(150,180,210,.85);text-align:center;margin:0 0 24px;line-height:1.6}.gcm-milestones{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.gcm-milestone{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:10px 14px;opacity:0;transform:translateX(-12px);transition:opacity .4s,transform .4s}.gcm-milestone.gcm-ms-pop{opacity:1;transform:translateX(0)}.gcm-ms-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;background:rgba(var(--gcm-accent-rgb,0,210,241),.12);color:var(--gcm-accent,#00d2f1)}.gcm-ms-label{flex:1;font-family:'Plus Jakarta Sans',sans-serif;font-size:13.5px;font-weight:600;color:rgba(200,220,240,.9)}.gcm-ms-xp{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--gcm-accent,#00d2f1);background:rgba(var(--gcm-accent-rgb,0,210,241),.1);padding:3px 8px;border-radius:6px}.gcm-xp-total{text-align:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;color:rgba(255,255,255,.35);border-top:1px solid rgba(255,255,255,.07);padding-top:16px;margin-top:4px}.gcm-xp-total strong{color:var(--gcm-accent,#00d2f1);font-size:18px;font-weight:800}.page-content{padding-bottom:calc(2rem + 70px)}.gcm-sticky{position:fixed;bottom:0;left:0;right:0;z-index:9500;transform:translateY(100%);transition:transform .45s cubic-bezier(.22, 1, .36, 1)}.gcm-sticky.gcm-sticky-show{transform:translateY(0);pointer-events:all}.gcm-sticky-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(4,4,15,.78);border-top:1px solid rgba(0,210,241,.2);padding:10px 16px;backdrop-filter:blur(16px);box-shadow:0 -6px 30px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(16px)}.gcm-sticky-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.gcm-sticky-check{width:22px;height:22px;border-radius:50%;background:rgba(34,197,94,.15);color:#22c55e;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gcm-sticky-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;color:#22c55e;white-space:nowrap}.gcm-sticky-actions{display:flex;gap:8px;align-items:center;z-index:100001}.gcm-sticky-review{background:0 0;border:1px solid rgba(255,255,255,.13);color:rgba(180,200,220,.8);font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;padding:7px 14px;border-radius:9px;cursor:pointer;white-space:nowrap;transition:border-color .2s,color .2s;pointer-events:auto}.gcm-sticky-review:hover{border-color:rgba(255,255,255,.28);color:#fff}.gcm-sticky-next{display:inline-flex;align-items:center;gap:6px;background:var(--gcm-accent,#00d2f1);color:#000;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;padding:7px 16px;border-radius:9px;text-decoration:none;white-space:nowrap;transition:opacity .2s,transform .2s;z-index:100000}.gcm-sticky-next:hover{opacity:.88;transform:translateX(2px);color:#000;text-decoration:none}@media (max-width:420px){.gcm-sticky-inner{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px}.gcm-sticky-left{justify-content:center}.gcm-sticky-actions{flex-direction:column;gap:8px}.gcm-sticky-next,.gcm-sticky-review{width:100%;justify-content:center;text-align:center;padding:10px 16px;font-size:14px}body{padding-bottom:130px}}@media (min-width:421px) and (max-width:600px){.gcm-sticky-label{font-size:12px}.gcm-sticky-next,.gcm-sticky-review{font-size:12px;padding:7px 12px}}.gcm-card::-webkit-scrollbar{width:4px}.gcm-card::-webkit-scrollbar-track{background:0 0}.gcm-card::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}.we-toggle-btn{width:100%;background:0 0;border:none;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.we-toggle-left{display:flex;align-items:center}.we-arrow{font-size:11px;color:rgba(255,255,255,.85);transition:transform .3s}.lab-title.example-title{color:rgba(0,210,241,.7);margin-left:8px}::placeholder{font-size:12px;opacity:.6}.comp-close{position:fixed}.comp-close::before{content:'';position:absolute;inset:-5px}