:root{--bg-primary: #010101;--bg-secondary: #0a0a0a;--bg-tertiary: #111111;--text-primary: #e8e3d5;--text-secondary: #999;--accent-teal: #a9ddd3;--accent-teal-dark: #8fcdbd;--accent-tan: #e8c48f;--accent-rose: #d39da9;--state-waiting: #4a4a4a;--state-active: #a9ddd3;--state-completed: #e8e3d5;--state-error: #d39da9;--glass-bg: rgba(10, 10, 10, .8);--glass-border: rgba(169, 221, 211, .3);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .6);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Monaco", "Inconsolata", monospace;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-size-3xl: 48px;--font-size-4xl: 64px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--spacing-4xl: 96px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--transition-fast: .15s ease;--transition-base: .3s ease;--transition-slow: .5s ease}@media(max-width:768px){:root{--font-size-4xl: 40px;--font-size-3xl: 32px;--font-size-2xl: 24px;--font-size-xl: 20px}}@media(max-width:480px){:root{--font-size-4xl: 32px;--font-size-3xl: 28px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;min-height:100vh;display:flex;flex-direction:column}main{flex:1}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg);font-weight:600}p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}a{color:var(--accent-teal);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-teal-dark)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.section{padding:var(--spacing-3xl) 0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--accent-teal),var(--accent-teal-dark));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-teal)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(8px)}60%{transform:translateY(4px)}}.animate-fade-in{animation:fadeIn .6s ease forwards}.animate-fade-in-delay-1{animation:fadeIn .6s ease .1s forwards;opacity:0}.animate-fade-in-delay-2{animation:fadeIn .6s ease .2s forwards;opacity:0}.animate-fade-in-delay-3{animation:fadeIn .6s ease .3s forwards;opacity:0}.glass-card{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:var(--spacing-md) 0;transition:all var(--transition-base)}.header.scrolled{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border)}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header-brand{display:flex;align-items:center;gap:var(--spacing-md)}.header-brand a{display:flex;align-items:center}.logo{height:32px;width:auto}.brand-divider{width:1px;height:24px;background:var(--glass-border)}.brand-name{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.tutorial-name{font-size:var(--font-size-md);font-weight:500;color:var(--text-secondary)}.nav-links{display:flex;list-style:none;gap:var(--spacing-xl)}.nav-links a{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;transition:color var(--transition-fast)}.nav-links a:hover{color:var(--text-primary)}.nav-links a.back-link{display:flex;align-items:center;gap:var(--spacing-xs)}.nav-links a.back-link svg{width:16px;height:16px}.footer{padding:var(--spacing-2xl) 0;background:var(--bg-primary);border-top:1px solid rgba(169,221,211,.1)}.footer-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.footer-logo{height:24px;width:auto;opacity:.6;transition:opacity var(--transition-fast)}.footer-logo:hover{opacity:1}.footer-links{display:flex;gap:var(--spacing-xl);align-items:center}.footer-links a{color:var(--text-secondary);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--spacing-xs);transition:color var(--transition-fast)}.footer-links a:hover{color:var(--text-primary)}.footer-links svg{width:16px;height:16px}.footer-copyright{font-size:var(--font-size-xs);color:var(--text-secondary);opacity:.6}@media(max-width:768px){.header{padding:0}.header-content{flex-direction:column;align-items:stretch;padding:0;gap:0}.header-brand{padding:var(--spacing-sm) var(--spacing-md);justify-content:center}.brand-divider,.brand-name,.tutorial-name{display:none}.header-content nav{border-top:1px solid var(--glass-border);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.header-content nav::-webkit-scrollbar{display:none}.nav-links{gap:0;padding:0 var(--spacing-sm);flex-wrap:nowrap;white-space:nowrap}.nav-links li{flex-shrink:0}.nav-links a{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);position:relative}.nav-links a.back-link{padding-left:var(--spacing-sm)}.nav-links a.back-link svg{width:14px;height:14px}.footer-content{flex-direction:column;gap:var(--spacing-lg);text-align:center}.footer-links{flex-wrap:wrap;justify-content:center}}.section-title{text-align:center;margin-bottom:var(--spacing-2xl)}.section-title h2{margin-bottom:var(--spacing-sm)}.section-title p{font-size:var(--font-size-md);max-width:650px;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent-teal),var(--accent-teal-dark));color:var(--bg-primary);box-shadow:0 4px 15px #a9ddd34d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #a9ddd366}.btn-outline{background:transparent;border:1px solid var(--glass-border);color:var(--text-primary)}.btn-outline:hover:not(:disabled){background:#a9ddd31a;border-color:var(--accent-teal)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--glass-border);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:#a9ddd31a;border-color:var(--accent-teal)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md)}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-lg);padding-top:calc(var(--spacing-3xl) + 80px);background:radial-gradient(ellipse at center top,rgba(169,221,211,.05) 0%,transparent 50%)}.hero-content{text-align:center;max-width:900px}.hero-badge{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:#a9ddd31a;border:1px solid rgba(169,221,211,.3);border-radius:20px;font-size:var(--font-size-sm);color:var(--accent-teal);margin-bottom:var(--spacing-lg)}.hero h1{margin-bottom:var(--spacing-lg);background:linear-gradient(135deg,var(--text-primary) 0%,var(--accent-teal) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-tagline{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-xl);max-width:700px;margin-left:auto;margin-right:auto}.hero-cta{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap;margin-bottom:var(--spacing-xl)}.hero-diagram{margin-top:var(--spacing-lg)}.dkg-mini-viz{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.dkg-participants-ring{position:relative;width:280px;height:280px}.dkg-participant{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-110px) rotate(calc(-1 * var(--angle)));transition:all .5s ease}.participant-dot{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg-tertiary);border:2px solid var(--glass-border);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);transition:all .5s ease}.dkg-participant.generating .participant-dot{border-color:var(--accent-teal);box-shadow:0 0 15px #a9ddd366;animation:pulse 1.5s ease-in-out infinite}.dkg-participant.sharing .participant-dot{border-color:var(--accent-tan);box-shadow:0 0 15px #e8c48f66}.dkg-participant.verifying .participant-dot{border-color:#8fcdbd;box-shadow:0 0 15px #8fcdbd66}.dkg-participant.complete .participant-dot{border-color:var(--accent-teal);background:#a9ddd333;box-shadow:0 0 20px #a9ddd380}.dkg-participant.threshold .participant-dot{border-color:var(--accent-teal);background:#a9ddd34d;box-shadow:0 0 20px #a9ddd399;transform:scale(1.1)}.dkg-participant.inactive .participant-dot{opacity:.3;border-color:var(--glass-border)}.dkg-center-key{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);transition:all .5s ease}.key-icon{font-size:2rem}.key-label{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary)}.dkg-center-key.complete .key-label,.dkg-center-key.threshold .key-label{color:var(--accent-teal);font-weight:600}.hero-dkg-hint{font-size:var(--font-size-sm);color:var(--text-secondary);padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);min-height:28px;transition:all .3s ease}.hero-course-link{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-bottom:var(--spacing-md)}.hero-course-link:hover{color:var(--accent-teal);background:#a9ddd314}.hero-course-arrow{font-size:var(--font-size-md);transition:transform var(--transition-fast)}.hero-course-link:hover .hero-course-arrow{transform:translate(-3px)}.next-in-series{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xl);padding:var(--spacing-xl);background:linear-gradient(135deg,#a9ddd30f,#e8c48f0a);border:1px solid rgba(169,221,211,.2);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl)}.next-in-series-content{flex:1}.next-in-series-label{display:inline-block;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--accent-tan);margin-bottom:var(--spacing-sm)}.next-in-series h3{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.next-in-series p{font-size:var(--font-size-base);color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-sm)}.next-in-series-status{display:inline-block;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:#99999926;color:var(--text-secondary);border:1px solid rgba(153,153,153,.3)}.next-in-series-link{flex-shrink:0;display:inline-flex;align-items:center;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:600;color:var(--accent-teal);border:1px solid rgba(169,221,211,.3);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)}.next-in-series-link:hover{background:#a9ddd31a;border-color:var(--accent-teal)}.concept-section{background:var(--bg-secondary)}.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.concept-card{padding:var(--spacing-xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--transition-base)}.concept-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0006}.concept-card.problem{border-top:3px solid var(--accent-rose)}.concept-card.solution{border-top:3px solid var(--accent-teal)}.concept-card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.concept-card-icon{font-size:1.5rem}.concept-card-description{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-md)}.concept-card-example{padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.example-label{display:inline-block;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-tan);margin-bottom:var(--spacing-xs)}.concept-parameters{margin-bottom:var(--spacing-2xl)}.concept-parameters h3{text-align:center;margin-bottom:var(--spacing-lg)}.params-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.param-card{padding:var(--spacing-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);text-align:center}.param-symbol{font-size:var(--font-size-3xl);font-weight:700;font-family:var(--font-mono);color:var(--accent-teal);margin-bottom:var(--spacing-sm)}.param-name{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.param-desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.param-relationship{text-align:center;padding:var(--spacing-lg);background:#a9ddd30d;border:1px solid rgba(169,221,211,.2);border-radius:var(--radius-lg)}.relationship-formula{display:block;font-family:var(--font-mono);font-size:var(--font-size-lg);font-weight:600;color:var(--accent-teal);margin-bottom:var(--spacing-sm)}.relationship-explain{font-size:var(--font-size-sm);color:var(--text-secondary)}.concept-applications h3{text-align:center;margin-bottom:var(--spacing-lg)}.applications-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.application-card{padding:var(--spacing-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);text-align:center;transition:all var(--transition-base)}.application-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #0000004d}.app-icon{font-size:2rem;display:block;margin-bottom:var(--spacing-sm)}.application-card h5{font-size:var(--font-size-base);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.application-card p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.math-section{padding:var(--spacing-3xl) 0}.math-block{margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.math-block-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.math-block-number{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-teal),var(--accent-teal-dark));color:var(--bg-primary);font-weight:700;font-size:var(--font-size-lg);flex-shrink:0}.math-block-header h3{margin:0}.math-block-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);align-items:center}.math-explanation p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-md)}.math-formula{padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-tertiary);border-left:3px solid var(--accent-teal);border-radius:0 var(--radius-md) var(--radius-md) 0;font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--accent-teal);margin:var(--spacing-md) 0;overflow-x:auto}.math-steps{padding-left:var(--spacing-lg);color:var(--text-secondary);line-height:1.8}.math-steps li{margin-bottom:var(--spacing-xs)}.frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 var(--spacing-xs)}.frac-num,.frac-den{font-size:.85em}.frac-line{width:100%;height:1px;background:var(--accent-teal);margin:2px 0}.frac-inline{color:var(--accent-teal)}.polynomial-example,.shamir-example,.lagrange-example,.vss-example{padding:var(--spacing-lg);background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--glass-border)}.poly-header,.shamir-header,.lagrange-header,.vss-header{font-size:var(--font-size-sm);font-weight:600;color:var(--accent-teal);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.5px}.poly-formula,.shamir-poly{font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--text-primary);margin-bottom:var(--spacing-md)}.highlight-secret{color:var(--accent-teal);font-weight:700;background:#a9ddd326;padding:2px 6px;border-radius:4px}.poly-points,.shamir-shares{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.poly-point,.share-item{padding:var(--spacing-xs) var(--spacing-sm);background:#a9ddd31a;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary)}.share-label{font-weight:600;color:var(--accent-teal)}.poly-note,.shamir-note,.vss-note{font-size:var(--font-size-sm);color:var(--accent-tan);font-style:italic}.lagrange-step{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm)}.step-label{font-weight:600;color:var(--text-primary);min-width:120px}.step-calc{font-family:var(--font-mono);color:var(--text-secondary)}.lagrange-result{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#a9ddd31a;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--text-primary);text-align:center}.pedersen-example{padding:var(--spacing-lg);background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--glass-border)}.pedersen-header{font-size:var(--font-size-sm);font-weight:600;color:var(--accent-teal);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.5px}.pedersen-round{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--glass-border)}.pedersen-round:last-of-type{border-bottom:none}.pedersen-round-label{display:block;font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.3px}.pedersen-polys{display:flex;flex-direction:column;gap:var(--spacing-xs)}.pedersen-poly{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);padding:4px 8px;background:#a9ddd30d;border-radius:var(--radius-sm)}.pedersen-who{font-weight:700;color:var(--accent-teal);margin-right:var(--spacing-xs)}.pedersen-share-table{display:grid;grid-template-columns:50px repeat(3,1fr);gap:2px;font-size:var(--font-size-xs);font-family:var(--font-mono)}.pedersen-share-row{display:contents}.pedersen-share-row>span{padding:4px 6px;background:#a9ddd30d;border-radius:2px;text-align:center;color:var(--text-secondary)}.pedersen-share-row.header>span{font-weight:600;color:var(--text-primary);background:transparent;font-size:10px}.pedersen-result{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#a9ddd31a;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);text-align:center;line-height:1.8}.pedersen-result-note{font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--accent-tan);font-style:italic}.vss-step{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm)}.vss-label{font-weight:600;color:var(--text-primary);min-width:140px}.vss-value{font-family:var(--font-mono);color:var(--text-secondary)}.steps-section{background:var(--bg-secondary)}.protocol-timeline{max-width:800px;margin:0 auto}.protocol-step{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.step-marker{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.step-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-teal),var(--accent-teal-dark));color:var(--bg-primary);font-weight:700;font-size:var(--font-size-base)}.step-line{width:2px;flex:1;background:linear-gradient(to bottom,var(--accent-teal),transparent);margin-top:var(--spacing-sm)}.step-content{flex:1;padding-bottom:var(--spacing-lg)}.step-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.step-header h4{margin:0}.step-badge{display:inline-flex;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.step-badge.round{background:#a9ddd326;color:var(--accent-teal)}.step-badge.broadcast{background:#e8c48f26;color:var(--accent-tan)}.step-badge.private{background:#8fcdbd26;color:#8fcdbd}.step-badge.verify{background:#a9ddd326;color:var(--accent-teal)}.step-badge.complaint{background:#d39da926;color:var(--accent-rose)}.step-badge.final{background:#a9ddd333;color:var(--accent-teal)}.step-content>p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-md)}.step-note{padding:var(--spacing-sm) var(--spacing-md);background:#e8c48f1a;border-left:3px solid var(--accent-tan);font-size:var(--font-size-sm);color:var(--text-secondary);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.step-note.success{background:#a9ddd31a;border-left-color:var(--accent-teal);color:var(--text-primary)}.step-detail-grid{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.step-detail-card{flex:1;min-width:180px;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--glass-border)}.step-detail-card.more{opacity:.6}.detail-participant{font-weight:600;color:var(--accent-teal);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.detail-formula{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.detail-formula .secret{color:var(--accent-teal);font-weight:600}.step-visual-commitments{margin-bottom:var(--spacing-md)}.commitment-row{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.commitment-sender{font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary);min-width:120px}.commitment-values{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.commitment-chip{padding:4px 10px;background:#e8c48f1a;border:1px solid rgba(232,196,143,.3);border-radius:12px;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--accent-tan)}.step-visual-shares{margin-bottom:var(--spacing-md)}.share-flow{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.share-sender{font-weight:700;font-size:var(--font-size-lg);color:var(--accent-teal);min-width:40px;text-align:center}.share-arrows{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.share-arrow{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm)}.arrow-line{color:var(--accent-teal);font-size:var(--font-size-lg)}.arrow-label{font-family:var(--font-mono);color:var(--text-secondary);font-size:var(--font-size-xs)}.share-receivers{display:flex;flex-direction:column;gap:var(--spacing-xs);font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary)}.verification-equation{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.eq-label{font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm)}.eq-formula{font-family:var(--font-mono);color:var(--accent-teal);font-size:var(--font-size-md)}.verification-outcomes{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.outcome{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.outcome.pass{background:#a9ddd31a;color:var(--accent-teal)}.outcome.fail{background:#d39da91a;color:var(--accent-rose)}.outcome-icon{font-size:var(--font-size-lg)}.disqualification-flow{margin-bottom:var(--spacing-md)}.dq-step{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--text-secondary)}.dq-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--glass-border);font-size:var(--font-size-xs);font-weight:600;color:var(--accent-rose);flex-shrink:0}.qualified-set{padding:var(--spacing-md);background:#a9ddd31a;border:1px solid rgba(169,221,211,.2);border-radius:var(--radius-md)}.qual-label{font-weight:600;color:var(--accent-teal);display:block;margin-bottom:var(--spacing-xs)}.qual-desc{font-size:var(--font-size-sm);color:var(--text-secondary)}.final-computation{margin-bottom:var(--spacing-md)}.final-formula{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm)}.final-label{font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary);min-width:160px}.final-eq{font-family:var(--font-mono);color:var(--accent-teal)}.simulation-section{padding:var(--spacing-3xl) 0}.sim-controls{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);align-items:flex-end;justify-content:center;padding:var(--spacing-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.control-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.control-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.control-slider{display:flex;align-items:center;gap:var(--spacing-sm)}.range-slider{-webkit-appearance:none;width:120px;height:6px;border-radius:3px;background:var(--bg-tertiary);outline:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-teal);cursor:pointer;box-shadow:0 2px 8px #a9ddd366}.control-value{font-family:var(--font-mono);font-weight:600;color:var(--accent-teal);min-width:20px;text-align:center}.actions-group{flex-direction:row;align-items:center;gap:var(--spacing-sm)}.sim-constraint{text-align:center;margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.constraint-valid{color:var(--accent-teal)}.constraint-invalid{color:var(--accent-rose)}.sim-layout{display:grid;grid-template-columns:1fr 380px;gap:var(--spacing-lg)}.sim-visualization{display:flex;flex-direction:column;gap:var(--spacing-lg)}.sim-phase-indicator{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md)}.phase-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;color:var(--text-secondary)}.phase-name{font-weight:600;color:var(--accent-teal)}.phase-progress{margin-left:auto;font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.sim-network{display:flex;justify-content:center;padding:var(--spacing-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.network-svg{width:320px;height:280px}.network-line{stroke:var(--glass-border);stroke-width:1;opacity:.3}.network-line.active{stroke:var(--accent-teal);opacity:.5;stroke-dasharray:4 4;animation:dashFlow 1s linear infinite}@keyframes dashFlow{to{stroke-dashoffset:-8}}.network-node .node-circle{fill:var(--bg-tertiary);stroke:var(--glass-border);stroke-width:2;transition:all .3s ease}.network-node.qualified .node-circle{fill:#a9ddd326;stroke:var(--accent-teal)}.network-node.byzantine .node-circle{fill:#e8c48f26;stroke:var(--accent-tan)}.network-node.disqualified .node-circle{fill:#d39da926;stroke:var(--accent-rose);opacity:.4}.node-text{fill:var(--text-primary);font-size:12px;font-weight:600;font-family:var(--font-family)}.node-badge{fill:var(--accent-tan);font-size:14px}.node-badge.disq{fill:var(--accent-rose)}.node-share{fill:var(--accent-teal);font-size:10px;font-family:var(--font-mono)}.center-key .key-circle{fill:var(--bg-tertiary);stroke:var(--glass-border);stroke-width:2;stroke-dasharray:4 4}.center-key.revealed .key-circle{fill:#a9ddd333;stroke:var(--accent-teal);stroke-dasharray:none}.key-text{fill:var(--text-secondary);font-size:11px;font-family:var(--font-mono)}.center-key.revealed .key-text{fill:var(--accent-teal);font-weight:600}.sim-participants-detail{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-md)}.detail-placeholder{text-align:center;color:var(--text-secondary);font-style:italic;padding:var(--spacing-lg)}.detail-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-sm)}.detail-card{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);border-left:3px solid var(--accent-teal)}.detail-card.byzantine{border-left-color:var(--accent-tan)}.detail-card.disqualified{border-left-color:var(--accent-rose);opacity:.5}.detail-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.detail-name{font-weight:600;color:var(--text-primary)}.detail-status{font-size:var(--font-size-xs);padding:2px 8px;border-radius:8px;font-weight:500}.detail-status.active{background:#a9ddd31a;color:var(--accent-teal)}.detail-status.byzantine{background:#e8c48f1a;color:var(--accent-tan)}.detail-status.disqualified{background:#d39da91a;color:var(--accent-rose)}.detail-status.qualified{background:#a9ddd333;color:var(--accent-teal)}.detail-row{display:flex;justify-content:space-between;font-size:var(--font-size-xs);padding:2px 0;color:var(--text-secondary)}.detail-row.highlight{color:var(--accent-teal);font-weight:600}.detail-key{color:var(--text-secondary)}.detail-val{font-weight:500;color:var(--text-primary)}.detail-val.mono{font-family:var(--font-mono);font-size:10px}.sim-log-panel{display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden;max-height:700px}.log-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--glass-border)}.log-header h4{margin:0;font-size:var(--font-size-sm)}.log-entries{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.log-entry{display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:2px;border-radius:var(--radius-sm);font-size:11px;line-height:1.4;align-items:baseline}.log-entry.info{background:#a9ddd30d}.log-entry.success{background:#a9ddd31a}.log-entry.warning{background:#e8c48f1a}.log-entry.error{background:#d39da91a}.log-phase{font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.3px;padding:1px 6px;border-radius:4px;background:#ffffff0d;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.log-actor{font-weight:600;color:var(--accent-teal);white-space:nowrap;flex-shrink:0}.log-entry.warning .log-actor{color:var(--accent-tan)}.log-entry.error .log-actor{color:var(--accent-rose)}.log-message{color:var(--text-secondary)}.reading-section{background:var(--bg-secondary)}.further-reading{padding:var(--spacing-xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.further-reading h3{margin-bottom:var(--spacing-sm);color:var(--text-primary)}.further-reading>p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.reading-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.reading-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid transparent;border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-base)}.reading-item:hover{border-color:var(--accent-teal);background:#a9ddd30d;transform:translate(4px)}.reading-icon{font-size:1.5rem;flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#a9ddd31a;border-radius:var(--radius-md)}.reading-content{display:flex;flex-direction:column;gap:4px}.reading-title{font-weight:600;color:var(--text-primary);font-size:var(--font-size-base)}.reading-item:hover .reading-title{color:var(--accent-teal)}.reading-author{font-size:var(--font-size-sm);color:var(--accent-tan)}.reading-desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #a9ddd366}50%{opacity:.8;box-shadow:0 0 0 10px #a9ddd300}}@media(max-width:1200px){.sim-layout{grid-template-columns:1fr}.sim-log-panel{max-height:400px}}@media(max-width:900px){.concept-grid,.params-grid{grid-template-columns:1fr}.applications-grid{grid-template-columns:repeat(2,1fr)}.math-block-content{grid-template-columns:1fr}.final-formula{flex-direction:column;gap:var(--spacing-xs);align-items:flex-start}.final-label{min-width:auto}}@media(max-width:768px){.container{padding:0 var(--spacing-md)}.section{padding:var(--spacing-2xl) 0}.hero{padding:var(--spacing-xl) var(--spacing-md);padding-top:calc(var(--spacing-2xl) + 70px);min-height:auto}.hero-tagline{font-size:var(--font-size-base)}.dkg-participants-ring{width:220px;height:220px}.dkg-participant{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-85px) rotate(calc(-1 * var(--angle)))}.participant-dot{width:36px;height:36px;font-size:var(--font-size-xs)}.hero-cta .btn{width:100%}.applications-grid{grid-template-columns:1fr}.concept-card{padding:var(--spacing-lg)}.math-block{padding:var(--spacing-md)}.math-formula{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);overflow-x:auto;-webkit-overflow-scrolling:touch}.polynomial-example,.shamir-example,.lagrange-example,.vss-example,.pedersen-example{padding:var(--spacing-md)}.vss-step{flex-direction:column;gap:var(--spacing-xs)}.vss-label{min-width:auto}.pedersen-share-table{font-size:10px}.pedersen-share-table>.pedersen-share-row>span{padding:3px 4px}.protocol-step{gap:var(--spacing-md)}.step-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.step-detail-grid{flex-direction:column}.step-detail-card{min-width:auto}.commitment-row{flex-direction:column;gap:var(--spacing-xs)}.commitment-sender{min-width:auto}.verification-equation{flex-direction:column;gap:var(--spacing-xs);align-items:flex-start}.eq-formula{font-size:var(--font-size-sm);overflow-x:auto;width:100%}.verification-outcomes{flex-direction:column}.sim-controls{flex-direction:column;align-items:stretch;padding:var(--spacing-md);gap:var(--spacing-md)}.control-slider{width:100%}.range-slider{width:100%;flex:1}.actions-group{flex-wrap:wrap;justify-content:center}.actions-group .btn{flex:1;min-width:80px}.network-svg{width:100%;height:auto}.sim-phase-indicator{flex-wrap:wrap;gap:var(--spacing-xs)}.phase-progress{margin-left:0}.detail-cards{grid-template-columns:1fr}.detail-val.mono{word-break:break-all}.log-entry{flex-wrap:wrap}.next-in-series{flex-direction:column;gap:var(--spacing-md);text-align:center}.next-in-series-link{width:100%;justify-content:center}.reading-item{flex-direction:column;gap:var(--spacing-sm)}.reading-icon{width:36px;height:36px;font-size:1.25rem}}@media(max-width:480px){.hero h1{font-size:var(--font-size-2xl)}.hero-badge{font-size:var(--font-size-xs)}.dkg-participants-ring{width:190px;height:190px}.dkg-participant{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-72px) rotate(calc(-1 * var(--angle)))}.participant-dot{width:30px;height:30px;font-size:10px}.key-icon{font-size:1.5rem}.key-label{font-size:10px}.math-block-header{gap:var(--spacing-sm)}.math-block-number{width:32px;height:32px;font-size:var(--font-size-base)}.math-block-header h3{font-size:var(--font-size-md)}.math-steps{padding-left:var(--spacing-md);font-size:var(--font-size-sm)}.poly-points,.shamir-shares{flex-direction:column}.lagrange-step{flex-direction:column;gap:var(--spacing-xs)}.step-label{min-width:auto}.lagrange-result{font-size:var(--font-size-sm)}.share-flow{flex-direction:column;text-align:center}.share-sender{min-width:auto}.share-arrows{align-items:center}.share-receivers{flex-direction:row;gap:var(--spacing-md);justify-content:center}.param-symbol{font-size:var(--font-size-2xl)}.param-relationship{padding:var(--spacing-md)}.relationship-formula{font-size:var(--font-size-base);word-break:break-word}.sim-network,.sim-participants-detail{padding:var(--spacing-sm)}.detail-card{padding:var(--spacing-xs) var(--spacing-sm)}.log-entries{max-height:250px}.log-phase{font-size:9px;padding:1px 4px}.log-actor,.log-message{font-size:10px}}
