body{margin:0;background:#fff;color:#0d0d0d;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:500;-webkit-font-smoothing:antialiased}#root{width:100%;height:100vh;overflow:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--bg-sidebar: #f7f7f8;--bg-card: #ffffff;--bg-code: #f3f4f6;--border: #e5e5e5;--text: #0d0d0d;--text-muted: #6b7280;--accent: #111111;--accent-2: #374151;--accent-dim: #f3f4f6;--green: #15803d;--orange: #c2410c;--purple: #6b7280;--radius: 10px;--sidebar-w: 270px;--topbar-h: 56px}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.6;font-weight:500}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.top-bar{height:var(--topbar-h);background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 20px;flex-shrink:0;z-index:10}.menu-btn{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:6px 8px;border-radius:8px;line-height:1}.menu-btn:hover{background:var(--bg-sidebar);color:var(--text)}.sub-bar{background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 20px;height:0;overflow:hidden;opacity:0;transition:height .2s ease,opacity .2s ease;flex-shrink:0}.sub-bar-visible{height:42px;opacity:1}.page-nav{display:flex;gap:2px}.page-nav-btn{background:none;border:none;color:var(--text-muted);font-size:14px;font-weight:600;padding:6px 14px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}.page-nav-btn:hover,.page-nav-btn.active{background:var(--bg-sidebar);color:var(--text)}.subject-switcher{display:flex;gap:4px}.subject-btn{background:none;border:1px solid var(--border);color:var(--text-muted);font-size:13px;font-weight:600;padding:4px 14px;border-radius:8px;cursor:pointer;transition:all .15s}.subject-btn:hover{background:var(--bg-sidebar);color:var(--text)}.subject-btn.active{background:var(--text);color:var(--bg);border-color:var(--text)}.body-layout{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;transition:width .2s ease,opacity .2s ease;padding:8px 8px 24px}.sidebar-collapsed .sidebar{width:0;opacity:0;overflow:hidden}.sidebar-topic{margin-bottom:2px}.sidebar-topic-btn{width:100%;background:none;border:none;color:var(--text);text-align:left;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;border-radius:8px;transition:background .15s}.sidebar-topic-btn:hover{background:#0000000d}.sidebar-topic-btn.active{color:var(--accent)}.sidebar-topic-icon{font-size:15px}.sidebar-chevron{margin-left:auto;font-size:11px;color:var(--text-muted);transition:transform .2s}.sidebar-chevron.open{transform:rotate(90deg)}.sidebar-subtopics{list-style:none}.sidebar-subtopic-btn{width:100%;background:none;border:none;color:var(--text-muted);text-align:left;padding:6px 12px 6px 36px;cursor:pointer;font-size:13px;font-weight:500;border-radius:8px;transition:background .15s,color .15s}.sidebar-subtopic-btn:hover{color:var(--text);background:#0000000d}.sidebar-subtopic-btn.active{color:var(--text);background:#00000012;font-weight:600}.content-area{flex:1;overflow-y:auto;padding:36px 48px}@media (max-width: 900px){.content-area{padding:24px 20px}}.content-header{margin-bottom:28px}.content-breadcrumb{font-size:12px;color:var(--text-muted);margin-bottom:6px;display:flex;align-items:center;gap:6px}.content-breadcrumb span{color:var(--accent)}.content-title{font-size:26px;font-weight:700;color:var(--text)}.content-body{max-width:860px}.reference-disclaimer{background:#fefce8;border:1px solid #fde047;border-radius:var(--radius);color:#713f12;font-size:12px;padding:8px 14px;margin-bottom:24px}.content-description{white-space:pre-line;color:var(--text);line-height:1.8;margin-bottom:24px;font-size:15px;font-weight:500}.diagram-block{background:var(--bg-code);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:24px;overflow-x:auto}.diagram-label{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:12px}.diagram-block pre{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:12.5px;line-height:1.6;color:#334155;white-space:pre}.code-block{margin-bottom:24px}.code-label{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}.code-block pre{border-radius:var(--radius)!important;font-size:13px!important;line-height:1.6!important}.subtopic-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.subtopic-pill{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);font-size:12px;padding:5px 12px;border-radius:20px;cursor:pointer;transition:all .15s}.subtopic-pill:hover{border-color:var(--accent);color:var(--text)}.subtopic-pill.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.content-nav-footer{display:flex;justify-content:space-between;margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.md-area{flex:1;overflow-y:auto}.md-pane{max-width:860px;margin:0 auto;padding:40px 40px 80px}.md-loading{color:var(--text-muted);padding:40px}.md-pane h1{font-size:28px;font-weight:700;margin-bottom:16px;margin-top:40px}.md-pane h2{font-size:20px;font-weight:700;margin-bottom:12px;margin-top:36px;border-bottom:1px solid var(--border);padding-bottom:6px}.md-pane h3{font-size:16px;font-weight:600;margin-bottom:8px;margin-top:24px}.md-pane p{margin-bottom:14px;line-height:1.7}.md-pane ul,.md-pane ol{margin:0 0 14px 24px;line-height:1.7}.md-pane li{margin-bottom:4px}.md-pane blockquote{border-left:3px solid var(--accent);padding:8px 16px;margin:16px 0;color:var(--text-muted);background:var(--bg-code);border-radius:0 var(--radius) var(--radius) 0}.md-pane code{background:var(--bg-code);padding:2px 6px;border-radius:4px;font-size:13px;font-family:JetBrains Mono,Fira Code,monospace}.md-pane pre{background:var(--bg-code);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;overflow-x:auto;margin-bottom:16px}.md-pane pre code{background:none;padding:0}.md-pane table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:14px}.md-pane th{background:var(--bg-sidebar);font-weight:600;padding:8px 12px;border:1px solid var(--border);text-align:left}.md-pane td{padding:7px 12px;border:1px solid var(--border)}.md-pane tr:nth-child(2n) td{background:var(--bg-sidebar)}.md-pane hr{border:none;border-top:1px solid var(--border);margin:32px 0}.resume-area{flex:1;overflow-y:auto}.resume-page{max-width:820px;margin:0 auto;padding:48px 40px 80px}.resume-hero{text-align:center;padding:48px 0 40px;border-bottom:1px solid var(--border);margin-bottom:40px}.resume-name{font-size:48px;font-weight:800;letter-spacing:-1px;color:var(--text);margin-bottom:10px}.resume-tagline{font-size:17px;color:var(--text-muted);font-weight:500;margin-bottom:20px}.resume-contact{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--text-muted)}.resume-contact span,.resume-contact-link{display:flex;align-items:center;gap:6px}.resume-contact-link{color:var(--text-muted);text-decoration:none}.resume-contact-link:hover{color:var(--accent)}.resume-body{display:flex;flex-direction:column;gap:36px}.resume-section-title{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.resume-text{color:var(--text);line-height:1.8;font-size:15px;font-weight:500}.resume-job{margin-bottom:20px}.resume-job:last-child{margin-bottom:0}.resume-job-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;flex-wrap:wrap;gap:4px}.resume-job-title{font-weight:700;font-size:15px;color:var(--text)}.resume-job-company{color:var(--text-muted);font-size:14px}.resume-job-date{font-size:12px;color:var(--text-muted);white-space:nowrap}.resume-bullets{list-style:none;display:flex;flex-direction:column;gap:6px}.resume-bullets li{color:var(--text);font-size:14px;font-weight:500;line-height:1.7;padding-left:16px;position:relative}.resume-bullets li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.resume-projects{display:flex;flex-direction:column;gap:16px}.resume-project-card{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;transition:border-color .15s}.resume-project-card:hover{border-color:#adadad}.resume-project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;flex-wrap:wrap}.resume-project-title{font-weight:700;font-size:15px;color:var(--text)}.resume-project-meta{font-size:13px;font-weight:500;color:var(--text-muted)}.resume-project-type{font-size:11px;font-weight:700;color:var(--text-muted);background:var(--border);padding:3px 10px;border-radius:20px;white-space:nowrap;letter-spacing:.3px}.resume-project-desc{font-size:14px;font-weight:500;color:var(--text);line-height:1.8}.resume-skill-groups{display:flex;flex-direction:column;gap:14px}.resume-skill-group{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.resume-skill-group-label{font-size:12px;font-weight:700;color:var(--text-muted);min-width:160px;padding-top:6px;flex-shrink:0}.resume-skills{display:flex;flex-wrap:wrap;gap:6px;flex:1}.resume-skill-tag{background:var(--accent-dim);border:1px solid var(--border);color:var(--accent);font-size:12px;font-weight:500;padding:4px 11px;border-radius:20px;transition:all .15s}.resume-skill-tag:hover{border-color:var(--accent);background:var(--accent);color:#fff}.nav-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:10px 18px;border-radius:var(--radius);cursor:pointer;font-size:13px;transition:all .15s;display:flex;flex-direction:column;gap:2px}.nav-btn:hover{border-color:var(--accent);color:var(--accent)}.nav-btn.next{text-align:right}.nav-btn-label{font-size:11px;color:var(--text-muted)}.nav-btn-title{font-weight:600}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{inset-inline:0;margin:0 auto}.hero .base{width:170px;position:relative;z-index:0}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;top:34px;height:28px;transform:perspective(2000px) rotate(300deg) rotateX(44deg) rotateY(39deg) scale(1.4)}.hero .vite{z-index:0;top:107px;height:26px;width:auto;transform:perspective(2000px) rotate(300deg) rotateX(40deg) rotateY(39deg) scale(.8)}#center{display:flex;flex-direction:column;gap:25px;place-content:center;place-items:center;flex-grow:1}@media (max-width: 1024px){#center{padding:32px 20px 24px;gap:18px}}#next-steps{display:flex;border-top:1px solid var(--border);text-align:left}#next-steps>div{flex:1 1 0;padding:32px}@media (max-width: 1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{margin-bottom:16px;width:22px;height:22px}@media (max-width: 1024px){#next-steps{flex-direction:column;text-align:center}}#docs{border-right:1px solid var(--border)}@media (max-width: 1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{list-style:none;padding:0;display:flex;gap:8px;margin:32px 0 0}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);font-size:16px;border-radius:6px;background:var(--social-bg);display:flex;padding:6px 12px;align-items:center;gap:8px;text-decoration:none;transition:box-shadow .3s}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{height:18px;width:18px}@media (max-width: 1024px){#next-steps ul{margin-top:20px;flex-wrap:wrap;justify-content:center}#next-steps ul li{flex:1 1 calc(50% - 8px)}#next-steps ul a{width:100%;justify-content:center;box-sizing:border-box}}#spacer{height:88px;border-top:1px solid var(--border)}@media (max-width: 1024px){#spacer{height:48px}}.ticks{position:relative;width:100%}.ticks:before,.ticks:after{content:"";position:absolute;top:-4.5px;border:5px solid transparent}.ticks:before{left:0;border-left-color:var(--border)}.ticks:after{right:0;border-right-color:var(--border)}
