.welcome-screen{position:relative;z-index:10;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.welcome-inner{width:min(520px,100%);display:flex;flex-direction:column;align-items:center;gap:28px;animation:fadeInDown .6s ease}.welcome-logo{display:flex;align-items:center;gap:16px}.logo-icon-ring{width:68px;height:68px;border-radius:20px;background:#a78bfa26;border:2px solid rgba(167,139,250,.4);display:flex;align-items:center;justify-content:center;box-shadow:0 0 32px #a78bfa40}.logo-title{font-size:38px;font-weight:900;background:linear-gradient(135deg,#f472b6,#a78bfa,#60a5fa);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:textFlow 4s ease-in-out infinite;line-height:1}.logo-sub{font-size:13px;color:#ffffff8c;font-weight:600;letter-spacing:2px;text-transform:uppercase;margin-top:2px}.welcome-tagline{text-align:center;font-size:16px;font-weight:700;color:#ffffffe6;line-height:1.6}.welcome-tagline span{font-size:14px;font-weight:500;color:#fff9}.level-path-preview{display:flex;align-items:center;gap:0;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:48px;padding:10px 20px}.path-preview-item{display:flex;align-items:center}.path-dot-preview{width:38px;height:38px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:#ffffff0f;color:#ffffff59;display:flex;align-items:center;justify-content:center;transition:all .3s}.path-dot-preview.active{border-color:#a78bfa;background:#a78bfa33;color:#a78bfa;box-shadow:0 0 16px #a78bfa66}.path-dot-preview.boss{border-color:#f472b6;color:#f472b680}.path-connector{width:20px;height:2px;background:#ffffff1a}.welcome-form{width:100%;background:#ffffff14;border:1.5px solid rgba(255,255,255,.15);border-radius:24px;padding:24px;display:flex;flex-direction:column;gap:14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.input-label{font-size:14px;font-weight:700;color:#fffc}.name-input{width:100%;background:#ffffff14;border:1.5px solid rgba(255,255,255,.2);border-radius:12px;padding:14px 16px;font-family:var(--font-ui);font-size:16px;font-weight:600;color:#fff;outline:none;transition:border-color .2s,box-shadow .2s}.name-input::placeholder{color:#ffffff4d;font-weight:400}.name-input:focus{border-color:#a78bfa99;box-shadow:0 0 0 3px #a78bfa26}.btn-start{width:100%;padding:16px;border:none;border-radius:14px;font-family:var(--font-ui);font-size:16px;font-weight:900;color:#0f0c29;background:linear-gradient(135deg,#f472b6,#a78bfa,#60a5fa);background-size:200% 200%;animation:btnShimmer 3s ease-in-out infinite;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .2s,transform .1s;box-shadow:0 4px 20px #a78bfa59;letter-spacing:.3px}.btn-start:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 28px #a78bfa80}.btn-start:active:not(:disabled){transform:translateY(0)}.btn-start:disabled{opacity:.45;cursor:not-allowed;animation:none;background-size:100%}.btn-arrow{font-size:14px}.countdown-display{text-align:center;padding:12px}.countdown-num{font-size:56px;font-weight:900;background:linear-gradient(135deg,#f472b6,#a78bfa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1;margin-bottom:10px;animation:fadeIn .3s ease}.countdown-label{font-family:var(--font-code);font-size:13px;color:#fff9}.welcome-features{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.feature-pill{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:100px;padding:6px 14px;font-size:12px;font-weight:700;color:#ffffffb3;letter-spacing:.3px}.map-screen{position:relative;z-index:10;min-height:100vh;padding:16px 16px 40px;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px;animation:fadeIn .4s ease}.map-hud{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;position:sticky;top:12px;z-index:20;border-radius:18px}.hud-left{display:flex;align-items:center;gap:12px}.hud-avatar{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#a78bfa,#f472b6);font-size:18px;font-weight:900;color:#0f0c29;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hud-name{font-size:14px;font-weight:800;color:#fff;line-height:1;margin-bottom:6px}.xp-bar-wrap{display:flex;align-items:center;gap:8px}.xp-bar-track{width:120px;height:6px;background:#ffffff1f;border-radius:3px;overflow:hidden}.xp-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#a78bfa,#f472b6);transition:width .6s cubic-bezier(.34,1.56,.64,1);background-size:200% 100%;animation:xpFlow 2s linear infinite}.xp-label{font-size:11px;font-weight:700;color:#fffc;white-space:nowrap}.hud-right{display:flex;align-items:center;gap:10px}.hud-badges{display:flex;gap:4px;align-items:center}.badge-pip{width:24px;height:24px;border-radius:50%;background:#fbbf2426;border:1px solid rgba(251,191,36,.3);display:flex;align-items:center;justify-content:center}.hud-no-badge{font-size:13px;color:#ffffff4d}.map-title-row{display:flex;align-items:baseline;gap:12px;padding:0 4px}.map-title{font-size:22px;font-weight:900;color:#fff}.map-subtitle{font-size:13px;font-weight:600;color:#ffffff80}.map-nodes{display:flex;flex-direction:column;gap:0}.map-node-wrap{display:flex;flex-direction:column;align-items:stretch}.map-node{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;border:1.5px solid rgba(255,255,255,.1);background:#ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:all .25s ease;text-align:left;width:100%;position:relative;overflow:hidden}.map-node:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(167,139,250,.08),transparent);opacity:0;transition:opacity .3s}.map-node:hover:not(:disabled):before{opacity:1}.map-node:hover:not(:disabled){border-color:#a78bfa66;transform:translate(4px);box-shadow:0 4px 24px #a78bfa26}.map-node.locked{cursor:not-allowed;opacity:.45}.map-node.done{border-color:#34d3994d;background:#34d3990f}.map-node.done:hover{border-color:#34d39980;box-shadow:0 4px 20px #34d3991f}.map-node.next-up{border-color:#a78bfa80;background:#a78bfa1a;box-shadow:0 0 20px #a78bfa33}.map-node.boss{border-color:#f472b680;background:#f472b614;animation:bossGlow 2.5s ease-in-out infinite}.node-icon-wrap{width:48px;height:48px;border-radius:14px;background:#ffffff14;border:1.5px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#ffffffb3;position:relative}.map-node.done .node-icon-wrap{color:#34d399;background:#34d3991f;border-color:#34d39940}.map-node.boss .node-icon-wrap{color:#f472b6;background:#f472b61f;border-color:#f472b64d}.map-node.next-up .node-icon-wrap{color:#a78bfa;background:#a78bfa26;border-color:#a78bfa4d}.node-done-badge{position:absolute;bottom:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:#34d399;display:flex;align-items:center;justify-content:center;border:2px solid rgba(15,12,41,.8)}.node-text{flex:1;min-width:0}.node-name{font-size:14px;font-weight:800;color:#fff;line-height:1.3;margin-bottom:5px}.node-status{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#a78bfa;display:inline-block;animation:blink 1.2s ease-in-out infinite}.node-xp-badge{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px 10px;min-width:48px}.node-xp-badge span{font-size:11px;font-weight:800;color:#ffffff80}.node-xp-badge.xp-done{background:#fbbf241a;border-color:#fbbf2440}.node-xp-badge.xp-done span{color:#fbbf24}.node-connector{width:2px;height:14px;background:#ffffff1f;margin:2px auto;border-radius:1px;transition:background .4s}.node-connector.connector-done{background:linear-gradient(to bottom,#34d399,#34d3994d)}.cta-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a081ebf;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:8000;display:flex;align-items:flex-end;justify-content:center;padding:0 12px 24px;opacity:0;pointer-events:none;transition:opacity .3s ease}.cta-backdrop.cta-show{opacity:1;pointer-events:all}.cta-card{width:min(480px,100%);background:linear-gradient(160deg,#1e143cf7,#140c2dfc);border:1.5px solid rgba(167,139,250,.35);border-radius:28px;padding:28px 24px 24px;position:relative;display:flex;flex-direction:column;gap:14px;box-shadow:0 -4px 40px #a78bfa33,0 20px 60px #00000080;transform:translateY(40px);transition:transform .4s cubic-bezier(.22,1,.36,1);overflow:hidden}.cta-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#f472b6,#a78bfa,#60a5fa,#a78bfa,#f472b6);background-size:200% 100%;animation:xpFlow 3s linear infinite}.cta-card-show{transform:translateY(0)}.cta-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;flex-shrink:0}.cta-close:hover{background:#ffffff26}.cta-badge{display:inline-flex;align-items:center;gap:5px;background:#fbbf241f;border:1px solid rgba(251,191,36,.3);border-radius:100px;padding:4px 12px;font-size:11px;font-weight:800;color:#fbbf24;letter-spacing:.5px;width:fit-content}.cta-icon-wrap{width:56px;height:56px;border-radius:18px;background:#a78bfa1f;border:1.5px solid rgba(167,139,250,.3);display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px #a78bfa33}.cta-title{font-size:18px;font-weight:900;color:#fff;line-height:1.4;margin:0}.cta-title-accent{display:block;background:linear-gradient(135deg,#f472b6,#a78bfa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.cta-desc{font-size:13.5px;color:#ffffffc7;line-height:1.65;margin:0;font-weight:500}.cta-desc strong{color:#fff;font-weight:800}.cta-pills{display:flex;flex-wrap:wrap;gap:6px}.cta-pill{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:100px;padding:5px 12px;font-size:11px;font-weight:700;color:#fffc}.cta-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;border-radius:16px;background:linear-gradient(135deg,#f472b6,#a78bfa,#60a5fa);background-size:200% 200%;animation:btnShimmer 3s ease-in-out infinite;color:#0f0c29;font-family:var(--font-ui);font-size:15px;font-weight:900;text-decoration:none;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 20px #a78bfa66;letter-spacing:.2px;margin-top:4px}.cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 28px #a78bfa8c}.cta-btn:active{transform:translateY(0)}.cta-note{text-align:center;font-size:11px;color:#ffffff4d;margin:0}.level-screen{position:relative;z-index:10;min-height:100vh;padding:0 0 40px;max-width:600px;margin:0 auto;display:flex;flex-direction:column}.level-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;background:#0f0c29cc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20}.btn-back-map{background:#ffffff17;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#ffffffd9;font-family:var(--font-ui);font-size:12px;font-weight:700;padding:7px 12px;cursor:pointer;transition:background .2s}.btn-back-map:hover{background:#ffffff26}.level-hud-title{font-size:13px;font-weight:800;color:#fff;flex:1;text-align:center;padding:0 8px}.phase-badge{background:#a78bfa2e;border:1px solid rgba(167,139,250,.35);border-radius:8px;padding:5px 10px;font-size:11px;font-weight:800;color:#c4b5fd;letter-spacing:.5px;white-space:nowrap}.phase-dots{display:flex;justify-content:center;gap:8px;padding:14px}.phase-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:all .3s}.phase-dot-done{background:#a78bfa80}.phase-dot-active{background:#a78bfa;box-shadow:0 0 10px #a78bfa99;width:24px;border-radius:4px}.level-content{padding:0 16px;flex:1}.phase-card{padding:24px 20px;margin-top:8px;display:flex;flex-direction:column;gap:16px}.animate-in{animation:slideIn .35s ease}.phase-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#ffffff80;letter-spacing:1px;text-transform:uppercase}.phase-title{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:900;color:#fff;line-height:1.3}.konsep-text{font-size:14px;line-height:1.75;color:#ffffffe0;font-weight:500}.analogi-box{display:flex;align-items:flex-start;gap:10px;background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:14px;padding:14px 16px;font-size:13px;color:#ffffffe6;line-height:1.6;flex-shrink:0}.code-block{background:#0006;border:1.5px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden}.code-header{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08);background:#0003}.dot-r{width:10px;height:10px;border-radius:50%;background:#f87171}.dot-y{width:10px;height:10px;border-radius:50%;background:#fbbf24}.dot-g{width:10px;height:10px;border-radius:50%;background:#34d399}.code-fname{font-family:var(--font-code);font-size:11px;color:#fff6;margin-left:4px}.code-body{font-family:var(--font-code);font-size:13px;line-height:1.8;padding:14px 16px;color:#ffffffeb;white-space:pre-wrap;word-break:break-word}.challenge-header{display:flex;align-items:center;justify-content:space-between}.challenge-counter{display:flex;gap:5px}.challenge-pip{width:20px;height:5px;border-radius:2px;background:#ffffff26;transition:background .3s}.challenge-pip.done{background:#34d399b3}.challenge-pip.active{background:#a78bfa}.challenge-soal{font-size:15px;font-weight:700;color:#fff;line-height:1.55}.challenge-inner{display:flex;flex-direction:column;gap:14px}.challenge-code{padding:14px 16px}.challenge-code pre{font-family:var(--font-code);font-size:13px;color:#ffffffeb;white-space:pre-wrap;word-break:break-word;line-height:1.8}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-btn{padding:12px 14px;border-radius:12px;border:1.5px solid rgba(255,255,255,.15);background:#ffffff12;font-family:var(--font-code);font-size:13px;font-weight:600;color:#ffffffe6;cursor:pointer;text-align:center;transition:all .2s}.choice-btn:hover:not(:disabled){border-color:#a78bfa80;background:#a78bfa1f;color:#fff}.choice-btn:disabled{cursor:not-allowed}.choice-btn.correct{border-color:#34d399b3;background:#34d39926;color:#fff}.choice-btn.wrong{border-color:#f8717199;background:#f871711f;color:#ffffffb3;animation:shake .4s ease}.truefalse-soal{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:16px;font-size:14px;color:#ffffffe6;line-height:1.6;font-weight:500}.pernyataan-label{display:block;font-size:11px;font-weight:800;color:#ffffff73;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}.truefalse-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tf-btn{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;border-radius:16px;border:2px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffd9;font-family:var(--font-ui);font-size:14px;font-weight:800;cursor:pointer;transition:all .2s}.tf-btn:hover:not(:disabled){transform:translateY(-2px)}.tf-btn.tf-true:hover:not(:disabled){border-color:#34d39980;background:#34d3991a;color:#fff}.tf-btn.tf-false:hover:not(:disabled){border-color:#f8717180;background:#f871711a;color:#fff}.tf-btn:disabled{cursor:not-allowed}.tf-btn.correct{border-color:#34d399;background:#34d39933;color:#0f0c29}.tf-btn.wrong{border-color:#f8717199;background:#f871711f;color:#ffffff80;animation:shake .4s ease}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-opt{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:13px;border:1.5px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffe6;font-family:var(--font-ui);font-size:13px;font-weight:600;text-align:left;cursor:pointer;transition:all .2s;width:100%}.quiz-opt:hover:not(:disabled){border-color:#a78bfa73;background:#a78bfa1a;color:#fff}.quiz-opt:disabled{cursor:not-allowed}.quiz-opt.correct{border-color:#34d399b3;background:#34d39926;color:#fff}.quiz-opt.wrong{border-color:#f8717199;background:#f871711a;color:#ffffffa6;animation:shake .4s ease}.quiz-letter{width:28px;height:28px;border-radius:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;flex-shrink:0;color:#ffffffb3}.bugfind-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:#ffffff8c;font-weight:600}.bugfind-lines{overflow:hidden}.bug-line{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .2s;text-align:left}.bug-line:last-child{border-bottom:none}.bug-line:hover:not(:disabled){background:#ffffff0d}.bug-line:disabled{cursor:not-allowed}.bug-line.bug-revealed{background:#f871711a!important;border-color:#f871714d}.bug-line.bug-wrong-pick{animation:shake .4s ease}.line-num{font-family:var(--font-code);font-size:11px;color:#ffffff40;width:16px;flex-shrink:0;margin-top:2px}.bug-line pre{font-family:var(--font-code);font-size:12.5px;color:#ffffffe0;white-space:pre-wrap;word-break:break-word;line-height:1.7;flex:1}.order-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:#ffffff80;font-weight:600}.order-list{display:flex;flex-direction:column;gap:6px}.order-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;border:1.5px solid rgba(255,255,255,.1);background:#ffffff0f;cursor:grab;transition:all .2s}.order-item:active{cursor:grabbing}.order-item.dragging{opacity:.6;border-color:#a78bfa66;box-shadow:0 4px 20px #a78bfa33}.order-item.order-correct{border-color:#34d39980;background:#34d39914}.order-item.order-wrong{border-color:#f8717166;background:#f8717112}.order-drag-handle{flex-shrink:0}.order-item pre{font-family:var(--font-code);font-size:12.5px;color:#ffffffe6;white-space:pre-wrap;word-break:break-word;line-height:1.7}.hint-row{display:flex;align-items:flex-start;gap:7px;background:#fbbf240f;border:1px solid rgba(251,191,36,.18);border-radius:10px;padding:10px 12px}.hint-text{font-size:12px;color:#ffffffb8;line-height:1.55;font-weight:500}.phase-actions{display:flex;flex-direction:column;gap:10px}.btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;border:none;border-radius:14px;font-family:var(--font-ui);font-size:15px;font-weight:900;color:#0f0c29;background:linear-gradient(135deg,#f472b6,#a78bfa,#60a5fa);cursor:pointer;transition:opacity .2s,transform .1s;box-shadow:0 4px 16px #a78bfa59;letter-spacing:.2px}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 24px #a78bfa73}.btn-primary:active{transform:translateY(0)}.btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px;border:1.5px solid rgba(255,255,255,.2);border-radius:14px;font-family:var(--font-ui);font-size:14px;font-weight:700;color:#ffffffd9;background:#ffffff12;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#ffffff1f}.btn-link{background:none;border:none;color:#a78bfacc;font-family:var(--font-ui);font-size:12px;font-weight:700;cursor:pointer;text-align:center;transition:color .2s}.btn-link:hover{color:#a78bfa}.quiz-question{font-size:15px;font-weight:700;color:#fff;line-height:1.6}.retry-icon{font-size:48px;margin-bottom:8px}.retry-title{font-size:22px;font-weight:900;color:#f87171;margin-bottom:8px}.retry-text{font-size:14px;color:#ffffffa6;margin-bottom:16px}.complete-card{align-items:center;text-align:center;position:relative;overflow:hidden;padding-top:36px}.complete-icon{position:relative;z-index:1;animation:fadeInDown .5s ease}.complete-title{font-size:26px;font-weight:900;background:linear-gradient(135deg,#fbbf24,#f472b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:textFlow 4s ease-in-out infinite;line-height:1.2}.complete-subtitle{font-size:13px;color:#fff9;font-weight:600}.perfect-badge{display:flex;align-items:center;gap:6px;background:#fbbf241f;border:1px solid rgba(251,191,36,.35);border-radius:100px;padding:7px 16px;font-size:12px;color:#fbbf24;font-weight:800}.complete-xp{font-size:24px;font-weight:900;color:#fbbf24;text-shadow:0 0 20px rgba(251,191,36,.4)}.complete-total{font-size:13px;color:#ffffffa6;font-weight:600}.complete-total strong{color:#fff}.complete-teaser{font-size:13px;color:#ffffffb3;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px 16px;width:100%}.complete-teaser strong{color:#a78bfa}.confetti-wrap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.win-screen{position:relative;z-index:10;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.win-inner{width:min(520px,100%);display:flex;flex-direction:column;align-items:center;gap:20px;animation:fadeInDown .6s ease;position:relative}.win-confetti{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;pointer-events:none;overflow:hidden;border-radius:28px}.cert-card{width:100%;padding:28px 24px;display:flex;flex-direction:column;gap:20px;align-items:center;text-align:center;position:relative;overflow:hidden}.cert-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#a78bfa0f,#f472b60a,#60a5fa0f);pointer-events:none}.cert-header{display:flex;align-items:center;gap:16px}.cert-title-block{text-align:left}.cert-title{font-size:26px;font-weight:900;background:linear-gradient(135deg,#fbbf24,#f472b6,#a78bfa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1}.cert-sub{font-size:12px;color:#ffffff73;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;margin-top:4px}.cert-divider{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent)}.cert-body{display:flex;flex-direction:column;gap:10px;align-items:center}.cert-phrase{font-size:13px;color:#ffffffa6;line-height:1.6;font-weight:500}.cert-phrase strong{color:#ffffffe6;font-weight:800}.cert-name{font-size:32px;font-weight:900;background:linear-gradient(135deg,#fff,#c4b5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}.cert-stats{display:flex;gap:16px;width:100%;justify-content:center}.cert-stat{display:flex;flex-direction:column;align-items:center;gap:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px 20px;flex:1}.cert-stat-val{font-size:22px;font-weight:900;color:#fff;line-height:1}.cert-stat-label{font-size:11px;color:#ffffff80;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.cert-badges{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.cert-badge-pip{width:28px;height:28px;border-radius:50%;background:#fbbf241f;border:1px solid rgba(251,191,36,.3);display:flex;align-items:center;justify-content:center}.cert-date{font-size:12px;color:#fff6;font-family:var(--font-code)}.cert-perfect-banner{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#fbbf24,#fb923c);color:#0f0c29;font-size:13px;font-weight:900;padding:10px 20px;border-radius:100px;letter-spacing:.5px}.btn-restart{padding:14px 32px;border:1.5px solid rgba(255,255,255,.2);border-radius:14px;background:#ffffff14;color:#ffffffd9;font-family:var(--font-ui);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.btn-restart:hover{background:#ffffff24;border-color:#ffffff4d;color:#fff}.btn-cta-retrigger{background:none;border:none;color:#a78bfa;font-family:var(--font-ui);font-size:13px;font-weight:700;cursor:pointer;padding:4px 0;transition:color .2s;text-decoration:underline;text-underline-offset:3px}.btn-cta-retrigger:hover{color:#c4b5fd}.particles-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;overflow:hidden}.feedback-toast{position:fixed;bottom:-140px;left:50%;transform:translate(-50%);width:min(440px,90vw);padding:14px 18px;border-radius:18px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:9000;transition:bottom .35s cubic-bezier(.22,1,.36,1);border:1.5px solid transparent;display:flex;align-items:flex-start;gap:12px}.feedback-toast.correct-toast{background:#0f281eeb;border-color:#34d39980;box-shadow:0 8px 32px #34d39933}.feedback-toast.wrong-toast{background:#280f14eb;border-color:#f8717173;box-shadow:0 8px 32px #f8717126}.fb-icon{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ffffff12}.fb-content{flex:1}.fb-title{font-size:14px;font-weight:900;color:#fff;margin-bottom:3px}.fb-body{font-size:12.5px;color:#ffffffd1;line-height:1.5}:root{--pink: #f472b6;--pink-light: #fce7f3;--purple: #a78bfa;--purple-dark: #7c3aed;--blue: #60a5fa;--blue-dark: #2563eb;--orange: #fb923c;--yellow: #fbbf24;--green: #34d399;--green-dark: #059669;--red: #f87171;--teal: #2dd4bf;--white: #ffffff;--glass: rgba(255, 255, 255, .13);--glass-border: rgba(255, 255, 255, .28);--text-light: rgba(255, 255, 255, .75);--shadow: 0 8px 32px rgba(124, 58, 237, .18);--shadow-lg: 0 16px 48px rgba(124, 58, 237, .28);--font-ui: "Nunito", sans-serif;--font-code: "Fira Code", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);min-height:100vh;overflow-x:hidden;background:#0f0c29;color:#fff}#root{min-height:100vh}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.aurora:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(167,139,250,.55) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 80% 20%,rgba(244,114,182,.5) 0%,transparent 55%),radial-gradient(ellipse 70% 40% at 60% 80%,rgba(96,165,250,.5) 0%,transparent 55%),radial-gradient(ellipse 50% 60% at 10% 70%,rgba(251,146,60,.4) 0%,transparent 55%),radial-gradient(ellipse 90% 80% at 50% 50%,rgba(45,212,191,.25) 0%,transparent 70%);animation:auroraShift 12s ease-in-out infinite alternate}.aurora:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 100% 100% at 50% 50%,#0f0c294d,#0f0c29b3)}@keyframes auroraShift{0%{transform:scale(1) rotate(0)}33%{transform:scale(1.05) rotate(1deg)}66%{transform:scale(.97) rotate(-1.5deg)}to{transform:scale(1.08) rotate(2deg)}}.glass{background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1.5px solid var(--glass-border);border-radius:24px;box-shadow:var(--shadow)}.glass-sm{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--glass-border);border-radius:16px}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes textFlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes btnShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes xpFlow{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes bossGlow{0%,to{box-shadow:0 0 18px #f472b680}50%{box-shadow:0 0 36px #f472b6cc}}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(80px) rotate(360deg);opacity:0}}@keyframes xpFloat{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-60px) scale(1.2);opacity:0}}@keyframes floatUp{0%{transform:translateY(110vh);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-10vh);opacity:0}}.particle{position:fixed;color:#ffffff1f;font-family:var(--font-code);font-size:13px;animation:floatUp linear infinite;white-space:nowrap;-webkit-user-select:none;user-select:none;text-shadow:0 0 8px rgba(167,139,250,.5);pointer-events:none;z-index:1}.xp-float{position:fixed;font-family:var(--font-ui);font-weight:900;font-size:20px;color:var(--yellow);text-shadow:0 0 16px rgba(251,191,36,.8);pointer-events:none;z-index:9999;animation:xpFloat 1.6s ease forwards}.feedback-toast{position:fixed;bottom:-120px;left:50%;transform:translate(-50%);width:min(440px,90vw);padding:16px 22px;border-radius:18px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:9000;transition:bottom .35s cubic-bezier(.22,1,.36,1);border:1.5px solid transparent}.feedback-toast.show{bottom:24px}.feedback-toast.correct-toast{background:#34d3992e;border-color:#34d39973;box-shadow:0 8px 32px #34d39940}.feedback-toast.wrong-toast{background:#f8717126;border-color:#f8717166;box-shadow:0 8px 32px #f8717133}.fb-title{font-size:15px;font-weight:900;margin-bottom:4px}.fb-body{font-size:13px;color:#ffffffd9;line-height:1.5}span.kw{color:#93c5fd}span.str{color:#86efac}span.cmt{color:#64748b;font-style:italic}span.tag{color:#93c5fd}span.attr{color:#fcd34d}span.val{color:#86efac}.blank-slot{display:inline-block;background:#fbbf2426;border:2px dashed rgba(251,191,36,.6);border-radius:6px;padding:1px 10px;color:#fbbf24cc;font-style:italic;min-width:60px;text-align:center;transition:all .3s;font-family:var(--font-code)}.blank-slot.filled{background:#34d39926;border:2px solid rgba(52,211,153,.5);color:var(--green);font-style:normal}.blank-slot.wrong{background:#f871711f;border-color:#f8717180;color:var(--red)}.confetti-piece{position:absolute;width:10px;height:10px;border-radius:2px;animation:confettiFall 2s ease forwards}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#a78bfa66;border-radius:3px}
