:root{--paper: #e8eeef;--ink: #14213d;--blue: #2f5bff;--sun: #ffd23f;--line: 2px solid var(--ink);--display: "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--body: "Instrument Sans", system-ui, sans-serif}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--body)}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}a:hover{color:var(--blue)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.hero,.section,footer{max-width:72rem;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,3rem)}.hero{position:relative;padding-block:1.5rem 4rem}.hero>*:not(.shapes){position:relative;z-index:1}.shapes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.hero nav{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:flex-end;font-weight:600}.hero nav a{text-decoration:none;padding-bottom:3px;background:linear-gradient(var(--blue),var(--blue)) no-repeat 100% 100% / 0 2px;transition:background-size .3s ease,background-position .3s ease}.hero nav a:hover,.hero nav a:focus-visible{color:var(--ink);background-position:0 100%;background-size:100% 2px}.role{margin-top:clamp(3rem,12vw,8rem);font:600 1.125rem var(--body)}.name{font:800 clamp(3.5rem,16vw,12.5rem)/.88 var(--display);letter-spacing:-.045em;margin-top:.5rem}.name span{display:block;overflow:hidden;padding-bottom:.06em}.name i{display:block;font-style:normal;animation:rise .9s cubic-bezier(.2,.7,.2,1) both}.name span:nth-child(2) i{animation-delay:.12s}@keyframes rise{0%{transform:translateY(105%)}}.section{padding-block:3.5rem;border-top:var(--line);display:grid;gap:2rem}.section>h2,.section>.side>h2{font:800 clamp(2rem,5vw,3rem)/1 var(--display);letter-spacing:-.03em}@media(min-width:760px){.section{grid-template-columns:12rem 1fr}}.rows{list-style:none;padding:0}.row{position:relative;isolation:isolate;display:grid;gap:.5rem;padding-block:1.5rem;border-bottom:1px solid var(--ink)}.row:first-child{padding-top:0}.row:before{content:"";position:absolute;z-index:-1;inset:0 -1rem;background:#ffd23f47;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.row.is-link:hover:before{transform:scaleX(1);transform-origin:left}.row h3{font:800 1.75rem/1.1 var(--display);letter-spacing:-.02em}.row p{max-width:60ch}@media(min-width:760px){.row{grid-template-columns:1fr 1.4fr;gap:2rem}}.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin-top:.75rem}.tags li{border:1.5px solid var(--ink);border-radius:99px;padding:.05rem .75rem;font-size:.9rem}.prose{max-width:62ch;display:grid;gap:1rem}.prose h3{margin-top:1rem;font:800 1.25rem var(--display)}.stack{font-weight:600}.contacts{list-style:none;padding:0;display:grid;gap:.75rem}.contacts li{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}.contacts span{min-width:6rem;font-weight:600}footer{padding-block:2rem 3rem;font-size:.9rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.name i{animation:none}.row:before{transition:none}.hero nav a{transition:none}}.tl{position:relative}.tl-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}.tl-head{position:relative;z-index:4;max-width:72rem;margin-inline:auto;padding:2.25rem clamp(1.25rem,5vw,3rem) 0;border-top:var(--line);pointer-events:none}.tl-head h2{font:800 clamp(2rem,5vw,3rem)/1 var(--display);letter-spacing:-.03em}.tl-stage{position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,transparent calc(var(--start-x) - var(--fade)),#000 var(--start-x));mask-image:linear-gradient(90deg,transparent calc(var(--start-x) - var(--fade)),#000 var(--start-x))}.tl-track{--line-y: 76%;position:absolute;left:0;top:0;height:100%;will-change:transform}.tl-line,.tl-fill{position:absolute;left:var(--pad);top:var(--line-y);transform:translateY(-50%)}.tl-line{width:var(--span);height:2px;background:#14213d33}.tl-fill{width:calc(var(--head) - var(--pad));height:4px;background:var(--ink)}.tl-dot{position:absolute;z-index:3;left:var(--head);top:var(--line-y);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px #2f5bff38}.yr{position:absolute;left:var(--x);top:var(--line-y)}.yr:before{content:"";position:absolute;left:-1px;top:-9px;width:2px;height:18px;background:var(--ink)}.yr b{position:absolute;top:16px;left:0;transform:translate(-50%);font:800 1.5rem/1 var(--display);letter-spacing:-.02em;opacity:.25;transition:opacity .4s}.yr.on b{opacity:1}.era{position:absolute;left:var(--x);top:calc(var(--line-y) + 72px);width:var(--len)}.era i{display:block;height:6px;background:var(--c);width:clamp(0px,calc(var(--head) - var(--x)),var(--len))}.era span{display:block;margin-top:.4rem;font-weight:600;font-size:.95rem}.evs{list-style:none;padding:0;margin:0}.ev{position:absolute;left:var(--x);top:0;height:var(--line-y);width:0}.ev .dot{position:absolute;z-index:2;left:0;top:100%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid var(--ink);background:var(--paper);transition:background .3s,transform .3s;transform:scale(.75)}.ev.on .dot{background:var(--blue);transform:none}.note{position:absolute;z-index:1;left:-1px;bottom:0;width:250px;padding:0 0 1.25rem 1rem;border-left:2px solid var(--ink);opacity:0;transform:translateY(16px) scale(var(--s, 1));transform-origin:left bottom;transition:opacity .5s,transform .5s}.ev.major .note{width:285px}.ev.on .note{opacity:1;transform:translateY(0) scale(var(--s, 1))}.note time{display:block;font:800 2rem/1 var(--display);letter-spacing:-.03em}.note h3{margin:.35rem 0 .4rem;font:600 1.05rem/1.3 var(--body)}.note p{font-size:.92rem;line-height:1.5}.photo{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border:2px solid var(--ink);margin-bottom:.9rem}.photo.placeholder{display:grid;place-items:center;font-size:.85rem;background:linear-gradient(135deg,#2f5bff29,#e59f0038)}@media(max-width:600px){.note{width:230px}.ev.major .note{width:250px}}@media(prefers-reduced-motion:reduce){.note,.ev .dot,.yr b{transition:none}}.stk-body{display:grid;gap:2rem}.stk-intro{max-width:62ch}.stk{display:grid;gap:clamp(1.5rem,3vw,2.25rem);padding-block:.5rem 1rem}.stk-row{list-style:none;margin:0;padding:0 0 0 var(--indent);display:flex;flex-wrap:wrap;gap:1.75rem var(--gap)}.stk-item{position:relative;display:grid;justify-items:center;width:3.5rem}.stk-ico{display:block;width:3.5rem;height:3.5rem;animation:stk-float var(--dur) ease-in-out var(--delay) infinite}.stk-shade{width:2.3rem;height:.4rem;margin-top:.75rem;border-radius:50%;background:#14213d24;filter:blur(2px);animation:stk-shade var(--dur) ease-in-out var(--delay) infinite}.stk-name{position:absolute;top:calc(100% + .35rem);left:50%;transform:translate(-50%);white-space:nowrap;font-size:.85rem;font-weight:600;opacity:0;transition:opacity .25s}.stk-item:hover .stk-name{opacity:1}@keyframes stk-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes stk-shade{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.75);opacity:.55}}@media(prefers-reduced-motion:reduce){.stk-ico,.stk-shade{animation:none}}.row.is-link{cursor:pointer}.row h3 a{text-decoration:none}.row h3 a:hover{color:inherit}.row h3 a:after{content:"";position:absolute;inset:0 -1rem;z-index:1}.row h3 a:focus-visible{outline:none}.row h3 a:focus-visible:after{outline:3px solid var(--blue);outline-offset:2px}.side{display:grid;gap:1.5rem;align-content:start;justify-items:start}.avatar{display:block;width:7.5rem;height:7.5rem;border-radius:50%;object-fit:cover;border:2px solid var(--ink)}.avatar.placeholder{display:grid;place-items:center;font:800 2rem var(--display);letter-spacing:-.02em;background:linear-gradient(135deg,#2f5bff29,#e59f0038)}.tl-head{display:grid;gap:.75rem 2rem;align-items:center}.tl-head p{max-width:46ch;font-size:.9rem}@media(min-width:760px){.tl-head{grid-template-columns:max-content 1fr}.tl-head p{font-size:1.0625rem}}@media(max-width:600px){.hero nav{justify-content:flex-start;gap:.5rem 1.1rem;font-size:.95rem}}@media(max-width:600px){.tl-track{--line-y: 80%}.ev.major .note{width:270px}.photo{aspect-ratio:2 / 1;margin-bottom:.7rem}.note p{font-size:.88rem;line-height:1.45}}
