@charset "UTF-8";
:root { color-scheme:light; --ink:#202020; --muted:#696969; --paper:#fff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; }
button { font:inherit; color:inherit; }
a { color:inherit; text-decoration:underline; text-decoration-color:#bdbdbd; text-underline-offset:3px; text-decoration-thickness:1px; }
a:hover { text-decoration-color:var(--ink); }
.coinbase-link { background-color:#0052ff; background-image:linear-gradient(105deg,#0052ff 35%,#2468ed 50%,#0052ff 65%); background-size:250% 100%; background-position:100% 0; color:#fff; padding:0 3px; font-weight:600; text-decoration:none; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.coinbase-link:hover,.coinbase-link:focus-visible { animation:coinbase-highlight .65s ease-out both; }
.coinbase-link::selection { background:#003bb8; color:#fff; }
@keyframes coinbase-highlight { from { background-position:100% 0; } to { background-position:0% 0; } }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid #333; outline-offset:5px; border-radius:2px; }
::selection { background:#e7e7e7; }
p,h1,h2,ul { margin:0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:5; left:16px; top:44px; padding:7px 12px; background:#fff; transform:translateY(-160px); }
.skip-link:focus { transform:none; }
.holdings { display:flex; align-items:center; height:33px; border-bottom:1px solid #eee; color:#666; font-family:'SFMono-Regular',Consolas,'Liberation Mono',monospace; font-size:10px; line-height:1; letter-spacing:.2px; }
.tape-label { padding:0 24px; background:white; flex:none; }
.tape-window { overflow:hidden; flex:1; min-width:0; mask-image:linear-gradient(to right,transparent,#000 22px,#000 calc(100% - 22px),transparent); }
.tape-track { display:flex; width:max-content; animation:tape 52s linear infinite; }
.tape-set { display:flex; align-items:center; justify-content:space-between; min-width:50vw; gap:62px; padding-right:62px; flex:none; }
.tape-dot { color:#aaa; }
.tape-control { flex:none; border:0; background:none; font-size:9px; padding:11px 23px; cursor:pointer; color:#666; }
.holdings:hover .tape-track,.holdings:focus-within .tape-track,.holdings.is-paused .tape-track { animation-play-state:paused; }
@keyframes tape { to { transform:translateX(-25%); } }
.page { width:min(540px,calc(100% - 48px)); margin:76px auto 74px; }
.identity { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:48px; margin-bottom:46px; }
h1 { font-size:17px; font-weight:400; line-height:1.4; }
.profile-trigger { display:flex; align-items:center; gap:13px; border:0; background:none; padding:0; text-align:left; cursor:pointer; }
.avatar-frame { display:block; width:44px; height:44px; border-radius:50%; overflow:hidden; background:#eee; flex:none; }
.avatar-frame img { display:block; width:100%; height:100%; object-fit:cover; }
.identity-copy { display:flex; flex-direction:column; min-width:145px; }
.handle { color:var(--muted); font-size:12px; line-height:1.5; }
.swap-profile { border:0; background:none; font-size:12px; color:var(--muted); cursor:pointer; padding:10px 0 10px 10px; white-space:nowrap; }
.swap-profile span { color:var(--ink); text-decoration:underline; text-decoration-style:dotted; text-decoration-color:#999; text-underline-offset:4px; }
.swap-profile:hover span { text-decoration-style:solid; }
.identity.is-swapping .avatar-frame { animation:swap .18s ease-out; }
@keyframes swap { from { opacity:.35; transform:translateY(3px); } to { opacity:1; transform:none; } }
.intro p+p { margin-top:14px; }
.lead { font-size:18px; line-height:1.55; letter-spacing:-.3px; margin-bottom:18px; }
.muted { color:var(--muted); }
.work { margin-top:33px; }
h2 { color:var(--muted); font-size:12px; font-weight:400; margin-bottom:10px; }
.project-list { list-style:none; padding:0; }
.project-list li { display:grid; grid-template-columns:144px minmax(0,1fr); gap:20px; align-items:baseline; }
.project-list li+li { margin-top:8px; }
.project-list a { width:fit-content; }
.project-list span { color:var(--muted); font-size:13px; }
.thoughts { margin-top:35px; }
.thoughts p { font-size:14px; line-height:1.65; }
.thoughts p+p { margin-top:10px; }
details { margin-top:12px; font-size:13px; }
summary { cursor:pointer; color:var(--muted); width:fit-content; list-style:none; text-decoration:underline; text-decoration-style:dotted; text-decoration-color:#aaa; text-underline-offset:4px; }
summary::-webkit-details-marker { display:none; }
summary::after { content:' +'; text-decoration:none; }
details[open] summary::after { content:' −'; }
.more-thoughts { padding-top:12px; }
.thoughts .personal-note { margin-top:24px; font-size:13px; color:var(--muted); }
.contact { margin-top:35px; font-size:14px; }
.contact nav { display:flex; gap:24px; margin-top:13px; font-size:13px; }
.profile-card { position:fixed; inset:auto; margin:0; padding:0; width:300px; max-width:calc(100vw - 24px); color:var(--ink); background:white; border:1px solid #e6e6e6; border-radius:10px; overflow:hidden; box-shadow:0 5px 25px #0000000d; font-size:13px; }
.profile-card::backdrop { background:transparent; pointer-events:none; }
.profile-card:popover-open { animation:card-in .14s ease-out; }
@keyframes card-in { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:none; } }
.card-banner { display:block; width:100%; height:99px; object-fit:cover; background:#f2f2f2; }
.card-content { padding:17px 18px 19px; }
.card-person { display:flex; align-items:center; gap:11px; margin-bottom:13px; }
.card-person img { border-radius:50%; object-fit:cover; flex:none; }
.card-name { font-size:14px; }
.card-bio { color:#505050; font-size:12px; line-height:1.6; margin-bottom:13px; white-space:pre-line; }
.card-content a { font-size:12px; }
.close-card { position:absolute; right:8px; top:7px; border:1px solid #ddd; border-radius:3px; background:white; color:#555; font-size:10px; padding:3px 6px; cursor:pointer; }
@media (max-width:600px) {
  .page { margin-top:45px; margin-bottom:48px; }
  .identity { gap:10px; margin-bottom:34px; }
  h1 { font-size:16px; }
  .identity-copy { min-width:0; }
  .profile-trigger { gap:10px; }
  .swap-profile { font-size:11px; padding-left:0; }
  .lead { font-size:18px; max-width:300px; }
  .intro { font-size:14px; }
  .project-list li { grid-template-columns:124px minmax(0,1fr); gap:12px; }
  .project-list a { font-size:14px; }
  .project-list span { font-size:12px; }
  .tape-label { padding:0 14px; }
  .tape-control { padding-right:14px; padding-left:14px; }
  .tape-set { gap:40px; padding-right:40px; }
}
@media (max-width:350px) { .page { width:calc(100% - 36px); } .avatar-frame { width:36px; height:36px; } .swap-profile { font-size:10px; } .profile-trigger { gap:8px; } }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .tape-window { overflow-x:auto; scrollbar-width:none; mask-image:none; }
  .tape-set { gap:28px; padding-right:28px; }
  .tape-set~.tape-set { display:none; }
  .tape-control { display:none; }
}
