:root{--paper: #f6f2e9;--paper-deep: #efe9db;--ink: #1d1a16;--ink-soft: #5b554b;--ink-faint: #8a8377;--accent: #b1492b;--accent-soft: #c97a5f;--line: rgba(29, 26, 22, .13);--line-soft: rgba(29, 26, 22, .07);--font-display: "Fraunces", Georgia, serif;--font-body: "Newsreader", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--measure: 38rem}@media(prefers-color-scheme:dark){:root{--paper: #16140f;--paper-deep: #1d1a14;--ink: #ece5d6;--ink-soft: #a59d8d;--ink-faint: #6f685b;--accent: #e0795a;--accent-soft: #b8593c;--line: rgba(236, 229, 214, .14);--line-soft: rgba(236, 229, 214, .07)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.18rem;line-height:1.65;font-weight:380;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(var(--line-soft) .5px,transparent .5px);background-size:22px 22px}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:460;font-optical-sizing:auto;letter-spacing:-.012em;line-height:1.04;margin:0}.page{max-width:60rem;margin:0 auto;padding:clamp(2.5rem,6vw,6rem) clamp(1.4rem,5vw,4rem) 5rem}.row{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:clamp(1.2rem,4vw,3.2rem);padding:clamp(2.2rem,5vw,3.6rem) 0;border-top:1px solid var(--line)}.row:first-of-type{border-top:none}.row__label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);padding-top:.5rem;white-space:nowrap}.row__label .idx{color:var(--accent)}.row__body{max-width:var(--measure)}@media(max-width:640px){.row{grid-template-columns:1fr;gap:.9rem}.row__label{padding-top:0}}.hero{position:relative;padding:clamp(1rem,4vw,2.5rem) 0 clamp(2.5rem,6vw,4rem)}.hero__photo{width:84px;height:84px;border-radius:50%;object-fit:cover;display:block;margin-bottom:1.6rem;filter:grayscale(.18) contrast(1.02);box-shadow:0 0 0 1px var(--line),0 6px 22px #1d1a161f;transition:filter .4s ease}.hero__photo:hover{filter:grayscale(0) contrast(1.02)}.hero__name{font-size:clamp(3.2rem,11vw,6.4rem);font-weight:500;letter-spacing:-.03em;line-height:.92}.hero__name .last{color:var(--accent);font-style:italic}.hero__role{margin:1.1rem 0 0;font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}.hero__role:before{content:"";display:inline-block;width:1.6rem;height:1px;background:var(--accent);vertical-align:middle;margin-right:.7rem}.hero__tag{margin-top:1.6rem;max-width:34rem;font-size:clamp(1.2rem,2.6vw,1.5rem);line-height:1.4;color:var(--ink-soft)}.hero__tag b{color:var(--ink);font-weight:500}.hero__graph{position:absolute;top:clamp(-1rem,1vw,.5rem);right:0;width:clamp(150px,24vw,250px);height:auto;pointer-events:none}@media(max-width:760px){.hero__graph{position:static;width:160px;margin:2rem 0 0 auto;display:block}}.prose p{margin:0 0 1.1rem}.prose p:last-child{margin-bottom:0}.prose b,.prose strong{font-weight:560;color:var(--ink)}.work{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem}.work li{display:block}.work h3{font-family:var(--font-body);font-size:1.18rem;font-weight:600;letter-spacing:0;margin-bottom:.15rem}.work h3:before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.7rem;border-radius:50%;background:var(--accent);vertical-align:middle;transform:translateY(-.12em)}.work p{margin:0;color:var(--ink-soft);font-size:1.04rem;line-height:1.5}.links{display:grid;gap:.1rem}.links a{display:flex;align-items:baseline;gap:.9rem;padding:.7rem 0;border-bottom:1px solid var(--line-soft);transition:color .2s ease,padding .2s ease}.links a:hover{color:var(--accent);padding-left:.5rem}.links .k{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);min-width:5.5rem}.links a:hover .k{color:var(--accent-soft)}.links .v{font-size:1.05rem}.links .arrow{margin-left:auto;font-family:var(--font-mono);opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s ease}.links a:hover .arrow{opacity:1;transform:translate(0)}.note{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.04em;color:var(--ink-faint)}.note .dot{display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);margin-right:.5rem;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.foot{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}@media(prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(14px);animation:reveal .7s cubic-bezier(.2,.7,.2,1) forwards}@keyframes reveal{to{opacity:1;transform:none}}.hero__graph .edge{stroke-dasharray:var(--len, 120);stroke-dashoffset:var(--len, 120);animation:draw 1.1s ease forwards;animation-delay:.5s}@keyframes draw{to{stroke-dashoffset:0}}.hero__graph .node{opacity:0;transform-box:fill-box;transform-origin:center;animation:pop .5s cubic-bezier(.2,1.4,.4,1) forwards}@keyframes pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}}
