body{color:#f5e6e8;background:#0f0f0f;margin:0;font-family:Inter,sans-serif}.container{max-width:1200px;margin:auto;padding:24px}h1{color:#ff4d6d;margin-bottom:20px}h2,h3{margin-bottom:10px}.card{background:#1a1a1a;border-radius:12px;margin-bottom:20px;padding:16px;box-shadow:0 0 10px #ff4d6d1a}button{color:#fff;cursor:pointer;background:#ff4d6d;border:none;border-radius:6px;margin-top:10px;margin-right:10px;padding:8px 14px}button:hover{opacity:.85}input{border:none;border-radius:5px;margin-left:10px;padding:5px}.row{flex-wrap:wrap;gap:20px;display:flex}svg{background:#111;border-radius:10px}.controls-row{gap:10px;margin-bottom:10px;display:flex}.progress{color:#aaa;margin-top:10px;font-size:14px}button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff4d6d,#d4af37);border:none;border-radius:8px;padding:8px 14px;transition:all .2s}button:hover{transform:scale(1.05)}button:disabled{opacity:.4;cursor:not-allowed}.video-container{border-radius:10px;margin-top:10px;overflow:hidden}.card p{color:#ddd;line-height:1.6}.card ul{padding-left:20px}.card li{margin-bottom:5px}:root{--bg:#0b1220;--bg-soft:#111b30;--card:#111b30b8;--card-border:#94a3b840;--text:#e5e7eb;--muted:#a5b4fc;--primary:#4f46e5;--primary-hover:#4338ca;--success:#10b981;--success-hover:#059669;--shadow:0 18px 45px #02061773}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at 15% -10%, #1e3a8a 0%, transparent 40%), radial-gradient(circle at 90% 10%, #0f766e 0%, transparent 35%), var(--bg);min-height:100vh;margin:0;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-shell{color:#e6edf3;background:radial-gradient(circle at top,#0b1220,#05070d);padding:24px;font-family:Inter,sans-serif}.card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border:1px solid #ffffff14;border-radius:18px;margin-bottom:20px;padding:20px}.hero h1{margin:.35rem 0 .55rem;font-size:clamp(1.9rem,2.6vw,2.8rem)}.hero p{color:#cbd5e1;max-width:72ch;margin:0}.eyebrow{color:#c7d2fe;letter-spacing:.03em;background:#4f46e52e;border:1px solid #818cf866;border-radius:999px;padding:.3rem .65rem;font-size:.8rem;display:inline-block}h2,h3{margin-top:0}.info-grid,.panel-grid{gap:1rem;display:grid}.info-grid{grid-template-columns:1.1fr 1fr}.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.viz-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.95fr);align-items:start}.info-grid p,.info-grid li{color:#cbd5e1;line-height:1.6}.video-container{aspect-ratio:16/9;border:1px solid #94a3b859;border-radius:12px;min-height:280px;overflow:hidden}.controls-row{flex-wrap:wrap;gap:.75rem;margin-bottom:.8rem;display:flex}.panel-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.step-pill{color:#bfdbfe;background:#3b82f626;border:1px solid #60a5fa66;border-radius:999px;padding:.35rem .8rem;font-size:.9rem}.btn{cursor:pointer;color:#fff;background:#ffffff14;border:none;border-radius:10px;padding:8px 14px;transition:all .2s}.btn:hover{background:#ffffff26}.btn-primary{background:linear-gradient(135deg,#ff4d6d,#d4af37)}.btn-success{background:linear-gradient(135deg,#0ff,#4facfe)}.progress-track{background:#94a3b840;border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#22d3ee,#4f46e5);border-radius:999px;height:100%;transition:width .22s}.viz-card,.step-card{overflow:hidden}.viz-card canvas,.viz-card svg,.viz-card img{max-width:100%;height:auto;display:block}.viz-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.8rem;display:flex}.viz-header h3{color:#e8edff;margin:0;font-size:1.6rem}.viz-chip{color:#bae6fd;white-space:nowrap;background:#082f4973;border:1px solid #38bdf873;border-radius:999px;padding:.25rem .7rem;font-size:.8rem}.viz-svg{background:linear-gradient(#020617,#020617);border-radius:14px;width:100%;height:420px;padding:12px;display:block}.viz-empty{color:#94a3b8;text-align:center;background:#0f172a73;border:1px dashed #94a3b873;border-radius:12px;place-items:center;min-height:280px;padding:1rem;display:grid}.grid-lines line{stroke:#94a3b82e}.grid-lines path{display:none}.axis path,.axis line{stroke:#cbd5e1b3}.axis text{fill:#cbd5e1;font-size:.78rem}.model-curve{fill:none;stroke:#fb7185;stroke-width:2.6px}.epsilon-line{fill:none;stroke:#94a3b8bf;stroke-width:1.6px;stroke-dasharray:6 6}.point{fill:#facc15}.sv{fill:#fb7185;stroke:#ffffff40;stroke-width:1.2px}@media (width<=920px){.info-grid,.panel-grid,.viz-grid{grid-template-columns:1fr}.video-container{min-height:220px}.panel-header,.viz-header{flex-direction:column;align-items:flex-start}}select{color:#fff;background:#1a1a1a;border:1px solid #444;border-radius:6px;margin-left:10px;padding:6px}.card p strong{color:#ff4d6d}.legend{flex-wrap:wrap;align-items:center;gap:18px;margin-top:12px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend .point{background:#facc15}.legend .sv{background:#fb7185}.legend span:first-child{color:#d4af37}.legend span:nth-child(2){color:#ff4d6d}.legend span:nth-child(3){color:#0ff}path{filter:drop-shadow(0 0 6px #0ff6)}.credits-section{text-align:center;padding:30px}.credits-section h2{margin-bottom:10px;font-size:26px}.credits-text{color:#9ca3af;max-width:600px;margin:0 auto 25px;font-size:14px;line-height:1.6}.team-grid{flex-wrap:wrap;justify-content:center;gap:28px;display:flex}.team-card{background:linear-gradient(145deg,#ffffff0d,#ffffff05);border:1px solid #ffffff14;border-radius:18px;width:150px;padding:18px;transition:all .3s}.team-card:hover{transform:translateY(-6px)scale(1.03);box-shadow:0 10px 30px #00000080}.team-card img{object-fit:cover;object-fit:cover;border:2px solid #d4af37;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;margin-bottom:12px;box-shadow:0 0 14px #d4af3766}.team-card p{width:170px;padding:20px;font-size:14px;font-weight:500}.role{color:#0ff;font-size:12px}.team-card p{color:#e6edf3;letter-spacing:.3px;width:100px;margin-top:8px;padding:20px;font-size:15px;font-weight:600;line-height:1.3}.nav-bar{justify-content:center;gap:12px;margin-bottom:20px;display:flex}.clean-team{text-align:center;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:50px;margin-top:40px;display:grid}.team-item{padding:10px 0;transition:all .3s}.team-item img{object-fit:cover;border-radius:50%;width:140px;height:140px;margin-bottom:15px;box-shadow:0 0 25px #ffd70040}.team-item h3{margin-bottom:8px;font-size:20px}.team-item p{opacity:.75;max-width:240px;margin:0 auto;font-size:15px;font-weight:700;line-height:1.5}.team-item:hover{transform:translateY(-6px)scale(1.04)}.prof-horizontal.clean{border-radius:20px;align-items:center;gap:30px;max-width:800px;margin:20px auto;padding:30px;display:flex}.prof-horizontal.clean:before{display:none}.prof-horizontal.clean img{object-fit:cover;border-radius:50%;flex-shrink:0;width:130px;height:130px;box-shadow:0 0 20px #ffd7004d}.prof-info{text-align:left;max-width:500px}.prof-info h3{margin-bottom:10px;font-size:22px}.prof-info p{opacity:.85;max-width:none;font-size:15px;font-weight:100;line-height:1.6}.card h1{margin-bottom:10px;font-size:32px}.card h2{margin-bottom:10px;font-size:22px}.card p{opacity:.85;line-height:1.6}.card ul{padding-left:20px;line-height:1.6}.step-block{border-left:3px solid #00ffc866;padding-left:15px}.resource-list{flex-direction:column;gap:12px;margin-top:10px;display:flex}.resource-item{color:#fff;background:#ffffff0d;border-radius:12px;padding:12px 16px;text-decoration:none;transition:all .25s;display:block}.resource-item:hover{background:#ffffff1f;transform:translate(6px)}.resource-item.github{color:#000;background:linear-gradient(120deg,#00f5a0,#00d9f5);font-weight:600}.nav-bar{z-index:1000;gap:12px;display:flex;position:fixed;top:20px;right:30px}.nav-btn{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;padding:8px 14px;font-size:14px;text-decoration:none;transition:all .25s}.nav-btn:hover{background:#ffffff26;transform:translateY(-2px);box-shadow:0 0 15px #00ffc833}.nav-btn.active{color:#000;background:linear-gradient(120deg,#00f5a0,#00d9f5);font-weight:600}
