.sdc-wrap{position:relative;display:flex;flex-direction:column;gap:16px;padding:16px;font-family:var(--font-sans)}.sdc-progress-bar{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}.sdc-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}.sdc-counter{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono)}.sdc-scene{perspective:1200px;cursor:pointer;user-select:none}.sdc-card{width:100%;display:grid;position:relative;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.4,0,.2,1);border-radius:var(--radius-xl)}.sdc-card.flipped{transform:rotateY(180deg)}.sdc-face{grid-area:1/1;backface-visibility:hidden;border-radius:var(--radius-xl);border:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column}.sdc-back{transform:rotateY(180deg)}.sdc-front{background:var(--surface)}.sdc-img-wrap{flex-shrink:0;width:100%;max-height:360px;overflow:hidden}.sdc-card-img{width:100%;height:100%;max-height:360px;object-fit:cover;object-position:center;display:block}.sdc-front-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center}.sdc-term{font-size:var(--text-lg);font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.4}.sdc-phonetic{font-size:var(--text-base);color:var(--text-muted);font-family:var(--font-mono)}.sdc-audio-btn{background:var(--accent-light);color:var(--accent);border:none;border-radius:20px;padding:5px 14px;font-size:var(--text-xs);font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:background .15s}.sdc-audio-btn:hover{background:var(--accent);color:#fff}.sdc-audio-btn.playing,.sdc-audio-btn:disabled{opacity:.6;cursor:not-allowed}.sdc-hint{font-size:var(--text-xs);color:var(--text-dim);margin-top:4px}.sdc-back{background:var(--accent)}.sdc-back .sdc-img-wrap{opacity:.2}.sdc-back-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center}.sdc-answer{font-size:var(--text-xl);font-weight:600;color:#fff;line-height:1.4}.sdc-term-small{font-size:var(--text-sm);color:hsla(0,0%,100%,.7)}.sdc-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.sdc-nav-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);font-weight:600;font-family:var(--font-sans);padding:9px 20px;cursor:pointer;transition:all .15s}.sdc-nav-btn:hover:not(:disabled){background:var(--border);color:var(--text)}.sdc-nav-btn:disabled{opacity:.3;cursor:not-allowed}.sdc-nav-next{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.sdc-nav-next:hover:not(:disabled){background:var(--accent);color:#fff}.sdc-nav-finish{background:var(--green-light);color:var(--green);border-color:var(--green)}.sdc-nav-finish:hover:not(:disabled){background:var(--green);color:#fff}.sdc-complete{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;text-align:center}.sdc-complete-icon{font-size:48px}.sdc-complete-title{font-size:var(--text-2xl);font-weight:700;color:var(--text)}.sdc-complete-sub{font-size:var(--text-sm);color:var(--text-muted);max-width:360px}.sdc-complete-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}.sdc-btn-primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-lg);padding:10px 24px;font-size:var(--text-base);font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:background .15s}.sdc-btn-primary:hover{background:var(--accent-hover)}.sdc-xp-pop{position:absolute;top:20px;right:20px;background:var(--amber);color:#fff;font-size:var(--text-sm);font-weight:700;padding:6px 14px;border-radius:20px;animation:sdc-xp-in .4s ease,sdc-xp-out .4s ease 2.6s forwards;pointer-events:none}@keyframes sdc-xp-in{0%{opacity:0;transform:translateY(-10px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sdc-xp-out{to{opacity:0;transform:translateY(-10px) scale(.8)}}.activity-card{position:relative;background:var(--spark-surface);border:1px solid var(--spark-border);border-radius:var(--radius-xl);overflow:visible;box-shadow:var(--shadow-card);max-width:760px;margin:0 auto}.activity-header{padding:20px 24px 16px;border-bottom:1px solid var(--spark-border)}.activity-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.activity-title{font-size:18px;font-weight:700;color:#e8e6f0}.xp-badge{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3);border-radius:20px;padding:4px 12px;font-size:13px;font-weight:600}.score-bar{height:4px;background:var(--spark-border);border-radius:2px;overflow:hidden}.score-fill{height:100%;background:var(--spark-purple);border-radius:2px;transition:width 1s ease}.h5p-container{min-height:300px;overflow:hidden;max-width:100%}.error-state,.loading-state,.ready-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;color:#7c8db0;gap:12px}.loading-overlay{position:absolute;inset:0;z-index:5;background:var(--spark-surface);border-radius:var(--radius-xl);min-height:300px}.h5p-embed{width:100%}.spinner{width:32px;height:32px;border:3px solid var(--spark-border);border-top-color:var(--spark-purple);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.completion-banner{display:flex;align-items:center;gap:10px;padding:14px 24px;background:rgba(16,185,129,.1);border-top:1px solid rgba(16,185,129,.2);color:#10b981;font-weight:600}.completion-icon{font-size:20px}.completion-score{margin-left:auto;font-size:20px;font-weight:800}.xp-pop{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--spark-purple);color:#fff;font-size:28px;font-weight:800;padding:16px 32px;border-radius:var(--radius-lg);animation:xpPop 3s ease forwards;pointer-events:none;z-index:100}@keyframes xpPop{0%{opacity:0;transform:translate(-50%,-30%)}20%{opacity:1;transform:translate(-50%,-50%)}80%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-70%)}}