:root{--color-react:#8b5cf6;--color-hooks:#ec4899;--color-node:#10b981;--color-database:#06b6d4;--color-testing:#f97316;--color-networking:#f59e0b;--color-fullstack:#3b82f6;--sidebar-width:240px;--page-bg:#f8f6ff}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f6ff;background:var(--page-bg);font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.page-content,.page-layout{min-height:100vh}.page-content{background:#f8f6ff;background:var(--page-bg);margin-left:240px;margin-left:var(--sidebar-width);padding:2.5rem}.page-header{border-bottom:2px solid #e9e5ff;gap:16px;margin-bottom:2rem;padding-bottom:1.5rem}.page-header,.page-header-icon{align-items:center;display:flex}.page-header-icon{border-radius:16px;flex-shrink:0;height:52px;justify-content:center;width:52px}.page-title{color:#1a1a2e;font-size:2rem;font-weight:900;line-height:1;margin:0 0 4px}.page-desc{color:#6b7280;font-size:.95rem;font-weight:600;margin:0}.card-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}@media (max-width:768px){.sidebar{transform:translateX(-100%);transition:transform .3s ease}.sidebar.mobile-open{transform:translateX(0)}.page-content{margin-left:0!important;padding:70px 1.25rem 2rem}.sidebar-toggle-btn{display:flex}}[data-theme=dark]{--page-bg:#0f0f1a}[data-theme=dark] .page-content,[data-theme=dark] body{background:#0f0f1a}[data-theme=dark] .page-title{color:#e0e0f0}[data-theme=dark] .page-desc{color:#7070a0}[data-theme=dark] .page-header{border-bottom-color:#2d2d4e}[data-theme=dark] .dark-card{background:#1a1a2e;border-color:#2d2d4e;box-shadow:4px 4px 0 #2d2d4e}[data-theme=dark] .dark-card:hover{box-shadow:6px 6px 0 #8b5cf6;box-shadow:6px 6px 0 var(--card-color,#8b5cf6)}[data-theme=dark] .card-title{color:#e0e0f0}[data-theme=dark] .card-subtitle{color:#7070a0}[data-theme=dark] .card-badge{background:#2d2d4e}[data-theme=dark] .md-page{background:#0f0f1a}[data-theme=dark] .md-topbar{background:#0f0f1af2;border-bottom-color:#2d2d4e}[data-theme=dark] .md-hero-title{background:#1a1a2e}[data-theme=dark] .md-content h1,[data-theme=dark] .md-content h2,[data-theme=dark] .md-hero-h1{border-bottom-color:#2d2d4e;color:#e0e0f0}[data-theme=dark] .md-content h3{color:#c0c0e0}[data-theme=dark] .md-content li,[data-theme=dark] .md-content p{color:#c0c0d0}[data-theme=dark] .md-content strong{color:#e0e0f0}[data-theme=dark] .md-content hr{border-top-color:#2d2d4e}[data-theme=dark] .md-content blockquote{background:#1a1a2e;color:#bb86fc}[data-theme=dark] .inline-code{background:#2d2d4e;border-color:#3d3d6e;color:#bb86fc}[data-theme=dark] .markdown-table{border-color:#2d2d4e}[data-theme=dark] .markdown-table th{background:#1a1a2e;color:#bb86fc}[data-theme=dark] .markdown-table tr:nth-child(2n) td{background:#1a1a2e}[data-theme=dark] .markdown-table td{border-top-color:#2d2d4e;color:#c0c0d0}[data-theme=dark] .mufasa-container{background:linear-gradient(270deg,#1a0612,#0a1410,#10081a,#1a0612)}[data-theme=dark] .mufasa-heading{color:#e0e0f0}[data-theme=dark] .mufasa-subtitle{color:#9090b0}[data-theme=dark] .topic-chip{background:#1a1a2ee6;border-color:#8b5cf64d;color:#9090b0}[data-theme=dark] .stat-pill{background:#1a1a2ee6;border-color:#8b5cf64d;color:#e0e0f0}[data-theme=dark] .mufasa-card{background:#1a1a2ee6;border-color:#2d2d4e}[data-theme=dark] .mufasa-card h2{color:#e0e0f0}[data-theme=dark] .mufasa-card p{color:#9090b0}[data-theme=dark] .search-input{background:#1a1a2e;border-color:#2d2d4e;box-shadow:4px 4px 0 #2d2d4e;color:#e0e0f0}[data-theme=dark] .search-input:focus{border-color:#8b5cf6}[data-theme=dark] .hint-chip{background:#1a1a2e;border-color:#2d2d4e}[data-theme=dark] .hints-label,[data-theme=dark] .search-count{color:#7070a0}[data-theme=dark] .portfolio-content{background:#0f0f1a}[data-theme=dark] .about-card,[data-theme=dark] .portfolio-hero,[data-theme=dark] .skill-card{background:#1a1a2e;border-color:#2d2d4e;box-shadow:5px 5px 0 #2d2d4e}[data-theme=dark] .portfolio-name,[data-theme=dark] .section-heading,[data-theme=dark] .skill-label{color:#e0e0f0}[data-theme=dark] .about-card p,[data-theme=dark] .portfolio-bio{color:#9090b0}[data-theme=dark] .about-card strong{color:#e0e0f0}[data-theme=dark] .section-heading{border-bottom-color:#2d2d4e}[data-theme=dark] .todo-card{background:#1a1a2e;border-color:#2d2d4e;box-shadow:5px 5px 0 #2d2d4e}[data-theme=dark] .todo-input-section input,[data-theme=dark] .todo-item{background:#0f0f1a;border-color:#2d2d4e;color:#e0e0f0}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sidebar{background:#1a1a2e;border-right:2px solid #2d2d4e;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:240px;z-index:1000}.sidebar-header{border-bottom:1.5px solid #2d2d4e;justify-content:space-between;padding:20px 16px}.sidebar-brand,.sidebar-header{align-items:center;display:flex}.sidebar-brand{gap:10px}.sidebar-logo{align-items:center;border-radius:10px;box-shadow:0 2px 10px #ec489973;color:#fff;display:flex;font-family:Nunito,sans-serif;font-size:16px;height:34px;justify-content:center;width:34px}.sidebar-logo,.sidebar-name{background:linear-gradient(135deg,#ec4899,#8b5cf6);font-weight:900}.sidebar-name{-webkit-text-fill-color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;letter-spacing:.5px}.close-btn{align-items:center;background:#ffffff0d;border:1.5px solid #2d2d4e;border-radius:8px;color:#7070a0;cursor:pointer;display:flex;padding:6px;transition:all .2s}.close-btn:hover{background:#ffffff1a;color:#f2e9e4}.sidebar-toggle-btn{align-items:center;background:#1a1a2e;border:2px solid #ec4899;border-radius:10px;box-shadow:0 2px 12px #ec48994d;color:#ec4899;cursor:pointer;display:flex;left:16px;padding:8px 10px;position:fixed;top:16px;transition:all .2s;z-index:1100}.sidebar-toggle-btn:hover{background:#ec4899;color:#fff}.sidebar-menu{flex:1 1;list-style:none;margin:0;overflow-y:auto;padding:12px 8px}.sidebar-menu li{align-items:center;border:1.5px solid #0000;border-radius:12px;color:#7070a0;cursor:pointer;display:flex;font-size:.92rem;font-weight:700;gap:12px;margin-bottom:2px;padding:11px 14px;transition:all .18s ease}.sidebar-menu li:hover{background:#8b5cf61f;border-color:#8b5cf633;color:#d0d0f0}.sidebar-menu li.active{background:linear-gradient(135deg,#ec489926,#8b5cf626);border-color:#ec489959;color:#ec4899}.sidebar-menu li.active .menu-icon{color:#ec4899}.menu-icon{color:inherit;flex-shrink:0}.sidebar-streak{align-items:center;border-top:1.5px solid #2d2d4e;display:flex;gap:6px;padding:8px 16px}.streak-icon,.streak-text{color:#f97316}.streak-text{font-size:.78rem;font-weight:800}.sidebar-progress{border-top:1.5px solid #2d2d4e;padding:12px 16px}.progress-label{color:#5a5a8a;display:flex;font-size:.75rem;font-weight:700;justify-content:space-between;margin-bottom:6px}.progress-count{color:#ec4899}.progress-track{background:#2d2d4e;border-radius:10px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#ec4899,#8b5cf6);border-radius:10px;height:100%;min-width:4px;transition:width .4s ease}.sidebar-footer{border-top:1.5px solid #2d2d4e;color:#4a4a6a;font-size:.8rem;font-weight:600;justify-content:space-between;padding:12px 16px}.sidebar-footer,.theme-toggle{align-items:center;display:flex}.theme-toggle{background:#ffffff0d;border:1.5px solid #2d2d4e;border-radius:8px;color:#7070a0;cursor:pointer;padding:5px;transition:all .2s}.theme-toggle:hover{background:#ec489926;border-color:#ec489966;color:#ec4899}.card-header-row{align-items:center;display:flex;gap:8px;margin-bottom:2px}.card-read-check{background:#e8faf4;border:1.5px solid #b8f0da;border-radius:20px;color:#10b981;font-size:.68rem;font-weight:800;letter-spacing:.5px;padding:3px 9px;text-transform:uppercase}.dark-card.is-read{border-color:#10b98130;box-shadow:4px 4px 0 #10b98120}.dark-card.is-read .card-top-bar{background:#10b981}.dark-card{background:#fff;border:2.5px solid #e8e3ff;border-radius:16px;box-shadow:4px 4px 0 #e8e3ff;cursor:pointer;overflow:hidden;padding:1.4rem 1.5rem 2.8rem;position:relative;transition:all .2s ease}.card-top-bar{background:#8b5cf6;background:var(--card-color,#8b5cf6);border-radius:16px 16px 0 0;height:4px;left:0;position:absolute;right:0;top:0}.dark-card:hover{border-color:#8b5cf6;border-color:var(--card-color,#8b5cf6);box-shadow:6px 6px 0 #8b5cf6;box-shadow:6px 6px 0 var(--card-color,#8b5cf6);transform:translateY(-5px)}.card-badge{background:#f3eeff;border:1.5px solid #ddd5ff;border-radius:20px;color:#8b5cf6;color:var(--card-color,#8b5cf6);display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.8px;margin-bottom:10px;padding:3px 10px;text-transform:uppercase}.card-title{color:#1a1a2e;font-size:1.05rem;font-weight:800;line-height:1.3;margin:0 0 6px}.card-subtitle{color:#6b7280;font-size:.82rem;font-weight:600;line-height:1.4;margin:0}.card-arrow{bottom:1.2rem;color:#d1d5db;font-size:1.1rem;font-weight:700;position:absolute;right:1.5rem;transition:all .2s ease}.dark-card:hover .card-arrow{color:#8b5cf6;color:var(--card-color,#8b5cf6);transform:translateX(5px)}.md-page{background:#fff;font-family:Nunito,sans-serif;min-height:100vh}.md-topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border-bottom:3px solid #f3f0ff;gap:16px;padding:12px 2.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.md-back-btn,.md-topbar{align-items:center;display:flex}.md-back-btn{background:#f8f6ff;border:2px solid #e5e0ff;border-radius:10px;color:#8b5cf6;color:var(--btn-color,#8b5cf6);cursor:pointer;font-family:Nunito,sans-serif;font-size:.85rem;font-weight:800;gap:6px;padding:7px 14px;transition:all .18s ease;white-space:nowrap}.md-back-btn:hover{background:#8b5cf6;background:var(--btn-color,#8b5cf6);border-color:#8b5cf6;border-color:var(--btn-color,#8b5cf6);color:#fff;transform:translateX(-2px)}.md-breadcrumb{align-items:center;display:flex;font-size:.88rem;font-weight:700;gap:8px;overflow:hidden}.bc-cat{font-weight:800}.bc-sep{color:#d1d5db}.bc-file{color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bc-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.md-topbar-right{flex-shrink:0;gap:10px;margin-left:auto}.md-read-time,.md-topbar-right{align-items:center;display:flex}.md-read-time{color:#9090b0;font-size:.76rem;font-weight:700;gap:4px;white-space:nowrap}.md-note-btn{align-items:center;background:#f8f6ff;border:1.5px solid #e9e5ff;border-radius:8px;color:#9090b0;cursor:pointer;display:flex;padding:5px 7px;position:relative;transition:all .18s}.md-note-btn.active,.md-note-btn:hover{background:#ede9ff;border-color:#8b5cf6}.md-note-dot{border:1.5px solid #fff;border-radius:50%;height:7px;position:absolute;right:-3px;top:-3px;width:7px}.md-sticky-panel{animation:slideDown .2s ease;background:#fffdf0;border-bottom:2px solid #fef3c7;border-left:4px solid #f59e0b;margin:0 auto;max-width:820px;padding:1rem 1.5rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.md-sticky-label{font-size:.76rem;font-weight:800;letter-spacing:.5px;margin:0 0 8px}.md-sticky-textarea{background:#fffdf0;border:1.5px solid #fde68a;border-radius:10px;box-sizing:border-box;color:#374151;font-family:Nunito,sans-serif;font-size:.86rem;font-weight:600;outline:none;padding:10px 12px;resize:vertical;transition:border-color .18s;width:100%}.md-sticky-textarea:focus{border-color:#f59e0b}.md-body{margin:0 auto;max-width:820px;padding:3rem 2.5rem 5rem}.md-hero-title{background:#f9f8ff;border-left:5px solid #8b5cf6;border-radius:0 16px 16px 0;margin-bottom:2.5rem;padding:1.5rem 2rem}.md-hero-tag{font-size:.75rem;font-weight:800;letter-spacing:1px;margin:0 0 8px;text-transform:uppercase}.md-hero-h1{color:#1a1a2e;font-size:2.4rem;font-weight:900;letter-spacing:-.5px;line-height:1.15;margin:0}.md-loading{color:#9ca3af;font-size:1.1rem;font-weight:700;padding:4rem;text-align:center}.md-content h1,.md-content h2{border-bottom:2px solid #f3f0ff;color:#1a1a2e;font-size:1.45rem;font-weight:800;margin:2rem 0 .75rem;padding-bottom:.4rem}.md-content h3{color:#374151;font-size:1.15rem;font-weight:800;margin:1.5rem 0 .5rem}.md-content p{color:#374151;font-size:1rem;font-weight:500;line-height:1.85;margin-bottom:1rem}.md-content ol,.md-content ul{margin-bottom:1rem;padding-left:1.5rem}.md-content li{color:#374151;font-weight:500;line-height:1.8;margin-bottom:4px}.md-content strong{color:#1a1a2e;font-weight:800}.md-content hr{border:none;border-top:2px solid #f3f0ff;margin:1.5rem 0}.md-content blockquote{background:#f8f6ff;border-left:4px solid #8b5cf6;border-radius:0 12px 12px 0;color:#5b21b6;font-weight:600;margin:1.5rem 0;padding:1rem 1.25rem}.inline-code{background:#f3f0ff;border:1px solid #e5e0ff;border-radius:6px;color:#7c3aed;font-family:Courier New,Consolas,monospace;font-size:.87em;font-weight:700;padding:2px 8px}.markdown-table{border:2px solid #e9e5ff;border-collapse:collapse;border-radius:12px;margin:1.5rem 0;overflow:hidden;width:100%}.markdown-table td,.markdown-table th{border-top:1px solid #e9e5ff;font-size:.9rem;padding:10px 16px;text-align:left}.markdown-table th{background:#f3f0ff;color:#5b21b6;font-size:.82rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.markdown-table tr:nth-child(2n) td{background:#faf9ff}.markdown-table td{color:#374151;font-weight:500}@keyframes gradient-move{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.mufasa-container{animation:gradient-move 18s ease infinite;background:linear-gradient(270deg,#fde8f0,#e6f8f4,#ede8ff,#fde8f0);background-size:400% 400%;color:#1a1a2e;font-family:Nunito,sans-serif;margin-left:240px;min-height:100vh;padding:60px 2.5rem 4rem}.mufasa-wrapper{margin:0 auto;max-width:1100px}.mufasa-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2.5rem}.topic-chip{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffbf;border:2px solid #8b5cf640;border-radius:20px;color:#5b21b6;font-size:.85rem;font-weight:700;padding:6px 16px}.mufasa-hero{padding-bottom:3rem;text-align:center}.mufasa-heading{color:#1a1a2e;font-size:4.5rem;font-weight:900;letter-spacing:-2px;line-height:1.05;margin:0 0 1.2rem}.heading-gradient{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#ec4899,#8b5cf6);-webkit-background-clip:text;background-clip:text}.mufasa-subtitle{color:#4b5563;font-size:1.2rem;font-weight:500;line-height:1.7;margin:0 auto 2rem;max-width:520px}.mufasa-stats{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:2.5rem}.stat-pill{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffc;border:2.5px solid #8b5cf633;border-radius:40px;box-shadow:3px 3px 0 #8b5cf61f;color:#1a1a2e;display:flex;font-size:.9rem;font-weight:800;gap:6px;padding:9px 20px}.streak-chip{background:#f973161a;border-color:#f973164d;color:#ea580c}.mufasa-cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.cta-btn{align-items:center;background:linear-gradient(135deg,#ec4899,#8b5cf6);border:none;border-radius:14px;box-shadow:4px 4px 0 #8b5cf659;color:#fff;cursor:pointer;display:inline-flex;font-family:Nunito,sans-serif;font-size:1rem;font-weight:800;gap:8px;padding:14px 34px;transition:all .2s ease}.cta-btn:hover{box-shadow:6px 6px 0 #8b5cf673;transform:translateY(-3px)}.cta-btn-secondary{background:#ffffffd9;border:2.5px solid #8b5cf64d;box-shadow:3px 3px 0 #8b5cf626;color:#8b5cf6;padding:12px 22px}.cta-btn-secondary:hover{background:#fff;box-shadow:4px 4px 0 #8b5cf64d}.stat-pill-read{background:#10b9811a;border-color:#10b9814d;color:#059669}.mufasa-section{margin-bottom:2rem}.mufasa-section-title{align-items:center;color:#1a1a2e;display:flex;font-size:1.05rem;font-weight:900;gap:8px;margin:0 0 1rem}.mufasa-recent-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.mufasa-recent-card{align-items:center;background:#ffffffd9;border:2px solid #fffffff2;border-left:4px solid #8b5cf6;border-left:4px solid var(--recent-color,#8b5cf6);border-radius:14px;box-shadow:3px 3px 0 #0000000f;cursor:pointer;display:flex;gap:10px;padding:12px 14px;transition:all .2s}.mufasa-recent-card:hover{border-color:#8b5cf6;border-color:var(--recent-color,#8b5cf6);box-shadow:5px 5px 0 #8b5cf6;box-shadow:5px 5px 0 var(--recent-color,#8b5cf6);transform:translateY(-3px)}.recent-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.recent-title{color:#1a1a2e;flex:1 1;font-size:.86rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-arrow{color:#9090b0;flex-shrink:0}.spline-wrapper{background:#ffffff4d;border:2.5px solid #fffc;border-radius:20px;height:260px;margin:0 -1rem 3rem;overflow:hidden}.mufasa-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.mufasa-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffc;border:2.5px solid #fffffff2;border-radius:20px;box-shadow:5px 5px 0 #00000012;padding:2rem;transition:all .25s ease}.mufasa-card:hover{border-color:#8b5cf659;box-shadow:8px 8px 0 #8b5cf633;transform:translateY(-6px)}.feature-icon{align-items:center;border-radius:14px;display:flex;height:50px;justify-content:center;margin-bottom:1rem;width:50px}.mufasa-card h2{color:#1a1a2e;font-size:1.2rem;font-weight:800;margin:0 0 .6rem}.mufasa-card p{color:#4b5563;font-size:.92rem;font-weight:500;line-height:1.65;margin:0}@media (max-width:768px){.mufasa-container{margin-left:0;padding:80px 1.5rem 3rem}.mufasa-heading{font-size:2.8rem;letter-spacing:-1px}}[data-theme=dark] .mufasa-section-title{color:#e0e0f0}[data-theme=dark] .mufasa-recent-card{background:#1a1a2ee6;border-color:#2d2d4e;box-shadow:3px 3px 0 #0f0f1a}[data-theme=dark] .mufasa-recent-card:hover{box-shadow:5px 5px 0 #8b5cf6;box-shadow:5px 5px 0 var(--recent-color,#8b5cf6)}[data-theme=dark] .recent-title{color:#e0e0f0}[data-theme=dark] .recent-arrow{color:#5050a0}[data-theme=dark] .cta-btn-secondary{background:#1a1a2ee6;border-color:#8b5cf659}[data-theme=dark] .stat-pill-read{background:#10b98126;border-color:#10b98140}.search-input-wrap{align-items:center;display:flex;margin-bottom:1.5rem;max-width:680px;position:relative}.search-icon-inner{color:#9ca3af;left:16px;pointer-events:none;position:absolute}.search-input{background:#fff;border:2.5px solid #e8e3ff;border-radius:16px;box-shadow:4px 4px 0 #e8e3ff;color:#1a1a2e;font-family:Nunito,sans-serif;font-size:1rem;font-weight:600;outline:none;padding:14px 48px;transition:all .2s ease;width:100%}.search-input:focus{border-color:#8b5cf6;box-shadow:4px 4px 0 #8b5cf640}.search-input::placeholder{color:#9ca3af;font-weight:500}.search-clear{background:#f3f0ff;border:none;border-radius:6px;color:#8b5cf6;cursor:pointer;font-size:.8rem;font-weight:800;padding:4px 8px;position:absolute;right:14px;transition:all .18s}.search-clear:hover{background:#8b5cf6;color:#fff}.search-count{color:#6b7280;font-size:.9rem;font-weight:600;margin-bottom:1.2rem}.search-empty{color:#374151;padding:4rem 2rem;text-align:center}.search-empty p{font-size:1.05rem;font-weight:700;margin:0 0 8px}.search-empty-sub{color:#9ca3af!important;font-size:.9rem!important;font-weight:500!important}.search-hints{padding:1rem 0}.hints-label{color:#9ca3af;font-size:.85rem;font-weight:800;letter-spacing:.8px;margin-bottom:1rem;text-transform:uppercase}.hints-grid{display:flex;flex-wrap:wrap;gap:10px}.hint-chip{background:#f8f6ff;border:2px solid #e8e3ff;border-radius:20px;color:#8b5cf6;cursor:pointer;font-family:Nunito,sans-serif;font-size:.88rem;font-weight:700;padding:8px 18px;transition:all .18s ease}.hint-chip:hover{background:#8b5cf6;border-color:#8b5cf6;box-shadow:3px 3px 0 #8b5cf64d;color:#fff;transform:translateY(-2px)}.portfolio-content{background:var(--page-bg);margin-left:240px;max-width:calc(100vw - 240px);min-height:100vh;padding:2.5rem}.portfolio-hero{align-items:flex-start;background:#fff;border:2.5px solid #e8e3ff;border-radius:24px;box-shadow:6px 6px 0 #e8e3ff;display:flex;gap:2.5rem;margin-bottom:2rem;padding:2.5rem}.portfolio-avatar{align-items:center;background:linear-gradient(135deg,#ec4899,#8b5cf6);border-radius:24px;box-shadow:4px 4px 0 #8b5cf64d;color:#fff;display:flex;flex-shrink:0;font-size:2.5rem;font-weight:900;height:90px;justify-content:center;width:90px}.portfolio-name{color:#1a1a2e;font-size:2rem;font-weight:900;letter-spacing:-.5px;margin:0 0 6px}.portfolio-role{color:#8b5cf6;font-size:1rem;font-weight:700;margin:0 0 1rem}.portfolio-bio{color:#4b5563;font-size:.95rem;font-weight:500;line-height:1.75;margin:0 0 1.5rem;max-width:540px}.portfolio-links{display:flex;flex-wrap:wrap;gap:10px}.portfolio-link{align-items:center;background:#f8f6ff;border:2px solid #e8e3ff;border-radius:12px;color:#8b5cf6;display:inline-flex;font-family:Nunito,sans-serif;font-size:.88rem;font-weight:800;gap:7px;padding:9px 18px;text-decoration:none;transition:all .2s ease}.portfolio-link:hover{background:#8b5cf6;border-color:#8b5cf6;box-shadow:3px 3px 0 #8b5cf659;color:#fff;transform:translateY(-2px)}.portfolio-section{margin-bottom:2rem}.section-heading{border-bottom:2px solid #e9e5ff;color:#1a1a2e;font-size:1.3rem;font-weight:900;margin:0 0 1.2rem;padding-bottom:.6rem}.skills-grid{display:flex;flex-wrap:wrap;gap:12px}.skill-card{align-items:center;background:#fff;border:2.5px solid #e8e3ff;border-radius:14px;box-shadow:3px 3px 0 #e8e3ff;cursor:default;display:flex;gap:10px;padding:12px 20px;transition:all .2s ease}.skill-card:hover{border-color:#8b5cf6;border-color:var(--skill-color,#8b5cf6);box-shadow:4px 4px 0 #8b5cf6;box-shadow:4px 4px 0 var(--skill-color,#8b5cf6);transform:translateY(-3px)}.skill-icon{align-items:center;border-radius:10px;display:flex;height:36px;justify-content:center;width:36px}.skill-label{color:#1a1a2e;font-size:.92rem;font-weight:800}.about-card{background:#fff;border:2.5px solid #e8e3ff;border-radius:20px;box-shadow:5px 5px 0 #e8e3ff;display:flex;flex-direction:column;gap:1rem;padding:2rem}.about-card p{color:#374151;font-size:.97rem;font-weight:500;line-height:1.8;margin:0}.about-card strong{color:#1a1a2e;font-weight:800}@media (max-width:768px){.portfolio-content{margin-left:0;max-width:100vw;padding:80px 1.5rem 3rem}.portfolio-hero{flex-direction:column}}.fc-page{max-width:700px}.fc-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.fc-shuffle-btn{align-items:center;background:#fff;border:2.5px solid #e9e5ff;border-radius:12px;box-shadow:3px 3px 0 #e9e5ff;color:#8b5cf6;cursor:pointer;display:flex;flex-shrink:0;font-family:Nunito,sans-serif;font-size:.88rem;font-weight:800;gap:6px;padding:8px 16px;transition:all .18s}.fc-shuffle-btn:hover{background:#8b5cf6;box-shadow:3px 3px 0 #6d28d9;color:#fff;transform:translateY(-2px)}.fc-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1.25rem}.fc-cat-btn{background:#fff;border:2px solid #e9e5ff;border-radius:20px;color:#6b7280;cursor:pointer;font-family:Nunito,sans-serif;font-size:.82rem;font-weight:700;padding:6px 14px;transition:all .18s}.fc-cat-btn:hover{border-color:#8b5cf6;color:#8b5cf6}.fc-cat-btn.active{background:#8b5cf6;border-color:#8b5cf6;box-shadow:0 2px 8px #8b5cf659;color:#fff}.fc-progress-row{align-items:center;display:flex;gap:12px;margin-bottom:1.75rem}.fc-known,.fc-progress-label{color:#9090b0;font-size:.8rem;font-weight:800;white-space:nowrap}.fc-known{color:#10b981}.fc-progress-track{background:#e9e5ff;border-radius:99px;flex:1 1;height:8px;overflow:hidden}.fc-progress-fill{background:linear-gradient(90deg,#ec4899,#8b5cf6);border-radius:99px;height:100%;transition:width .35s ease}.fc-card{cursor:pointer;margin-bottom:1.5rem;perspective:1200px}.fc-card-inner{min-height:280px;position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,.2,.2,1);width:100%}.fc-flipped .fc-card-inner{transform:rotateY(180deg)}.fc-card-back,.fc-card-front{align-items:flex-start;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;border:2.5px solid #e9e5ff;border-radius:20px;box-shadow:5px 5px 0 #e9e5ff;box-sizing:border-box;display:flex;flex-direction:column;gap:1rem;min-height:280px;padding:2rem;position:absolute;width:100%}.fc-card-back{background:#f8f6ff;transform:rotateY(180deg)}.fc-cat-tag{border-radius:20px;font-size:.75rem;font-weight:800;letter-spacing:.5px;padding:4px 10px}.fc-question{color:#1a1a2e;flex:1 1;font-size:1.35rem;font-weight:800;line-height:1.4;margin:0}.fc-answer{color:#2d2d4e;flex:1 1;font-size:1.05rem;font-weight:600;line-height:1.6;margin:0}.fc-hint{color:#aaa;font-size:.78rem;font-weight:600;margin-top:auto}.fc-actions{display:flex;gap:12px}.fc-btn{align-items:center;border:2.5px solid;border-radius:14px;cursor:pointer;display:flex;flex:1 1;font-family:Nunito,sans-serif;font-size:.95rem;font-weight:800;gap:8px;justify-content:center;padding:14px;transition:all .18s}.fc-btn-skip{background:#fff;border-color:#fca5a5;color:#ef4444}.fc-btn-skip:hover{background:#fef2f2;box-shadow:3px 3px 0 #fca5a5;transform:translateY(-2px)}.fc-btn-know{background:#10b981;border-color:#10b981;color:#fff}.fc-btn-know:hover{background:#059669;box-shadow:3px 3px 0 #047857;transform:translateY(-2px)}.fc-done{background:#fff;border:2.5px solid #e9e5ff;border-radius:20px;box-shadow:5px 5px 0 #e9e5ff;padding:3rem 2rem;text-align:center}.fc-done-emoji{font-size:3.5rem;margin-bottom:1rem}.fc-done h2{color:#1a1a2e;font-size:1.6rem;font-weight:900;margin:0 0 8px}.fc-done p{color:#6b7280;font-weight:600;margin-bottom:1.5rem}.fc-restart-btn{align-items:center;background:linear-gradient(135deg,#ec4899,#8b5cf6);border:none;border-radius:14px;box-shadow:3px 3px 0 #6d28d9;color:#fff;cursor:pointer;display:inline-flex;font-family:Nunito,sans-serif;font-size:.95rem;font-weight:800;gap:8px;padding:12px 24px;transition:all .18s}.fc-restart-btn:hover{box-shadow:4px 4px 0 #6d28d9;transform:translateY(-2px)}[data-theme=dark] .fc-card-back,[data-theme=dark] .fc-card-front,[data-theme=dark] .fc-done{background:#1a1a2e;border-color:#2d2d4e;box-shadow:5px 5px 0 #2d2d4e}[data-theme=dark] .fc-card-back{background:#0f0f1a}[data-theme=dark] .fc-question{color:#e0e0f0}[data-theme=dark] .fc-answer{color:#c0c0d0}[data-theme=dark] .fc-done h2{color:#e0e0f0}[data-theme=dark] .fc-done p{color:#7070a0}[data-theme=dark] .fc-shuffle-btn{background:#1a1a2e;border-color:#2d2d4e;box-shadow:3px 3px 0 #2d2d4e}[data-theme=dark] .fc-cat-btn{background:#1a1a2e;border-color:#2d2d4e;color:#7070a0}[data-theme=dark] .fc-progress-track{background:#2d2d4e}.cs-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2rem}.cs-cat-btn{background:#fff;border:2px solid #e9e5ff;border-radius:20px;color:#6b7280;cursor:pointer;font-family:Nunito,sans-serif;font-size:.84rem;font-weight:700;padding:7px 16px;transition:all .18s}.cs-cat-btn:hover{border-color:#8b5cf6;color:#8b5cf6}.cs-cat-btn.active{box-shadow:0 2px 8px #8b5cf64d;color:#fff}.cs-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}.cs-card{background:#fff;border:2.5px solid #e9e5ff;border-radius:16px;border-top:4px solid #8b5cf6;border-top:4px solid var(--cs-color,#8b5cf6);box-shadow:4px 4px 0 #e9e5ff;overflow:hidden;transition:all .2s}.cs-card:hover{box-shadow:6px 6px 0 #8b5cf6;box-shadow:6px 6px 0 var(--cs-color,#8b5cf6);transform:translateY(-4px)}.cs-card-header{border-bottom:1.5px solid #f0edff;display:flex;flex-direction:column;gap:2px;padding:14px 16px 10px}.cs-title{color:#8b5cf6;color:var(--cs-color,#8b5cf6);font-family:Nunito,sans-serif;font-size:.95rem;font-weight:900}.cs-desc{color:#9090b0;font-size:.78rem;font-weight:600}.cs-code{overflow-x:auto}[data-theme=dark] .cs-card{background:#1a1a2e;border-color:#2d2d4e;box-shadow:4px 4px 0 #2d2d4e}[data-theme=dark] .cs-card:hover{box-shadow:6px 6px 0 #8b5cf6;box-shadow:6px 6px 0 var(--cs-color,#8b5cf6)}[data-theme=dark] .cs-card-header{border-bottom-color:#2d2d4e}[data-theme=dark] .cs-cat-btn{background:#1a1a2e;border-color:#2d2d4e;color:#7070a0}[data-theme=dark] .cs-code .token,[data-theme=dark] .cs-code pre{background:#0f0f1a!important;color:#c0c0d0!important}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#0000;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 0.5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;background-color:var(--xy-background-color-default);background-color:var(--xy-background-color,var(--xy-background-color-default));direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 0.5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-default);background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{touch-action:none;z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width-default);stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke-default);stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width-default);stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;pointer-events:none;position:absolute}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected-default);stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke-default);fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{overflow:visible;position:absolute;z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:default;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background-color:var(--xy-handle-background-color-default);background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:0;left:50%;top:auto;transform:translate(-50%,50%)}.react-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.react-flow__handle-left{left:0;top:50%;transform:translate(-50%,-50%)}.react-flow__handle-right{right:0;top:50%;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color-default);background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:100%}.react-flow__minimap{background:var(--xy-minimap-background-color-default);background:var(
    --xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default))
  )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-default);fill:var(
      --xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default))
    );stroke:var(--xy-minimap-mask-stroke-color-default);stroke:var(
      --xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default))
    );stroke-width:var(--xy-minimap-mask-stroke-width-default);stroke-width:var(
      --xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default))
    )}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-default);fill:var(
      --xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default))
    );stroke:var(--xy-minimap-node-stroke-color-default);stroke:var(
      --xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default))
    );stroke-width:var(--xy-minimap-node-stroke-width-default);stroke-width:var(
      --xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default))
    )}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-dots-color-default);fill:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default))
    )}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-lines-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default))
    )}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-cross-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default))
    )}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow-default);box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));display:flex;flex-direction:column}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{align-items:center;background:var(--xy-controls-button-background-color-default);background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      );color:var(--xy-controls-button-color-default);color:var(
      --xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default))
    );cursor:pointer;display:flex;height:26px;justify-content:center;padding:4px;-webkit-user-select:none;user-select:none;width:26px}.react-flow__controls-button svg{fill:currentColor;max-height:12px;max-width:12px;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:var(--xy-node-background-color-default);background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));border:var(--xy-node-border,var(--xy-node-border-default));border-radius:var(--xy-node-border-radius-default);border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));color:var(--xy-node-color-default);color:var(--xy-node-color,var(--xy-node-color-default));font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover-default);box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected-default);box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color-default);background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color-default);background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-default);background:var(
        --xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default))
      );color:var(--xy-controls-button-color-hover-default);color:var(
        --xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default))
      )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color-default);background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;height:5px;translate:-50% -50%;width:5px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color-default);fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color-default);fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.sd-fullpage{background:#f8f9ff;background:var(--page-bg,#f8f9ff);display:flex;flex-direction:column;inset:0;position:fixed;z-index:100}.sd-topbar{background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border,#e2e8f0);gap:10px;height:50px;padding:0 16px}.sd-back-btn,.sd-topbar{align-items:center;display:flex;flex-shrink:0}.sd-back-btn{background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--text-muted,#64748b);cursor:pointer;height:32px;justify-content:center;transition:background .12s,color .12s;width:32px}.sd-back-btn:hover{background:#f1f5f9;background:var(--hover-bg,#f1f5f9);color:#1e293b;color:var(--text,#1e293b)}.sd-topbar-brand{align-items:center;display:flex;flex-shrink:0;gap:7px}.sd-topbar-title{color:#1e293b;color:var(--text,#1e293b);font-size:14.5px;font-weight:700}.sd-topbar-sep{background:#e2e8f0;background:var(--border,#e2e8f0);flex-shrink:0;height:20px;width:1px}.sd-topbar-tabs{display:flex;gap:4px}.sd-page{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.sd-tabs{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border,#e2e8f0);display:flex;gap:4px;padding:0 24px 12px}.sd-tab{background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--text-muted,#64748b);cursor:pointer;font-size:13.5px;font-weight:500;padding:7px 18px;transition:all .15s}.sd-tab:hover{background:#f1f5f9;background:var(--hover-bg,#f1f5f9);color:#1e293b;color:var(--text,#1e293b)}.sd-tab-active{background:#6366f11a;color:#6366f1}.sd-tab-hint{color:#94a3b8;color:var(--text-muted,#94a3b8);font-family:monospace;font-size:11px;margin-left:auto}.sd-prebuilt{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow:hidden;padding:16px 24px}.sd-diagram-cards{display:flex;flex-shrink:0;gap:12px}.sd-diagram-card{align-items:flex-start;background:#fff;background:var(--card-bg,#fff);border:2px solid #0000;border-radius:12px;box-shadow:0 1px 4px #00000014;cursor:pointer;display:flex;flex:1 1;gap:12px;min-width:0;padding:12px 16px;text-align:left;transition:all .15s}.sd-diagram-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.sd-diagram-card-active{box-shadow:0 4px 16px #6366f133}.sd-card-dot{border-radius:50%;flex-shrink:0;height:10px;margin-top:4px;width:10px}.sd-card-text{display:flex;flex-direction:column;gap:3px}.sd-card-name{color:#1e293b;color:var(--text,#1e293b);font-size:13px;font-weight:600}.sd-card-desc{color:#64748b;color:var(--text-muted,#64748b);font-size:11.5px;line-height:1.4}.sd-canvas-area{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.sd-canvas-area,.sd-canvas-wrap{flex:1 1;min-height:0}.sd-canvas-empty{align-items:center;color:#94a3b8;color:var(--text-muted,#94a3b8);display:flex;flex-direction:column;font-size:14px;gap:12px;justify-content:center}.sd-canvas-empty-overlay{position:relative}.sd-canvas-empty-hint{background:#f8fafcb3;border-radius:0 0 12px 12px;font-size:13px;gap:10px;inset:0;pointer-events:none;position:absolute}.sd-canvas-empty-hint,.sd-empty-state{align-items:center;color:#94a3b8;color:var(--text-muted,#94a3b8);display:flex;flex-direction:column;justify-content:center}.sd-empty-state{flex:1 1;font-size:14px;gap:12px;min-height:300px}.sd-custom{flex-direction:column;overflow:hidden;padding:16px 24px}.sd-custom,.sd-custom-layout{display:flex;flex:1 1;min-height:0}.sd-custom-layout{gap:12px}.sd-canvas-grow{flex:1 1;min-width:0}.node-palette{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:12px;display:flex;flex-direction:column;flex-shrink:0;gap:4px;overflow-y:auto;padding:12px 8px;width:140px}.palette-title{color:#64748b;color:var(--text-muted,#64748b);font-size:11px;font-weight:700;letter-spacing:.06em;padding:0 4px 2px;text-transform:uppercase}.palette-hint{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:10px;margin:0;padding:0 4px 6px}.palette-list{display:flex;flex-direction:column;gap:4px}.palette-item{align-items:center;background:#f8fafc;background:var(--hover-bg,#f8fafc);border-radius:7px;color:#1e293b;color:var(--text,#1e293b);cursor:grab;display:flex;font-size:12px;gap:7px;padding:7px 8px;transition:background .12s;-webkit-user-select:none;user-select:none}.palette-item:hover{background:#e2e8f0;background:var(--border,#e2e8f0)}.palette-item:active{cursor:grabbing}.sysnode{background:#fff;border:2px solid #94a3b8;border-radius:10px;box-shadow:0 2px 8px #00000014;cursor:pointer;font-size:11.5px;max-width:180px;min-width:120px;transition:box-shadow .15s,transform .15s}.sysnode:hover{box-shadow:0 4px 14px #00000024;transform:translateY(-1px)}.sysnode-selected{box-shadow:0 0 0 3px #6366f159,0 4px 14px #00000024}.sysnode-active{animation:sysnode-pulse .8s ease-in-out infinite alternate}.sysnode-error{animation:sysnode-error-flash .4s ease-in-out 3;border-color:#ef4444!important}@keyframes sysnode-pulse{0%{box-shadow:0 0 0 2px #6366f14d}to{box-shadow:0 0 0 8px #6366f100}}@keyframes sysnode-error-flash{0%,to{background:inherit}50%{background:#fef2f2}}.sysnode-header{align-items:center;border-radius:7px 7px 0 0;display:flex;gap:5px;padding:4px 8px}.sysnode-type-label{color:#ffffffe6;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.sysnode-body{display:flex;flex-direction:column;gap:3px;padding:6px 9px 8px}.sysnode-label{color:#1e293b;font-size:12.5px;font-weight:600}.sysnode-props{display:flex;flex-direction:column;gap:1px}.sysnode-prop{color:#64748b;font-size:10px}.sysnode-rule-badge{font-size:9.5px;font-weight:600;margin-top:2px}.sysnode-handle{background:#6366f1;border:2px solid #fff;border-radius:50%;height:10px;width:10px}.sim-controls{align-items:center;background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border,#e2e8f0);display:flex;flex-shrink:0;gap:12px;padding:10px 14px}.sim-controls-left{align-items:center;display:flex;gap:6px}.sim-controls-center{display:flex;flex:1 1;flex-direction:column;gap:5px;min-width:0}.sim-controls-right{flex-shrink:0;gap:6px}.sim-btn,.sim-controls-right{align-items:center;display:flex}.sim-btn{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:7px;color:#1e293b;color:var(--text,#1e293b);cursor:pointer;font-size:12.5px;font-weight:500;gap:5px;padding:6px 12px;transition:all .12s}.sim-btn:hover:not(:disabled){background:#f1f5f9;background:var(--hover-bg,#f1f5f9)}.sim-btn:disabled{cursor:not-allowed;opacity:.4}.sim-btn-primary{background:#6366f1;border-color:#6366f1;color:#fff}.sim-btn-primary:hover:not(:disabled){background:#4f46e5;border-color:#4f46e5}.sim-btn-stimulus{background:#fef3c7;border-color:#f59e0b;color:#92400e}.sim-btn-stimulus:hover:not(:disabled){background:#fde68a}.sim-progress{display:flex;flex-direction:column;gap:4px}.sim-step-label{color:#64748b;color:var(--text-muted,#64748b);font-size:11.5px;font-weight:600}.sim-progress-bar{background:#e2e8f0;background:var(--border,#e2e8f0);border-radius:4px;height:4px;overflow:hidden}.sim-progress-fill{background:#6366f1;border-radius:4px;height:100%;transition:width .3s ease}.sim-event-labels{display:flex;flex-wrap:wrap;gap:6px}.sim-event-badge{background:#6366f11a;border-radius:999px;color:#4f46e5;font-size:10px;font-weight:500;padding:2px 7px}.sim-event-badge.sim-event-respond{background:#10b9811a;color:#059669}.sim-event-badge.sim-event-reject{background:#ef44441a;color:#dc2626}.sim-event-badge.sim-event-split{background:#f973161a;color:#ea580c}.sim-event-badge.sim-event-retry{background:#f59e0b1a;color:#d97706}.sim-event-badge.sim-event-merge{background:#8b5cf61a;color:#7c3aed}.sim-speed-label{color:#64748b;color:var(--text-muted,#64748b);font-size:11px}.sim-speed-slider{accent-color:#6366f1;width:80px}.sim-speed-val{color:#6366f1;font-size:11px;font-weight:600;min-width:24px}.behavior-editor{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:12px;display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;width:280px}.behavior-editor-empty{align-items:center;color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:13px;justify-content:center;padding:24px;text-align:center}.be-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border,#e2e8f0);display:flex;flex-shrink:0;justify-content:space-between;padding:12px 14px}.be-title{color:#1e293b;color:var(--text,#1e293b);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.be-add-btn{align-items:center;background:#6366f114;border:1px solid #6366f1;border-radius:6px;color:#6366f1;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:4px;padding:5px 10px}.be-add-btn:hover{background:#6366f129}.be-empty{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:12px;padding:16px;text-align:center}.be-rules{display:flex;flex:1 1;flex-direction:column;gap:6px;overflow-y:auto;padding:8px}.be-rule{background:#f8fafc;background:var(--hover-bg,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:8px;overflow:hidden}.be-rule-open{border-color:#6366f1}.be-rule-summary{align-items:center;cursor:pointer;display:flex;flex-wrap:wrap;font-size:11.5px;gap:5px;padding:8px 10px}.be-chevron{transition:transform .15s}.be-rule-open .be-chevron{transform:rotate(0deg)}.be-rule-trigger{background:#6366f11a;border-radius:4px;color:#6366f1;font-size:10.5px;font-weight:600;padding:1px 5px}.be-rule-cond{color:#64748b;font-family:monospace;font-size:10px}.be-rule-then{color:#10b981;font-size:10.5px;font-weight:600;margin-left:auto}.be-delete-btn{align-items:center;background:none;border:none;color:#ef4444;cursor:pointer;display:flex;opacity:.6;padding:2px}.be-delete-btn:hover{opacity:1}.be-rule-body{background:#fff;border-top:1px solid #e2e8f0;border-top:1px solid var(--border,#e2e8f0);gap:8px;padding:10px}.be-field,.be-rule-body{display:flex;flex-direction:column}.be-field{gap:3px}.be-field label{color:#64748b;color:var(--text-muted,#64748b);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.be-field input[type=number],.be-field select,.be-input{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:6px;color:#1e293b;color:var(--text,#1e293b);font-size:12px;padding:5px 8px;width:100%}.be-input{box-sizing:border-box}.be-row{align-items:center;display:flex;gap:4px}.be-row .be-input{flex:1 1}.be-row select{flex:0 0 60px;padding:5px 4px}.be-clear-btn{background:none;border:none;color:#ef4444;cursor:pointer;font-size:13px;opacity:.7;padding:2px 4px}.be-clear-btn:hover{opacity:1}.be-section-label{align-items:center;color:#94a3b8;color:var(--text-muted,#94a3b8);display:flex;font-size:10px;font-weight:700;gap:8px;letter-spacing:.06em;text-transform:uppercase}.be-add-else{background:none;border:1px dashed #e2e8f0;border:1px dashed var(--border,#e2e8f0);border-radius:4px;color:#6366f1;cursor:pointer;font-size:10px;padding:1px 6px}.be-action{background:#f8fafc;background:var(--hover-bg,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:8px}.be-action-header{align-items:center;display:flex;justify-content:space-between}.be-action-label{color:#64748b;color:var(--text-muted,#64748b);font-size:10.5px;font-weight:700;text-transform:uppercase}.stimulus-overlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.stimulus-modal{background:#fff;background:var(--card-bg,#fff);border-radius:14px;box-shadow:0 20px 60px #00000040;overflow:hidden;width:360px}.stimulus-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border,#e2e8f0);display:flex;justify-content:space-between;padding:16px 18px}.stimulus-title{align-items:center;color:#1e293b;color:var(--text,#1e293b);display:flex;font-size:14px;font-weight:700;gap:8px}.stimulus-close{align-items:center;background:none;border:none;color:#64748b;color:var(--text-muted,#64748b);cursor:pointer;display:flex}.stimulus-body{gap:12px;padding:16px 18px}.stimulus-body,.stimulus-field{display:flex;flex-direction:column}.stimulus-field{gap:4px}.stimulus-field label{color:#64748b;color:var(--text-muted,#64748b);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.stimulus-field input,.stimulus-field select{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:8px;color:#1e293b;color:var(--text,#1e293b);font-size:13px;padding:8px 10px}.stimulus-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--border,#e2e8f0);display:flex;gap:8px;justify-content:flex-end;padding:12px 18px}.stimulus-cancel{background:#fff;background:var(--card-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border,#e2e8f0);border-radius:8px;color:#64748b;color:var(--text-muted,#64748b);cursor:pointer;font-size:13px;padding:8px 16px}.stimulus-launch{align-items:center;background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;padding:8px 18px;transition:background .12s}.stimulus-launch:hover:not(:disabled){background:#4f46e5}.stimulus-launch:disabled{cursor:not-allowed;opacity:.5}[data-theme=dark] .sysnode{background:#1e293b}[data-theme=dark] .sysnode-label{color:#f1f5f9}[data-theme=dark] .sysnode-prop{color:#94a3b8}[data-theme=dark] .be-rule-body,[data-theme=dark] .stimulus-modal{background:#1e293b}@keyframes fabFloat{0%,to{transform:translateY(0) rotate(0deg)}30%{transform:translateY(-8px) rotate(12deg)}60%{transform:translateY(-4px) rotate(-6deg)}}.paint-fab{align-items:center;animation:fabFloat 4s ease-in-out infinite;background:linear-gradient(135deg,#ec4899,#8b5cf6);border-radius:50%;box-shadow:0 4px 20px #8b5cf68c,0 0 0 3px #fff;color:#fff;cursor:grab;display:flex;height:54px;justify-content:center;position:fixed;transition:box-shadow .2s;-webkit-user-select:none;user-select:none;width:54px;z-index:9998}.paint-fab:hover{box-shadow:0 6px 28px #8b5cf6b3,0 0 0 3px #fff}.paint-fab.dragging{animation:none;box-shadow:0 10px 36px #8b5cf6b3,0 0 0 3px #fff;cursor:grabbing;transform:scale(1.12) rotate(20deg)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.paint-overlay{align-items:center;animation:overlayIn .18s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}@keyframes panelPop{0%{opacity:0;transform:scale(.75) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.paint-panel{animation:panelPop .28s cubic-bezier(.175,.885,.32,1.275);background:#fff;border-radius:24px;box-shadow:0 32px 80px #0000004d,0 0 0 3px #8b5cf640;overflow:hidden}.paint-toolbar{background:#f8f6ff;border-bottom:2px solid #e8e3ff;gap:8px;padding:10px 14px}.paint-colors,.paint-toolbar{align-items:center;display:flex}.paint-colors{gap:5px}.color-dot{border-radius:50%;cursor:pointer;flex-shrink:0;height:26px;outline:none;padding:0;transition:transform .15s,box-shadow .15s;width:26px}.color-dot:hover{transform:scale(1.2)}.color-dot.active{box-shadow:0 0 0 3px #8b5cf6;transform:scale(1.25)}.paint-divider{background:#e0dbff;height:28px;margin:0 4px;width:1px}.brush-wrap{align-items:center;display:flex;gap:6px}.brush-label{color:#9ca3af;font-family:Nunito,sans-serif;font-size:.75rem;font-weight:800;white-space:nowrap}.brush-slider{accent-color:#8b5cf6;cursor:pointer;width:80px}.brush-val{color:#8b5cf6;font-family:Nunito,sans-serif;font-size:.75rem;font-weight:800;min-width:18px;text-align:center}.tool-btn{align-items:center;background:#fff;border:2px solid #e8e3ff;border-radius:9px;color:#374151;cursor:pointer;display:flex;flex-shrink:0;font-size:.85rem;height:32px;justify-content:center;padding:0;transition:all .18s;width:32px}.tool-btn:hover{background:#f8f6ff;border-color:#8b5cf6;color:#8b5cf6}.tool-btn.active{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.save-btn:hover{border-color:#10b981;color:#10b981}.close-paint:hover{border-color:#ef4444;color:#ef4444}.paint-canvas{background:#fff;cursor:crosshair;display:block;touch-action:none}.ai-fab{align-items:center;animation:aiFabPop .4s cubic-bezier(.34,1.56,.64,1);background:linear-gradient(135deg,#8b5cf6,#ec4899);border:none;border-radius:16px;bottom:28px;box-shadow:0 4px 20px #8b5cf680,3px 3px 0 #6d28d9;color:#fff;cursor:pointer;display:flex;height:52px;justify-content:center;position:fixed;right:88px;transition:all .25s cubic-bezier(.34,1.56,.64,1);width:52px;z-index:1200}@keyframes aiFabPop{0%{transform:scale(0) rotate(-20deg)}to{transform:scale(1) rotate(0deg)}}.ai-fab:hover{box-shadow:0 6px 24px #8b5cf699,4px 4px 0 #6d28d9;transform:translateY(-3px) scale(1.07)}.ai-fab-open{background:#1a1a2e;box-shadow:0 4px 20px #0000004d,3px 3px 0 #2d2d4e}.ai-panel{animation:panelSlideUp .3s cubic-bezier(.34,1.56,.64,1);background:#fff;border:2.5px solid #e9e5ff;border-radius:20px;bottom:90px;box-shadow:8px 8px 0 #e9e5ff,0 20px 60px #8b5cf626;display:flex;flex-direction:column;max-height:540px;overflow:hidden;position:fixed;right:24px;width:380px;z-index:1199}@keyframes panelSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-panel-header{align-items:center;background:linear-gradient(135deg,#8b5cf6,#ec4899);display:flex;justify-content:space-between;padding:14px 16px}.ai-panel-title{align-items:center;color:#fff;display:flex;font-family:Nunito,sans-serif;font-size:.92rem;font-weight:800;gap:8px}.ai-model-tag{background:#ffffff26;border-radius:20px;color:#ffffffbf;font-size:.7rem;font-weight:700;padding:3px 8px}.ai-messages{display:flex;flex:1 1;flex-direction:column;gap:10px;overflow-y:auto;padding:12px}.ai-welcome{padding:12px 8px;text-align:center}.ai-welcome-icon{font-size:2rem;margin-bottom:8px}.ai-welcome p{color:#6b7280;font-size:.88rem;font-weight:600;margin:0 0 12px}.ai-starters{display:flex;flex-direction:column;gap:6px}.ai-starter-btn{background:#f8f6ff;border:1.5px solid #e9e5ff;border-radius:10px;color:#8b5cf6;cursor:pointer;font-family:Nunito,sans-serif;font-size:.8rem;font-weight:700;padding:8px 12px;text-align:left;transition:all .18s}.ai-starter-btn:hover{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.ai-msg{align-items:flex-end;display:flex;gap:7px}.ai-msg-user{flex-direction:row-reverse}.ai-msg-avatar{align-items:center;background:linear-gradient(135deg,#8b5cf6,#ec4899);border-radius:8px;color:#fff;display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}.ai-msg-bubble{border-radius:14px;font-size:.86rem;font-weight:600;line-height:1.5;max-width:78%;padding:10px 13px;white-space:pre-wrap;word-break:break-word}.ai-msg-assistant .ai-msg-bubble{background:#f8f6ff;border:1.5px solid #e9e5ff;border-bottom-left-radius:4px;color:#1a1a2e}.ai-msg-user .ai-msg-bubble{background:linear-gradient(135deg,#8b5cf6,#ec4899);border-bottom-right-radius:4px;color:#fff}.ai-typing{align-items:center;color:#8b5cf6;display:flex;gap:6px;padding:10px 13px}@keyframes spin{to{transform:rotate(1turn)}}.ai-spin{animation:spin 1s linear infinite}.ai-input-row{background:#fff;border-top:1.5px solid #e9e5ff;display:flex;gap:8px;padding:10px 12px}.ai-input{background:#f8f6ff;border:2px solid #e9e5ff;border-radius:12px;color:#1a1a2e;flex:1 1;font-family:Nunito,sans-serif;font-size:.86rem;font-weight:600;outline:none;padding:9px 13px;transition:border-color .18s}.ai-input:focus{border-color:#8b5cf6}.ai-input:disabled{opacity:.6}.ai-send-btn{align-items:center;background:linear-gradient(135deg,#8b5cf6,#ec4899);border:none;border-radius:11px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:38px;justify-content:center;transition:all .18s;width:38px}.ai-send-btn:hover:not(:disabled){box-shadow:0 3px 10px #8b5cf666;transform:translateY(-2px)}.ai-send-btn:disabled{cursor:not-allowed;opacity:.5}.ai-no-key{padding:20px;text-align:center}.ai-no-key p{color:#6b7280;font-size:.85rem;font-weight:600;margin-bottom:8px}.ai-key-hint{background:#f8f6ff;border:1.5px solid #e9e5ff;border-radius:8px;color:#8b5cf6;display:block;font-size:.78rem;margin:8px 0;padding:8px 12px;word-break:break-all}[data-theme=dark] .ai-panel{background:#1a1a2e;border-color:#2d2d4e;box-shadow:8px 8px 0 #2d2d4e,0 20px 60px #0006}[data-theme=dark] .ai-input-row{background:#1a1a2e;border-top-color:#2d2d4e}[data-theme=dark] .ai-input{background:#0f0f1a;border-color:#2d2d4e;color:#e0e0f0}[data-theme=dark] .ai-msg-assistant .ai-msg-bubble{background:#0f0f1a;border-color:#2d2d4e;color:#c0c0d0}[data-theme=dark] .ai-starter-btn{background:#0f0f1a;border-color:#2d2d4e}[data-theme=dark] .ai-no-key p,[data-theme=dark] .ai-welcome p{color:#7070a0}[data-theme=dark] .ai-key-hint{background:#0f0f1a;border-color:#2d2d4e}@media (max-width:768px){.ai-panel{bottom:80px;right:16px;width:calc(100vw - 32px)}.ai-fab{right:72px}}
/*# sourceMappingURL=main.75f52076.css.map*/