.git-timeline{--lane-w: 26px;--head-h: 48px;--dot-size: 13px;--label-w: 130px;--graph-w: calc(var(--lane-w) * var(--lanes) + 10px);width:min(860px,100%);margin:0 auto;font-family:Source Code Pro,ui-monospace,Cascadia Code,Consolas,monospace;position:sticky;top:5vh;top:5svh;height:90vh;height:90svh;overflow:hidden;padding-right:9%}.tl-pin-track{height:calc(90vh + var(--runway, 800px));height:calc(90svh + var(--runway, 800px));margin:1rem auto 4rem}body.tl-pinned .top-header{top:calc(-1 * var(--ni-header-height, 95px) - 8px)!important}.git-timeline.all{overflow-y:auto;scrollbar-width:thin}.git-timeline:after{content:"";display:block;height:45vh}.tl-entry{position:relative;display:grid;grid-template-columns:var(--label-w) var(--graph-w) 1fr}.tl-toolbar{display:flex;justify-content:flex-end;padding:0 2px 10px}.tl-toggle{font:inherit;font-size:13px;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary) 50%,transparent);border-radius:6px;padding:4px 12px;cursor:pointer;transition:background .2s ease}.tl-toggle:hover{background:color-mix(in srgb,var(--primary) 20%,transparent)}.tl-label{display:flex;justify-content:flex-end;align-items:center;height:var(--head-h);padding-right:12px}.tl-chip{color:var(--c);border:1px solid var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border-radius:6px;padding:2px 8px;font-size:12px;line-height:1.5;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tl-graph{position:relative}.tl-line{position:absolute;top:0;bottom:0;left:calc(var(--lane-w) * var(--l) + var(--lane-w) / 2);width:2px;transform:translate(-50%);background:var(--c);opacity:.9}.tl-line.start{top:calc(var(--head-h) / 2)}.tl-line.end{bottom:auto;height:calc(var(--head-h) / 2)}.tl-curve{position:absolute;top:0;left:calc(var(--lane-w) / 2);width:calc(var(--lane-w) * var(--l));height:calc(var(--head-h) / 2);border-right:2px solid var(--c);border-bottom:2px solid var(--c);border-bottom-right-radius:14px;opacity:.9}.tl-dot{position:absolute;top:calc(var(--head-h) / 2);left:calc(var(--lane-w) * var(--l) + var(--lane-w) / 2);width:var(--dot-size);height:var(--dot-size);transform:translate(-50%,-50%);border:2.5px solid var(--c);border-radius:50%;background:var(--background);z-index:2;transition:transform .25s ease,box-shadow .25s ease}.tl-dot.wip{border-style:dashed;background:transparent}.git-timeline:not(.vt):not(.dock) .tl-entry:hover .tl-dot:not(.wip),.git-timeline:not(.vt):not(.dock) .tl-entry:focus-within .tl-dot:not(.wip),.tl-entry.expanded .tl-dot:not(.wip){transform:translate(-50%,-50%) scale(1.3);box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 22%,transparent)}.tl-content{min-width:0;padding-left:8px}.tl-head{display:flex;align-items:center;gap:.7rem;height:var(--head-h);outline:none;cursor:default}.tl-bar{flex:none;width:3px;height:55%;border-radius:2px;background:var(--c)}.tl-msg{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px}.tl-wip-msg,.tl-init-msg{opacity:.55;font-style:italic}.tl-meta{margin-left:auto;padding-left:.7rem;font-size:12px;opacity:.55;white-space:nowrap}.tl-card-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.4,0,.2,1)}.tl-card-clip{overflow:hidden;min-height:0}.tl-card{margin:2px 2px 32px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);border-radius:10px;background:var(--secondary);box-shadow:var(--ni-shadow-md, 0 4px 14px rgb(0 0 0 / .12));opacity:0;transform:translateY(-8px);transition:opacity .3s ease .06s,transform .3s ease .06s}.git-timeline:not(.vt):not(.dock) .tl-entry:hover .tl-card-wrap,.git-timeline:not(.vt):not(.dock) .tl-entry:focus-within .tl-card-wrap,.tl-entry.expanded .tl-card-wrap{grid-template-rows:1fr}.git-timeline:not(.vt):not(.dock) .tl-entry:hover .tl-card,.git-timeline:not(.vt):not(.dock) .tl-entry:focus-within .tl-card,.tl-entry.expanded .tl-card{opacity:1;transform:none}.git-timeline.vt .tl-card-wrap,.git-timeline.vt .tl-card,.git-timeline.vt .tl-dot{transition:none}::view-transition-group(*){animation-duration:.32s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.tl-card-meta{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem;font-size:12px;opacity:.85}.tl-desc{margin:0 0 .6rem;font-size:14px;line-height:1.55}.tl-body{font-size:14px;line-height:1.55}.tl-body :is(p,ul,ol){margin:.4rem 0}.tl-img{display:block;width:100%;height:auto;margin:.6rem 0;border-radius:8px}.tl-video{position:relative;aspect-ratio:16 / 9;margin:.6rem 0;border-radius:8px;overflow:hidden}.tl-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.tl-link{display:inline-block;margin-top:.4rem;font-size:13px;color:var(--c)}.git-timeline.dock .tl-head{transform:scale(calc(1 + var(--mag, 0) * .12));transform-origin:left center;transition:transform .18s ease-out;will-change:transform}.git-timeline.dock .tl-msg{opacity:calc(.72 + var(--mag, 0) * .28);transition:opacity .18s ease-out}.git-timeline.dock .tl-dot:not(.wip){transform:translate(-50%,-50%) scale(calc(1 + var(--mag, 0) * .45));box-shadow:0 0 0 calc(var(--mag, 0) * 5px) color-mix(in srgb,var(--c) 22%,transparent);transition:transform .18s ease-out,box-shadow .18s ease-out}.git-timeline.dock .tl-card-wrap{display:block;width:calc(100% * 1.12)}.git-timeline.dock .tl-card-clip{height:calc(var(--mag, 0) * min(var(--card-h, 0px),50vh) * ((1 + var(--mag, 0) * .12) / 1.12));transition:height .18s ease-out}.git-timeline.dock .tl-card{opacity:var(--mag, 0);transform:translateY(calc((1 - var(--mag, 0)) * -8px)) scale(calc((1 + var(--mag, 0) * .12) / 1.12));transform-origin:left top;transition:opacity .18s ease-out,transform .18s ease-out}.git-timeline.dock .tl-head,.git-timeline.dock .tl-msg,.git-timeline.dock .tl-dot,.git-timeline.dock .tl-card-clip,.git-timeline.dock .tl-card,.git-timeline.vt-running .tl-card-clip,.git-timeline.vt-running .tl-card,.git-timeline.vt-running .tl-head,.git-timeline.vt-running .tl-dot{transition:none}@media(prefers-reduced-motion:reduce){.tl-card-wrap,.tl-card,.tl-card-clip,.tl-head,.tl-msg,.tl-dot{transition:none!important}}.git-timeline.horizontal{--col-w: 96px;--card-w: min(520px, 70vw);display:flex;flex-direction:row;align-items:stretch;width:var(--full-w, 100vw);margin-left:calc(50% - var(--full-w, 100vw) / 2);padding-right:0}.git-timeline.horizontal .tl-toolbar{position:absolute;top:6px;right:8px;z-index:5;padding:0}.git-timeline.horizontal .tl-entry{grid-template-columns:1fr;grid-template-rows:var(--graph-w) 1fr;min-width:var(--col-w);height:100%;flex:none}.git-timeline.horizontal .tl-label{display:none}.git-timeline.horizontal .tl-graph{grid-row:1;grid-column:1;width:100%}.git-timeline.horizontal .tl-line{top:calc(var(--lane-w) * var(--l) + var(--lane-w) / 2);bottom:auto;left:0;right:0;width:auto;height:2px;transform:translateY(-50%)}.git-timeline.horizontal .tl-line.start{top:calc(var(--lane-w) * var(--l) + var(--lane-w) / 2);left:calc(var(--col-w) / 2)}.git-timeline.horizontal .tl-line.end{height:2px;right:auto;width:calc(var(--col-w) / 2)}.git-timeline.horizontal .tl-curve{top:calc(var(--lane-w) / 2);left:0;width:calc(var(--col-w) / 2);height:calc(var(--lane-w) * var(--l));border-right:2px solid var(--c);border-bottom:2px solid var(--c);border-bottom-right-radius:14px}.git-timeline.horizontal .tl-dot{left:calc(var(--col-w) / 2);top:calc(var(--lane-w) * var(--l) + var(--lane-w) / 2)}.git-timeline.horizontal .tl-content{grid-row:2;grid-column:1;display:grid;grid-template-rows:var(--head-h) 1fr;min-width:0;padding-left:0}.git-timeline.horizontal .tl-head{grid-row:1;align-self:center;min-width:0;margin-left:calc(var(--col-w) / 2);padding-right:8px}.git-timeline.horizontal .tl-meta{display:none}.git-timeline.horizontal .tl-card-wrap,.git-timeline.dock.horizontal .tl-card-wrap{grid-row:2;width:auto;margin-left:calc(var(--col-w) / 2);display:flex;align-items:flex-start}.git-timeline.dock.horizontal .tl-card-clip{height:auto;max-height:100%;width:calc(var(--mag, 0) * var(--card-w) * ((1 + var(--mag, 0) * .12) / 1.12));overflow:visible}.git-timeline.horizontal .tl-entry{z-index:calc(var(--mag, 0) * 100)}.git-timeline.horizontal .tl-card{pointer-events:none}.git-timeline.horizontal .tl-entry.expanded .tl-card{pointer-events:auto}.git-timeline.horizontal .tl-card,.git-timeline.dock.horizontal .tl-card{width:var(--card-w);max-height:100%;overflow:hidden;transform-origin:left top}.git-timeline.horizontal:after{height:auto;width:45vw;flex:none}.git-timeline.horizontal.all{overflow-y:hidden;overflow-x:auto}@media(max-width:720px){.git-timeline{--lane-w: 14px;--head-h: 44px;--dot-size: 11px;--label-w: 0px}.tl-label{display:none}.tl-entry{grid-template-columns:var(--graph-w) 1fr}.tl-msg{font-size:13.5px}.tl-meta{display:none}.tl-card{padding:12px}}.profile-section,.profile-section h1,.profile-section h2{font-family:Source Code Pro,ui-monospace,monospace}.profile-section{width:min(860px,100%);margin:0 auto;padding:2.2rem 1rem 0}.profile-section .cmd{margin:0 0 .9rem;font-size:1.05rem;color:var(--text)}.profile-section .prompt{color:var(--accent);font-weight:700}.hero{padding-top:3.5rem}.hero .cmd{font-size:1.25rem}.hero .cursor{display:inline-block;width:.6em;height:1.1em;margin-left:2px;vertical-align:text-bottom;background:var(--accent)}@media(prefers-reduced-motion:no-preference){.hero .cursor{animation:blink 1.1s steps(1) infinite}}@keyframes blink{50%{opacity:0}}.hero-out{transition:opacity .35s ease}.hero-out.pending{opacity:0}.hero-out h1{margin:0 0 .2rem;font-size:clamp(1.9rem,5vw,2.7rem);color:var(--primary);line-height:1.1}.hero-title{margin:0 0 1rem;font-size:1.05rem;color:var(--accent)}.hero-pitch{margin:0 0 1.1rem;line-height:1.65;opacity:.85}.hero-links{margin:0;font-size:.92rem}.hero-links a{color:var(--primary);text-decoration:none;border-bottom:1px dashed color-mix(in srgb,var(--primary) 50%,transparent)}.hero-links a:hover{border-bottom-style:solid}.hero-links .sep{margin:0 .5rem;opacity:.45}.profile-section pre{margin:0;padding:1rem 1.2rem;overflow-x:auto;font-size:.85rem;line-height:1.6;background:var(--secondary);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);border-radius:8px}.skills-title{margin:0 0 1rem;font-size:1.05rem;font-weight:700;color:var(--primary)}.skill-layer{margin-bottom:1.1rem}.layer-label{display:block;margin-bottom:.45rem;font-size:.82rem;letter-spacing:.05em;color:var(--c)}.layer-chips{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.3rem .85rem;white-space:nowrap;font-size:.82rem;color:var(--text);background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 50%,transparent);border-radius:999px}.skills-stage.is-3d{position:relative;height:540px;overflow:hidden;perspective:1100px;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}.skills-stage.is-3d.grabbing{cursor:grabbing}.is-3d .skills-breathe{position:absolute;inset:0;transform-style:preserve-3d;animation:skills-breathe 5.5s ease-in-out infinite}.is-3d .skills-stack{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;transform:rotateX(var(--tilt, -12deg))}.is-3d .skill-layer{position:absolute;left:0;top:0;margin:0;transform:translateY(var(--y, 0px));transform-style:preserve-3d}.is-3d .layer-chips{display:block;transform-style:preserve-3d}.skills-legend{position:absolute;left:0;top:0;height:100%;pointer-events:none;z-index:1}.skills-legend .layer-label{position:absolute;top:var(--ly, 50%);left:0;margin:0;transform:translateY(-50%);white-space:nowrap;font-size:.78rem}.skills-legend .layer-label:before{content:"";display:inline-block;width:8px;height:8px;margin-right:.5rem;border-radius:50%;background:var(--c);vertical-align:1px}.is-3d .chip{position:absolute;left:0;top:0;transform:translate(-50%,-50%) rotateY(calc(var(--a, 0deg) + var(--spin, 0deg))) translateZ(var(--r, 130px)) rotateY(calc(-1 * (var(--a, 0deg) + var(--spin, 0deg))));background:color-mix(in srgb,var(--c) 16%,var(--background));opacity:calc(.26 + .37*(1 + cos(var(--a, 0deg) + var(--spin, 0deg))));animation:chip-pulse 4s ease-in-out infinite;animation-delay:var(--pd, 0s);transition:scale .25s ease}.is-3d .chip:hover{scale:1.12;border-color:var(--c)}@keyframes skills-breathe{50%{transform:scale3d(1.025,1.025,1.025)}}@keyframes chip-pulse{50%{box-shadow:0 0 16px color-mix(in srgb,var(--c) 40%,transparent);border-color:color-mix(in srgb,var(--c) 85%,transparent)}}.career-log{display:flex;flex-direction:column;gap:1.6rem}.career-commit{padding:1rem 1.2rem;background:var(--secondary);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);border-left:3px solid var(--accent);border-radius:8px}.career-commit header{margin-bottom:.5rem}.c-hash{color:var(--accent);font-size:.82rem}.c-range{margin-left:.6rem;font-size:.82rem;opacity:.65}.c-title{margin:.25rem 0 0;font-size:1.05rem;color:var(--primary)}.c-at{opacity:.5;font-weight:400}.career-commit ul{margin:0;padding-left:1.2rem}.career-commit li{margin:.3rem 0;line-height:1.55;font-size:.9rem;opacity:.88}.career-commit li::marker{content:"- ";color:var(--accent)}.career-oneline p{margin:.3rem 0;font-size:.88rem;opacity:.85}.timeline-intro{width:min(860px,100%);margin:3.2rem auto 0;padding:0 1rem;font-family:Source Code Pro,ui-monospace,monospace}.timeline-intro h2{font-family:Source Code Pro,ui-monospace,monospace;margin:0 0 .3rem;font-size:1.6rem;color:var(--primary)}.timeline-intro h2 .prompt{color:var(--accent)}.timeline-intro p{margin:0;opacity:.7;font-size:.95rem}@media(prefers-reduced-motion:no-preference){html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}html.js .reveal.in{opacity:1;transform:none}}
