:root{--bg:#f0eee9;--paper:#faf9f7;--ink:#1c1b19;--ink-soft:#4c4a45;--ink-mute:#55524b;--muted:#8a8478;--muted-2:#a09a8e;--line:#e6e2d9;--line-2:#ddd8cd;--border:#d5d0c6;--card:#f2f0ea;--serif:"Newsreader",Georgia,"Times New Roman",serif;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}.page{max-width:1120px;margin:0 auto;padding:24px 16px 48px}.sheet{background:var(--paper);color:var(--ink);border:1px solid rgba(0,0,0,.08);border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden}.section{border-top:1px solid var(--line);display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:40px;gap:40px;padding:48px 64px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted)}.hero{display:grid;grid-template-columns:1.15fr 1fr;grid-gap:56px;gap:56px;padding:64px;align-items:center}.hero-copy{display:flex;flex-direction:column;gap:22px}.hero-kicker{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted)}.hero-name{margin:0;font-family:var(--serif);font-weight:400;font-size:72px;line-height:1.02;letter-spacing:-.01em}.hero-name em{font-style:italic;font-weight:300}.hero-lede{margin:0;font-size:17px;line-height:1.55;color:var(--ink-soft);max-width:46ch;text-wrap:pretty}.hero-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:#6d6a63;align-items:center}.hero-meta a{color:var(--ink)}.dot{color:#c9c4ba}.actions{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:14px;font-weight:500;padding:13px 24px;border-radius:999px;transition:opacity .15s ease,background .15s ease}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{opacity:.88}.btn-outline{border:1px solid var(--border);color:var(--ink)}.btn-outline:hover{background:rgba(0,0,0,.04)}.video-wrap{display:flex;flex-direction:column;gap:10px}.video-frame{aspect-ratio:16/10;border-radius:14px;background:repeating-linear-gradient(-45deg,#eceae4,#eceae4 10px,#f2f0eb 0,#f2f0eb 20px);border:1px solid #dfdbd2;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.video-frame video{width:100%;height:100%;object-fit:cover}.play{width:66px;height:66px;border-radius:50%;background:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(28,27,25,.25)}.play span{color:var(--paper);font-size:20px;margin-left:4px}.video-caption{font-family:var(--mono);font-size:11px;color:var(--muted-2);text-align:center}.about-text{margin:0;font-family:var(--serif);font-size:24px;line-height:1.5;font-weight:300;max-width:60ch;text-wrap:pretty}.timeline{display:grid;grid-template-columns:150px 24px 1fr;grid-gap:0 16px;gap:0 16px}.tl-date{font-size:13px;color:var(--muted);padding-top:2px}.tl-rail{display:flex;flex-direction:column;align-items:center}.tl-node{width:9px;height:9px;border-radius:50%;background:var(--ink);margin-top:5px}.tl-line{width:1px;flex:1 1;background:var(--line-2)}.tl-body{padding-bottom:34px}.tl-body.last{padding-bottom:0}.tl-role{font-size:17px;font-weight:600}.tl-role span{font-weight:400;color:var(--muted)}.tl-desc{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--ink-mute);max-width:62ch}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:32px;gap:32px}.skill-col{display:flex;flex-direction:column;gap:8px}.skill-head{font-size:14px;font-weight:600;padding-bottom:8px;border-bottom:1px solid var(--line)}.skill-list{font-size:13.5px;line-height:1.9;color:var(--ink-mute)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.project{background:var(--card);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:10px}.project-title{font-family:var(--serif);font-size:21px}.project-desc{margin:0;font-size:13px;line-height:1.6;color:var(--ink-mute)}.project-tag{font-family:var(--mono);font-size:10.5px;color:var(--muted-2);margin-top:auto}.edu-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:32px;gap:32px}.edu-list{font-size:14px;line-height:2;color:#3a3833}.edu-list span{color:var(--muted-2)}.certs{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.chip{border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:12.5px}.quotes{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.quote{border:1px dashed var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}.quote p{margin:0;font-family:var(--serif);font-size:17px;line-height:1.55;font-style:italic;color:#6d6a63}.quote-by{font-family:var(--mono);font-size:11px;color:var(--muted-2)}.tcar{flex-direction:column;gap:16px}.tcar,.tcar-viewport{display:flex;min-width:0}.tcar-viewport{gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:2px}.tcar-viewport::-webkit-scrollbar{display:none}.tcar-card{flex:0 0 100%;scroll-snap-align:center;box-sizing:border-box;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:30px 32px;display:flex;flex-direction:column;gap:18px;box-shadow:0 1px 3px rgba(0,0,0,.05)}.tcar-quote{margin:0;font-family:var(--serif);font-size:18px;line-height:1.55;font-weight:300;color:#2c2a26;white-space:pre-line;text-wrap:pretty}.tcar-person{gap:14px;margin-top:auto;padding-top:6px;border-top:1px solid var(--line)}.tcar-avatar,.tcar-person{display:flex;align-items:center}.tcar-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;flex:none;background:var(--card);justify-content:center}.tcar-avatar img{width:100%;height:100%;object-fit:cover;display:block}.tcar-initials{font-family:var(--serif);font-size:20px;color:var(--muted)}.tcar-id{display:flex;flex-direction:column;gap:2px;min-width:0}.tcar-name{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--ink);text-decoration:none;width:-moz-fit-content;width:fit-content}.tcar-name:hover{color:#2a78d6}.tcar-name svg{color:#0a66c2;flex:none}.tcar-role{font-size:12.5px;color:var(--ink-mute);line-height:1.35}.tcar-rel{font-family:var(--mono);font-size:10.5px;color:var(--muted-2)}.tcar-controls{gap:16px}.tcar-btn,.tcar-controls{display:flex;align-items:center}.tcar-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--ink);font-size:16px;cursor:pointer;justify-content:center;transition:background .15s ease,border-color .15s ease}.tcar-btn:hover{background:rgba(0,0,0,.04)}.tcar-dots{display:flex;gap:8px;flex:1 1;flex-wrap:wrap}.tcar-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;background:var(--line-2);cursor:pointer;transition:background .15s ease,transform .15s ease}.tcar-dot.active{background:var(--ink);transform:scale(1.25)}.tcar-count{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}.footer{background:var(--ink);color:var(--paper);padding:56px 64px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}.footer-title{font-family:var(--serif);font-size:34px;font-weight:300}.footer-sub{font-size:14px;color:#b3ada2;margin-top:6px}.footer-actions{display:flex;gap:12px;flex-wrap:wrap}.footer .btn-primary{background:var(--paper);color:var(--ink)}.footer .btn-outline{border-color:#4a4841;color:var(--paper)}.footer .btn-outline:hover{background:hsla(0,0%,100%,.06)}@media (max-width:900px){.hero{grid-template-columns:1fr;gap:36px;padding:44px 32px}.hero-name{font-size:54px}.section{grid-template-columns:minmax(0,1fr);gap:20px;padding:40px 32px}.edu-grid,.projects-grid,.quotes,.skills-grid{grid-template-columns:1fr}.footer{padding:44px 32px}}@media (max-width:560px){.page{padding:12px 10px 28px}.hero{padding:32px 22px}.hero-name{font-size:44px}.section{padding:32px 22px}.timeline{grid-template-columns:20px 1fr}.tl-date{grid-column:2;padding-top:0;margin-bottom:4px;font-family:var(--mono)}.tl-rail{grid-row:span 2}.tl-body{grid-column:2}.footer{flex-direction:column;align-items:flex-start;gap:20px}}