.header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#f4f3f0eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.header-logo{font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.header-logo:hover{color:var(--accent)}.header-nav{display:flex;gap:1.75rem}.header-nav a{font-family:var(--font-body);font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.header-nav a:hover{color:var(--accent)}@media(max-width:640px){.header{padding:.875rem 1.25rem}.header-nav{gap:1rem;flex-wrap:wrap;justify-content:flex-end}.header-nav a{font-size:.75rem}}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem 1.5rem 4rem;background:var(--bg);border-bottom:1px solid var(--border)}.hero-greeting{font-family:var(--font-body);font-size:.8125rem;font-style:normal;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin:0 0 .75rem}.hero-name{font-size:clamp(2.5rem,8vw,3.75rem);margin:0 0 .75rem;color:var(--text);letter-spacing:-.03em;font-weight:700}.hero-role{font-family:var(--font-body);font-size:.9375rem;font-weight:500;letter-spacing:.06em;text-transform:none;color:var(--accent);margin:0 0 1.25rem}.hero-tagline{font-size:1rem;color:var(--text-muted);max-width:34rem;margin:0 0 2rem;font-weight:400;line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem 1rem;justify-content:center}.hero-cta{display:inline-block;padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;font-family:var(--font-body);color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);transition:background .15s ease,border-color .15s ease,color .15s ease}.hero-cta:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.hero-cta-secondary{background:var(--bg);color:var(--accent);border-color:var(--accent-light)}.hero-cta-secondary:hover{background:var(--bg-soft);color:var(--accent-hover);border-color:var(--text-muted)}.about{padding:5rem 1.5rem;background:var(--bg)}.about-inner{max-width:42rem;margin:0 auto}.about-content{color:var(--text-muted)}.about-content p{margin:0 0 1.25rem;text-align:justify}.about-content p:last-child{margin-bottom:0}.about-emphasis{font-weight:600;color:var(--text)}.skills{padding:5rem 1.5rem;background:var(--bg-soft);border-top:1px solid var(--border)}.skills-inner{max-width:42rem;margin:0 auto}.skills-intro{color:var(--text-muted);margin:0 0 1.75rem;font-size:.98rem}.skills-list{display:flex;flex-wrap:wrap;gap:.65rem;list-style:none;margin:0;padding:0}.skills-chip{font-size:.8125rem;font-weight:600;padding:.4rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.projects{padding:5rem 1.5rem;background:var(--bg)}.projects-inner{max-width:46rem;margin:0 auto}.projects-intro{color:var(--text-muted);margin:0 0 2rem;font-size:.98rem}.projects-demos-link{font-weight:600;border-bottom:1px solid transparent}.projects-demos-link:hover{border-bottom-color:var(--accent-hover)}.projects-grid{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.5rem}.projects-card{padding:1.35rem 1.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.projects-card-title{font-family:var(--font-display);font-size:1.1875rem;font-weight:600;margin:0 0 .65rem;color:var(--text)}.projects-card-desc{margin:0 0 1rem;color:var(--text-muted);font-size:.98rem;line-height:1.6}.projects-tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 1.25rem;padding:0}.projects-tags li{font-size:.75rem;font-weight:600;color:var(--text-muted);padding:.15rem .45rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius)}.projects-links{display:flex;gap:1.25rem}.projects-links a{font-size:.95rem;font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s ease}.projects-links a:hover{border-bottom-color:var(--accent-hover)}.contact{padding:5rem 1.5rem 6rem;background:var(--bg-soft);border-top:1px solid var(--border)}.contact-inner{max-width:42rem;margin:0 auto;text-align:center}.contact-text{color:var(--text-muted);margin:0 0 2rem;font-weight:400}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem 2rem}.contact-links a{font-family:var(--font-body);font-size:.9375rem;font-weight:600;padding:.5rem 0;border-bottom:1px solid transparent;transition:border-color .15s ease}.contact-links a:hover{border-bottom-color:var(--accent-hover)}.demos-page{padding:5.5rem 1.5rem 4rem;min-height:100vh;background:var(--bg)}.demos-inner{max-width:52rem;margin:0 auto}.demos-back{margin:0 0 1.5rem;font-size:.875rem}.demos-back a{font-weight:600;color:var(--text-muted)}.demos-back a:hover{color:var(--accent)}.demos-page-title{font-family:var(--font-display);font-size:1.75rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .75rem;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:.65rem}.demos-lede{margin:0 0 2rem;color:var(--text-muted);font-size:.98rem;line-height:1.65;max-width:42rem}.demos-lede code{font-size:.85em;padding:.1em .35em;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius)}.demos-empty{color:var(--text-muted);font-size:.95rem}.demos-empty code{font-size:.85em;padding:.1em .35em;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius)}.demos-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.demos-card{padding:1.35rem 1.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.demos-card-title{font-family:var(--font-display);font-size:1.1875rem;font-weight:600;margin:0 0 .5rem;color:var(--text)}.demos-card-desc{margin:0 0 1.25rem;color:var(--text-muted);font-size:.95rem;line-height:1.6}.demos-card-actions{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center}.demos-card-open{font-family:var(--font-body);font-size:.875rem;font-weight:600;padding:.5rem 1rem;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius)}.demos-card-open:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.demos-card-repo{font-size:.875rem;font-weight:600;padding:.5rem 0;border-bottom:1px solid transparent}.demos-card-repo:hover{border-bottom-color:var(--accent-hover)}.another-demo{display:flex;flex-direction:column;gap:1rem}.another-demo-field{display:flex;flex-direction:column;gap:.35rem}.another-demo-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.another-demo-input{font-family:var(--font-body);font-size:1rem;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.another-demo-hint{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.55}.dash-app{flex:1;display:flex;flex-direction:column;min-height:min(100%,100vh);font-family:var(--font-body);--dash-text: #0f172a;--dash-muted: #64748b;--dash-surface: #f1f5f9;--dash-card: #ffffff;--dash-border: #e2e8f0;--dash-accent: #2563eb;--dash-accent-dark: #1d4ed8;--dash-topbar: #0f172a}.dash-app-top{flex-shrink:0;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.65rem 1.25rem;background:var(--dash-topbar);border-bottom:1px solid rgba(255,255,255,.06)}.dash-app-brand{display:flex;align-items:center;gap:.5rem}.dash-app-logo{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:#f8fafc;letter-spacing:-.03em}.dash-app-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:.2rem .45rem;border:1px solid rgba(148,163,184,.35);border-radius:var(--radius)}.dash-app-primary{display:flex;align-items:center;gap:.15rem;flex:1;justify-content:center;flex-wrap:wrap}@media(max-width:720px){.dash-app-primary{order:3;width:100%;justify-content:flex-start}}.dash-app-nav-btn{font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:#94a3b8;background:transparent;border:none;padding:.45rem .75rem;border-radius:var(--radius);cursor:pointer;transition:color .15s ease,background .15s ease}.dash-app-nav-btn:hover{color:#e2e8f0;background:#ffffff0f}.dash-app-nav-btn--active{color:#fff;background:#ffffff1a}.dash-app-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}.dash-app-search-wrap{position:relative;display:flex;align-items:center}.dash-app-search-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dash-app-search-input{font-family:var(--font-body);font-size:.78rem;color:#e2e8f0;padding:.4rem 1.65rem .4rem .85rem;border:1px solid rgba(148,163,184,.35);border-radius:999px;background:#0f172aa6;width:min(14rem,42vw);min-width:7.5rem}.dash-app-search-input::placeholder{color:#64748b}.dash-app-search-input:focus{outline:2px solid rgba(96,165,250,.45);outline-offset:1px;border-color:#94a3b880}.dash-app-search-clear{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);width:1.35rem;height:1.35rem;padding:0;border:none;border-radius:999px;font-size:1rem;line-height:1;color:#94a3b8;background:transparent;cursor:pointer}.dash-app-search-clear:hover{color:#f1f5f9;background:#ffffff14}.dash-app-avatar{width:2rem;height:2rem;border-radius:999px;background:linear-gradient(135deg,var(--dash-accent),#7c3aed);color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center}.dash-app-toolbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.5rem 1.25rem;background:#fff;border-bottom:1px solid var(--dash-border)}.dash-app-crumb{font-size:.8125rem;color:var(--dash-muted)}.dash-app-env{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#b45309;background:#fffbeb;border:1px solid #fde68a;padding:.25rem .5rem;border-radius:var(--radius)}.dash-app-main{flex:1;padding:1.25rem;background:var(--dash-surface)}.dash-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;padding:1rem 1.1rem;margin-bottom:.25rem;background:var(--dash-card);border:1px solid var(--dash-border);border-radius:var(--radius)}.dash-filter-field{display:flex;flex-direction:column;gap:.35rem;min-width:11rem}.dash-filter-field label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dash-muted)}.dash-filter-select{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--dash-text);padding:.45rem 2rem .45rem .65rem;border:1px solid var(--dash-border);border-radius:var(--radius);background:var(--dash-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8L2 4h8z'/%3E%3C/svg%3E") no-repeat right .55rem center;background-size:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.dash-filter-select:hover{border-color:var(--dash-accent)}.dash-filter-select:focus{outline:2px solid rgba(37,99,235,.35);outline-offset:1px}.dash-table-head{margin-bottom:.85rem}.dash-table-caption{margin:0;font-size:.82rem;color:var(--dash-muted);line-height:1.45}.dash-table-wrap .dash-panel-title{margin-bottom:.35rem}.dash-app-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:.65rem 1.25rem;font-size:.72rem;color:var(--dash-muted);background:#fff;border-top:1px solid var(--dash-border)}.dash-app-footer-links{display:flex;gap:1rem}.dash-app-foot-link{font-family:var(--font-body);font-size:.72rem;font-weight:600;color:var(--dash-muted);background:none;border:none;cursor:default;padding:0}.dash{display:flex;flex-direction:column;gap:1.5rem;max-width:72rem;margin:0 auto}.dash-inline-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.35rem}.dash-inline-title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin:0 0 .2rem;color:var(--dash-text)}.dash-inline-sub{margin:0;font-size:.875rem;color:var(--dash-muted)}.dash-page-heading{margin-bottom:-.25rem}.dash-page-title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin:0 0 .35rem;color:var(--dash-text)}.dash-page-sub{margin:0;font-size:.9rem;color:var(--dash-muted);line-height:1.5}.dash-range{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--dash-muted);padding:.4rem .65rem;border:1px solid var(--dash-border);background:var(--dash-card);border-radius:var(--radius)}.dash-kpis{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}@media(max-width:900px){.dash-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.dash-kpis{grid-template-columns:1fr}}.dash-kpi{padding:1rem 1.1rem;background:var(--dash-card);border:1px solid var(--dash-border);border-radius:var(--radius);display:flex;flex-direction:column;gap:.35rem}.dash-kpi-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--dash-muted)}.dash-kpi-value{font-size:1.35rem;font-weight:700;color:var(--dash-text);letter-spacing:-.02em}.dash-kpi-delta{font-size:.8rem;font-weight:600}.dash-kpi-delta--up{color:#15803d}.dash-kpi-delta--down{color:#c2410c}.dash-panels{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dash-panels--single{grid-template-columns:1fr}@media(max-width:768px){.dash-panels{grid-template-columns:1fr}}.dash-panel{padding:1.1rem 1.2rem;background:var(--dash-card);border:1px solid var(--dash-border);border-radius:var(--radius)}.dash-panel-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;margin:0 0 .35rem;color:var(--dash-text)}.dash-panel-desc{margin:0 0 1.25rem;font-size:.85rem;color:var(--dash-muted);line-height:1.5}.dash-mini-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--dash-muted);margin:0 0 .5rem}.dash-dual{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:520px){.dash-dual{grid-template-columns:1fr}}.dash-user-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:520px){.dash-user-grid{grid-template-columns:1fr}}.dash-chart{border:1px solid var(--dash-border);border-radius:var(--radius);padding:.5rem .35rem .35rem;background:linear-gradient(to top,#f8fafc 0,#f8fafc 1px,transparent 1px);background-size:100% 20%}.dash-chart-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:.35rem;height:9rem;padding:0 .2rem}.dash-chart-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.dash-chart-bar{width:100%;max-width:2.25rem;margin:0 auto;background:linear-gradient(180deg,var(--dash-accent) 0%,var(--dash-accent-dark) 100%);border-radius:var(--radius) var(--radius) 0 0;min-height:4px;transition:opacity .15s ease}.dash-chart-col:hover .dash-chart-bar{opacity:.88}.dash-chart-val{font-size:.62rem;font-weight:600;color:var(--dash-muted);margin-bottom:.25rem;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dash-chart-label{font-size:.65rem;font-weight:600;color:var(--dash-muted);margin-top:.35rem;text-transform:uppercase;letter-spacing:.04em}.dash-table-wrap{padding:1rem 1.1rem;background:var(--dash-card);border:1px solid var(--dash-border);border-radius:var(--radius)}.dash-table-scroll{overflow-x:auto}.dash-table{width:100%;border-collapse:collapse;font-size:.875rem}.dash-table th,.dash-table td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid var(--dash-border)}.dash-table th{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--dash-muted);background:#f8fafc}.dash-table td{color:var(--dash-text)}.dash-table-empty{text-align:center;font-size:.875rem;color:var(--dash-muted);padding:1.25rem 1rem!important}.dash-table tbody tr:last-child td{border-bottom:none}.dash-table tbody tr:hover td{background:#f8fafc}.demo-view{min-height:100vh;display:flex;flex-direction:column;background:#cbd5e1}.demo-view-exit{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.5rem 1rem;font-size:.8125rem;font-family:var(--font-body);background:#0f172aeb;border-bottom:1px solid rgba(255,255,255,.08)}.demo-view-exit-link{font-weight:600;color:#e2e8f0}.demo-view-exit-link:hover{color:#fff}.demo-view-exit-sep{color:#64748b;-webkit-user-select:none;user-select:none}.demo-view-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:auto}.demo-view-body:has(.dash-app){padding:0}.demo-view-body:not(:has(.dash-app)){padding:2rem 1.25rem;align-items:center}:root{--bg: #f4f3f0;--bg-soft: #e9e8e4;--text: #111827;--text-muted: #4b5563;--accent: #1e3a5f;--accent-hover: #0f172a;--accent-light: #cbd5e1;--border: #d9d6d0;--font-display: "Source Serif 4", "Times New Roman", serif;--font-body: "Source Sans 3", system-ui, sans-serif;--radius: 2px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);font-weight:400;font-size:1rem;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.25}main section h2{font-size:1.375rem;font-weight:600;letter-spacing:-.015em;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:.65rem;margin:0 0 1.25rem}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-hover)}#root{min-height:100vh}
